前幾天在鴻羊大神公眾號(hào)考到一片面試題文章,樓主把他借鑒過來,附上每道題的知識(shí)點(diǎn)連接,方便自己和他人復(fù)習(xí)用。
1 Java 技術(shù)篇
1.1 Java基礎(chǔ)
Object的hashCode()與equals()的區(qū)別和作用
1.2 集合類
部分常用集合類的內(nèi)部實(shí)現(xiàn)方式?
1.3 多線程相關(guān)
Thread、Runnable、Callable、Futrue類關(guān)系與區(qū)別?
在理解默認(rèn)線程池的前提下,自己實(shí)現(xiàn)線程池
1.4 字符
StringBuilder和StringBuffer的區(qū)別?
1.5 注解
注解的級(jí)別及意義
如何自定義注解
2 Android技術(shù)
2.1 Android基礎(chǔ)
Android系統(tǒng)層次框架結(jié)構(gòu)?
AsyncTask的實(shí)現(xiàn)方式
AsyncTask使用的時(shí)候應(yīng)該注意什么?
Looper、Handler和MessageQueue的關(guān)系?
Activity的啟動(dòng)流程??(考察對(duì)Framwork的熟悉程度)
多進(jìn)程開發(fā)?的注意事項(xiàng)(Application類區(qū)分進(jìn)程,進(jìn)程間內(nèi)存不可見、進(jìn)程間通訊方式)
2.2 Resource相關(guān)
dpi、sp、px的區(qū)別以及轉(zhuǎn)換關(guān)系?
Android系統(tǒng)如何在多個(gè)資源文件夾下查找匹配最合適的資源?
2.3 虛擬機(jī)
熟悉垃圾回收的實(shí)現(xiàn)機(jī)制?,了解虛擬機(jī)的GC類型
2.4 View相關(guān)
常用組件的使用:ListView、RecyclerView及Adapter的使用
Invalidate與postInvalidate的區(qū)別?
自定義View的實(shí)現(xiàn)方式(根據(jù)項(xiàng)目經(jīng)驗(yàn)詢問相關(guān)組件)。?
onMeasure/onLayout/onDraw的作用
Paint、Matrix、Shader等繪制相關(guān)類的方法作用?
2.5 動(dòng)畫
Android有哪些動(dòng)畫的實(shí)現(xiàn)方式?
Interpolator類的意義和常用的Interpolator?
ViewAnimation與屬性動(dòng)畫有什么區(qū)別?
如何自定義ViewAnimation
2.6 圖片處理
圖片加載過程中,一般會(huì)使用緩存,這個(gè)緩存的主要作用是什么?
3 項(xiàng)目經(jīng)驗(yàn)
3.1 開發(fā)工具
代碼管理工具:SVN、Git
常用的調(diào)試工具:Hierarchy Viewer?、DDMS?等
CI工具:Lint檢查?,FindBugs?、Jenkins
內(nèi)存分析工具:dumpsys、memoinfo、MAT
3.2 項(xiàng)目工程
APP更新策略:推送或者拉???
如何統(tǒng)一處理錯(cuò)誤崩潰
如何進(jìn)行用戶行為收集
日志管理有哪些要點(diǎn)?(Debug包開放,release包關(guān)閉,錯(cuò)誤日志反饋)
打包方式Ant、Maven、Gradle
3.3 開放平臺(tái)
是否使用過第三方平臺(tái)
常用開放平臺(tái)的熟悉度(微信、QQ、微博、支付寶等常用的支付和分享)
是否進(jìn)行過對(duì)第三方平臺(tái)的統(tǒng)一封裝?
是否自己開發(fā)過SDK?
3.4 設(shè)計(jì)相關(guān)
設(shè)計(jì)原則????
設(shè)計(jì)模式在Android源碼中的應(yīng)用?
設(shè)計(jì)模式在項(xiàng)目中的應(yīng)用
項(xiàng)目中的分包方式
android項(xiàng)目中的常見層次結(jié)構(gòu),包劃分
有沒有設(shè)計(jì)過項(xiàng)目中的層級(jí)結(jié)構(gòu)、包劃分