這是一個給自己整理的Android知識地圖,做Android開發(fā)多年,卻鮮少有積累,悔不當(dāng)初,如今廉波老矣才來整理自己的知識地圖,好在亡羊補牢猶未為晚。
1.UI
1.1繪制
1.2布局
1.3事件分發(fā)
1.4動畫
1.5硬件加速
1.6WindowManager
2.線程
多線程相關(guān)類,同步
多線程轉(zhuǎn)換和管理
3.進(jìn)程
多進(jìn)程傳遞數(shù)據(jù)
進(jìn)程?;睿?/p>
根本是降低oom_adj的值,數(shù)值越小越不會被殺死
1.規(guī)矩滴用前臺service
2.sdk以及app互相喚醒,系統(tǒng)廣播喚醒(后續(xù)版本已經(jīng)不給力了)
3.notification的漏洞,給空notification或者啟動兩個前臺service,后者關(guān)掉notification,android4.3以后已經(jīng)不行了
4.一個像素的Activity
5.降低內(nèi)存,可以使用多進(jìn)程拆分,降低需要?;畹倪M(jìn)程的內(nèi)存占用
6.JobSheduler
7.賬號同步
8.NotificationListenerService但需要權(quán)限?android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
IPC機(jī)制 http://gityuan.com/2015/10/31/binder-prepare/
4.動態(tài)加載,熱修復(fù)原理,插件化,class loader
5.數(shù)據(jù)庫
6.虛擬機(jī)
Dalvik與ART(Android Runtime)
在Dalvik下,應(yīng)用每次運行的時候,字節(jié)碼都需要通過即時編譯器(just in time ,JIT)轉(zhuǎn)換為機(jī)器碼,這會導(dǎo)致很慢
ART則是在安裝時使用預(yù)編譯(AOT,Ahead-Of-Time)技術(shù),字節(jié)碼就會預(yù)先編譯成機(jī)器碼,應(yīng)用的啟動(首次)和執(zhí)行都會變得更加快速。缺點是機(jī)器碼占用的存儲空間更大10-20%,以及安裝時間變長
ART優(yōu)化了GC,以及對內(nèi)存碎片的管理
4.Dalvik虛擬機(jī) java內(nèi)存管理
5.Android新特性
我覺得印象比較深的幾點:1.自適應(yīng)textview 2.自動填充 3.字體 4.通知
http://m.itdecent.cn/p/908bd07b2849
6.開源工具
RxJava RxAndroid
https://gank.io/post/560e15be2dca930e00da1083#toc_1