關於Android開發面試的一些問題

結合項目問一些問題,主要考察對項目掌握和深入理解的程度,以及溝通表達能力,是否能調理清晰的表達出項目的情況;

handler原理源碼級別的理解,可以參考http://blog.csdn.net/Zone_yan/article/details/79078033

線程池常用的幾種類型;

設計模式,單例,工廠,觀察者模式等常用的就行,不會問太多;

開發框架mvc,mvp,mvvm等,mvp最爲常用,需要深入理解;

事件的傳遞分發機制,點擊動作開始從Activity一直到view之間的傳遞過程,可以參考http://blog.csdn.net/Zone_yan/article/details/79098876

自定義View時幾個重要的方法,需要了解自定義ViewGroup和view的區別,主要是有哪些方法是ViewGroup有而View沒有的,
自己仿照一些帶有動畫的自定義View,比如使用貝塞爾曲線的自定義動畫控件,就可以基本掌握;

開源框架的使用和分析,比如okhttp,對於其攔截器,網絡緩存,okhttp的I/O讀寫等關鍵點需要有一定了解,
當然對於開源開發框架比如Rxjava/RxAndroid,Rxtrofit,EventBus以及特定開源工具比如圖片加載框架Glide、Picasso等有所瞭解更好;

內存優化,造成內存泄露的情況,比如不規範使用流,Cursor,bitmap,非靜態內部類等等,
針對bitmap加載圖片爲什麼會造成內存泄露,以及如何避免加載時出現內存泄露和溢出可能會針對問一下;

進程間通信binder機制的理解,可以參考http://blog.csdn.net/Zone_yan/article/details/79149686

java中鎖的概念,在問多線程開發時的線程同步會涉及到鎖,包括synchronized,Lock,這裏面有一個可重入鎖的概念,需要了解一下,
還有一些線程安全的集合比如ConcurrentHashmap,還有一個關鍵字是voliate修飾變量後的變化,對於它是否有原子性需要了解;

數據方面ArrayList和LinkedList原理的區別,各自的優缺點,hashmap的原理,
關於隊列和棧的原理需要了解,比如通過兩個棧怎麼實現隊列的效果,最好能用代碼大概寫出來,比如二叉樹的深度遍歷和廣度遍歷要有了解;

算法二分查找,冒泡排序,快速排序等基本的要掌握紮實,最好自己手寫一遍,這個不是瞭解原理就能100%的寫出來,裏面有很多小細節需要注意;

還有一些插件化,熱修復,reactNative,H5和android的交互等等最好了解

以上的鏈接中參考內容雖然不深入,但感覺應付面試足以。

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