之前雖然會android,但是理解不深,做的工作也不深,所以要想突破技術瓶頸還要腳踏實地的面對現實,一點一點努力,寫博客也是,不開始永遠不會寫的很好,所以現在起步開始寫自己的博客,見證自己的成長歷程,如果此筆記或者以后的筆記對你有幫助,請點贊。
1.成長路線:
初級:
基本知識點:比如四大組件如何使用、如何創建Service、如何進行布局、簡單的自定義View、動畫等常見技術
中級:
- AIDL:熟悉AIDL,理解其工作原理,懂transact和onTransact的區別;
- Binder:從Java層大概理解Binder的工作原理,懂Parcel對象的使用;
- 多進程:熟練掌握多進程的運行機制,懂Messenger、Socket等;
- 事件分發:彈性滑動、滑動沖突等;
- 玩轉View:View的繪制原理、各種自定義View;
- 動畫系列:熟悉View動畫和屬性動畫的不同點,懂屬性動畫的工作原理;
- 懂性能優化、熟悉mat等工具
- 懂點常見的設計模式
學習方法
閱讀進階書籍,閱讀Android源碼,閱讀官方文檔并嘗試自己寫相關的技術文章,需要有一定技術深度和自我思考。在這個階段的學習過程中,有2個點是比較困擾大家的,一個是閱讀源碼,另一個是自定義View以及滑動沖突
高級:
- 繼續加深理解”稍微深入的知識點“中所定義的內容
- 了解系統核心機制:
1. 了解SystemServer的啟動過程
2. 了解主線程的消息循環模型
3. 了解AMS和PMS的工作原理
4. 能夠回答問題”一個應用存在多少個Window?“
5. 了解四大組件的大概工作流程
6. …
- 基本知識點的細節
1. Activity的啟動模式以及異常情況下不同Activity的表現
2. Service的onBind和onReBind的關聯
3. onServiceDisconnected(ComponentName className)和binderDied()的區別
4. AsyncTask在不同版本上的表現細節
5. 線程池的細節和參數配置
6. …
- 熟悉設計模式,有架構意識
2.技術細節例子:
在onCreate方法里面開啟子線程處理UI不會報錯是因為,看源碼得知rootView在activity的onResume方法之后才建立,在這之前無法檢查開啟的線程是否為ui線程,所以不會報錯崩潰。ui線程是枷加鎖的,在rootview建立之后是線程安全的,所以我們不能在子線程修改ui
3.學習路線和形成自己的知識體系
通過以上這些方式,加上自己的總結,經??偨Y,形成自己的知識體系,讓自己的大腦里有一個很清晰的知識體系架構,腦子里有一個從上到下的流程圖。
4.要有目標,不要今天學這一點明天學那一點,要有計劃。
寫博客,寫筆記,增加成就感。貴在堅持,想要突破技術瓶頸就是要克服懶惰,積極學習。這才是真的努力。
5.android源碼下載
windows下:http://www.cnblogs.com/xiaoluo501395377/p/3404628.html
Linux下:http://www.mobile-open.com/2015/89655.html
第一次寫博客,還請多多支持,有不好的地方可以評論指出來,以后會寫的越來越好。
我的github:https://github.com/yufan2014