說明: 本文圖片鏈接均來自網(wǎng)絡(luò), 只為方便查看
技能樹.png
Android知識點(diǎn)總結(jié).jpg
Android進(jìn)階路線.png
四大組件.png
進(jìn)階流程: 初級工程師-->中級工程師-->高級工程師-->資深工程師
初級工程師
- 總結(jié):
Android入門的時(shí)候它浅,需要有一本入門書(或者視頻教程)蕴忆,好好學(xué)習(xí)書中的內(nèi)容缔恳,同時(shí)花一年時(shí)間把Android官方文檔中的training和guide看一遍夺巩,同時(shí)通過寫博客和記筆記的方式來做總結(jié)顽照,建議讓自己的每篇博客都有價(jià)值些哈恰。通過一年時(shí)間的學(xué)習(xí)圾另,相信每個(gè)人都可以達(dá)到中級工程師的水平。 - 基本知識點(diǎn):
比如四大組件如何使用诸衔、如何創(chuàng)建Service盯漂、如何進(jìn)行布局、簡單的自定義View署隘、動(dòng)畫等常見技術(shù) - 書籍推薦:
《第一行代碼 Android》宠能、《瘋狂Android》
中級工程師
- AIDL:熟悉AIDL亚隙,理解其工作原理磁餐,懂transact和onTransact的區(qū)別;
- Binder:從Java層大概理解Binder的工作原理阿弃,懂Parcel對象的使用诊霹;
- 多進(jìn)程:熟練掌握多進(jìn)程的運(yùn)行機(jī)制,懂Messenger渣淳、Socket等脾还;
- 事件分發(fā):彈性滑動(dòng)、滑動(dòng)沖突等入愧;
- 玩轉(zhuǎn)View:View的繪制原理鄙漏、各種自定義View;
- 動(dòng)畫系列:熟悉View動(dòng)畫和屬性動(dòng)畫的不同點(diǎn)棺蛛,懂屬性動(dòng)畫的工作原理怔蚌;
- 懂性能優(yōu)化、熟悉mat等工具
- 懂點(diǎn)常見的設(shè)計(jì)模式
- 學(xué)習(xí)方法:
閱讀進(jìn)階書籍旁赊,閱讀Android源碼桦踊,閱讀官方文檔并嘗試自己寫相關(guān)的技術(shù)文章,需要有一定技術(shù)深度和自我思考终畅。在這個(gè)階段的學(xué)習(xí)過程中籍胯,有2個(gè)點(diǎn)是比較困擾大家的竟闪,一個(gè)是閱讀源碼,另一個(gè)是自定義View以及滑動(dòng)沖突杖狼。
如何閱讀源碼呢炼蛤?這是個(gè)頭疼的問題,但是源碼必須要讀本刽。閱讀源碼的時(shí)候不要深入代碼細(xì)節(jié)不可自拔鲸湃,要關(guān)注代碼的流程并盡量挖掘出對應(yīng)用層開發(fā)有用的結(jié)論。另外仔細(xì)閱讀源碼中對一個(gè)類或者方法的注釋子寓,在看不懂源碼時(shí)暗挑,源碼中的注釋可以幫你更好地了解源碼中的工作原理,這個(gè)過程雖然艱苦斜友,但是別無他法炸裆。
如何玩轉(zhuǎn)自定義View呢?我們要透過現(xiàn)象看本質(zhì)鲜屏,更多地去關(guān)注自定義view所需的知識點(diǎn):
- 搞懂view的滑動(dòng)原理
- 搞懂如何實(shí)現(xiàn)彈性滑動(dòng)
- 搞懂view的滑動(dòng)沖突
- 搞懂view的measure烹看、layout和draw
- 然后再學(xué)習(xí)幾個(gè)已有的自定義view的例子
- 最后就可以搞定自定義view了,所謂萬變不離其宗
大概再需要1-2年時(shí)間洛史,即可達(dá)到高級工程師的技術(shù)水平惯殊。我個(gè)人認(rèn)為通過《Android開發(fā)藝術(shù)探索》和《Android群英傳》可以縮短這個(gè)過程為0.5-1年。注意也殖,達(dá)到高級工程師的技術(shù)水平不代表就可以立刻成為高級工程師(受機(jī)遇土思、是否跳槽的影響),但是技術(shù)達(dá)到了忆嗜,成為高級工程師只是很簡單的事己儒。
- 稍微深入的知識點(diǎn):
AIDL、Messenger捆毫、Binder闪湾、多進(jìn)程、動(dòng)畫绩卤、滑動(dòng)沖突途样、自定義View、消息隊(duì)列等 - 書籍推薦:
《Android開發(fā)藝術(shù)探索》濒憋、《Android群英傳》
高級工程師
- 繼續(xù)加深理解”稍微深入的知識點(diǎn)“中所定義的內(nèi)容
- 了解系統(tǒng)核心機(jī)制:
- 了解SystemServer的啟動(dòng)過程
- 了解主線程的消息循環(huán)模型
- 了解AMS和PMS的工作原理
- 能夠回答問題”一個(gè)應(yīng)用存在多少個(gè)Window何暇?“
- 了解四大組件的大概工作流程
- …
- 基本知識點(diǎn)的細(xì)節(jié)
- Activity的啟動(dòng)模式以及異常情況下不同Activity的表現(xiàn)
- Service的onBind和onReBind的關(guān)聯(lián)
- onServiceDisconnected(ComponentName className)和binderDied()的區(qū)別
- AsyncTask在不同版本上的表現(xiàn)細(xì)節(jié)
- 線程池的細(xì)節(jié)和參數(shù)配置
- …
- 熟悉設(shè)計(jì)模式,有架構(gòu)意識
學(xué)習(xí)方法
這個(gè)時(shí)候已經(jīng)沒有太具體的學(xué)習(xí)方法了跋炕,無非就是看書赖晶、看源碼和做項(xiàng)目,平時(shí)多種總結(jié),盡量將知識融會(huì)貫通從而形成一種體系化的感覺遏插。
同時(shí)這個(gè)階段對架構(gòu)是有一定要求的捂贿,架構(gòu)是抽象的,但是設(shè)計(jì)模式是具體的胳嘲,所以一定要加強(qiáng)下設(shè)計(jì)模式的學(xué)習(xí)厂僧。關(guān)于設(shè)計(jì)模式的學(xué)習(xí),推薦《Android 源碼設(shè)計(jì)模式解析與實(shí)戰(zhàn)》了牛,既可以學(xué)習(xí)設(shè)計(jì)模式颜屠,又可能體會(huì)到Android源碼中的設(shè)計(jì)思想。
技術(shù)要求: - 稍微深入的知識點(diǎn)
- 系統(tǒng)核心機(jī)制
- 基本知識點(diǎn)的細(xì)節(jié)
- 設(shè)計(jì)模式和架構(gòu)
- 書籍推薦
《Android開發(fā)藝術(shù)探索》鹰祸、《Android 源碼設(shè)計(jì)模式解析與實(shí)戰(zhàn)》甫窟、《Android內(nèi)核剖析》
資深工程師
更多了解不同業(yè)務(wù)的架構(gòu)問題,內(nèi)核源碼設(shè)計(jì)原理蛙婴,整理并開源自己的組件