全新一次的安卓面試

轉載請注意:http://blog.csdn.net/wjzj000/article/details/77763065

本菜開源的一個自己寫的Demo,希望能給Androider們有所幫助,水平有限,見諒見諒…
https://github.com/zhiaixinyang/PersonalCollect (拆解GitHub上的優秀框架於一體,全部拆離不含任何額外的庫導入)
https://github.com/zhiaixinyang/MyFirstApp(Retrofit+RxJava+MVP)
以及一個可以依賴的自定義驗證碼View:
https://github.com/zhiaixinyang/VerifyCodeView


寫在前面

因爲閒的蛋疼,又偷摸的去面了一家公司,原因是hr說他們公司的安卓非常吊,吊到在腰上繞三圈還能托馬斯迴旋接轉體三週半。

事實證明的確如此,有很深的大公司的背景…和很多安卓分享屆知名大神都公事過(有待考證)。從面試技巧角度來說(不考慮技術本身)。技巧非常的豐富,只用了40分鐘基本上把我所會的所有東西都問出來了,而且在面的過程及其擅長引導和發散…

以下記錄內容只涉及到面試官的話,也就是他的問題,和如何引導我回答問題。


開始

面試的開始從屬性動畫切入:

如果我們使用屬性動畫,如何改變View的長和寬,不是縮放。(其間提到了插值器和估值器)談一談插值器和估值器吧。
聊了一會,他提到既然咱們聊到了屬性動畫,那就談一談View吧。既然長和寬被改變那麼勢必引起了View的重繪,能引起重繪的方法都有那些?
View的繪製是先繪製父View呢還是子View?
你來談一談View繪製的流程吧。(期間提到了ViewRootImpl,談一談ViewRootImpl在哪裏被初始化)
draw()和onDraw()的執行先後順序,彼此的不同點。
在自定義View中複寫一個參數的構造方法和倆個構造方法的區別。
如果我不復寫倆個參數的構造方法,能在xml中使用麼?
提到xml,你來說一下xml的解析是什麼樣的流程,用了什麼樣的解析類?
既然提到了樹形結構,來說一說二叉樹吧,深度優先遍歷的流程是怎麼樣的?

View咱們用的時間比較多,來聊一聊別的。關於Service我有這麼一個情況,一個Activity綁定了一個服務,另一個Activity也綁定了這個服務,服務的生命週期的調用是怎樣的?
如果我想要這麼服務能夠較長時間的存活,我在onStartCommand中怎麼處理呢?
我現在有個場景,同一個進程之下,我在onBind方法返回的IBinder對象和被綁定的Activity拿到的IBinder對象是同一個對象麼?(說實話,到服務這塊我就已經虛了,這個問題都沒明白啥意思…啥叫同一個對象?看到我很迷茫,他換了一種說法。這樣一下子就好多了,換個問題壓根就聽不懂了)如果我在另一個進程開啓一個服務,現在app中有幾個Application實例?(反正也不明白,我就隨口說了一個)好的,我們假設是一個,那麼我在Activity這個進程中寫一個靜態的變量,能否在服務的進程中拿到這個變量的值。(我回答:不能,因爲不能跨進程通訊)這樣不就很清晰了,如果是一個實例那怎麼會不能通訊呢?接下來他簡單說了一下進程通訊的原理…

咱們在聊一聊另一個組件,ContentProvide,簡單談一談你對它的認識吧?
如果這個內容提供者並沒有啓動,其他應用是否也能正常的獲取提供的數據呢?
(這裏自己給自己挖了個坑,我說可以,因爲對通訊錄提供的內容是可以正常獲取的。當時有點短路,很明顯通訊錄這些是後臺運行的。(馬上到給自己挖坑的地方了)接下來我有提到,靜態註冊廣播接受者的時候,app不啓動也可以收到系統的廣播)
關於廣播的這個情況,我有一個問題,既然響應了廣播,那麼很明顯onReceive方法被回調,那麼此時onCreate方法是不是提前被回調?…
…卒…

到此技術的連環發問基本結束,從服務開始,就開始有跨掉的痕跡,內容提供者一出,整段垮掉…)
接下來簡單問了一下項目經驗,沒怎麼發問。看到簡歷上提到了插件化換膚,隨便聊了幾句,主要是聽他說:他在插件化這條路上踩的坑….

然後也就是最經典的一句話,OK,我覺得你源碼層面上看的還可以,項目經驗上有些不足(我找實習,當然經驗不足了,汗),後續情況我會讓HR聯繫你。


尾聲

到此這個面試就完事,雖然時間用的並不多,但真的是酣暢淋漓…
(很幸運,以實習生的身份得到了他們的邀請)

最後希望各位看官可以star我的GitHub,三叩九拜,滿地打滾求star:
https://github.com/zhiaixinyang/PersonalCollect
https://github.com/zhiaixinyang/MyFirstApp

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章