雖做Android開發(fā)也算卻挺久了(自大二接觸),但一直學得不溫不火,一是自己的技術(shù)方向不夠堅定,另外可以說是遇到瓶頸了,不懂如何去學,有時總覺得有點力不從心,急于求成,卻一直拖延,執(zhí)行力不夠……這次希望能夠清空自己,以歸零的心態(tài),踏踏實實重新專注學習Android技術(shù)!正如此書作者所說去做好:
克服瓶頸期的最好的辦法就是六個字——總結(jié)、歸納、演繹。
Android的學習如果只是停留在API的使用上,確實未免太過簡單,而且網(wǎng)上也很多現(xiàn)成的項目、代碼,所以做出一個應用并不難,但這畢竟是一個比較低級的層次。個人覺得做開發(fā),懂得使用輪子是很基本的,但也要知道輪子內(nèi)部的結(jié)構(gòu)和如何構(gòu)造,要懂得自己造輪子!
(廢話不多說……)
第1章 Android體系與系統(tǒng)架構(gòu)
1.Android大致分為四層: Linux內(nèi)核層、庫和運行時、Framework層和應用層;
系統(tǒng)特點: 鼓勵系統(tǒng)組件重用,共享組件間數(shù)據(jù),并存在組件間訪問權(quán)限控制,層次結(jié)構(gòu)既相互獨立又相互關(guān)聯(lián);
2.Dalvik與ART
Dalvik: 運行時編譯。好比可折疊的自行車,平時折疊,只有騎才會組裝起來;
ART: 安裝時編譯,運行時無需編譯。好比組裝好的自行車,裝好就可以騎;
3.上下文引用
注意避免單例中持有Activity的Context引用(容易造成內(nèi)存泄露);
對于生命周期長于Activity的對象引用上下文時,應該使用ApplicationContext
擴展閱讀: 避免Android中Context引起的內(nèi)存泄露
4.源碼閱讀
查看Android源碼網(wǎng)站推薦: http://androidxref.com/
- 源碼目錄結(jié)構(gòu):
Makefile (最大的好處就是自動化編譯)
bionic (bionic C庫)
bootable (啟動引導相關(guān)代碼)
build (存放系統(tǒng)編譯規(guī)則等基礎開發(fā)包配置)
cts (Google兼容性測試標準)
dalvik (Dalvik虛擬機)
development (應用程序開發(fā)相關(guān))
external (android使用的一些開源模塊)
frameworks (Framework框架核心)
hardware (廠商硬件適配層HAL)
out (編譯完成后的代碼輸出目錄)
packages (應用程序包)
prebuilt (x86和arm架構(gòu)下預編譯資源)
sdk (sdk及模擬器)
system (底層文件系統(tǒng)庫、應用及組件)
vendor (廠商定制代碼) - Android系統(tǒng)目錄
開發(fā)者比較關(guān)心的是/system和/data目錄
/system下有/app(系統(tǒng)app), /fonts(系統(tǒng)字體,替換系統(tǒng)字體可以達到修改目的), /framework(核心文件、框架層), /lib(共享庫.so文件), /media(系統(tǒng)提示聲、鈴聲), /usr(用戶配置文件、如鍵盤布局、共享和時區(qū)文件等), /system/build.prop(系統(tǒng)屬性信息)等子目錄;
/data下有/app(用戶安裝的app), /data(app數(shù)據(jù)信息,文件、數(shù)據(jù)庫,以包名區(qū)分), /system(系統(tǒng)信息), /misc(wifi, vpn信息)
擴展閱讀: 大牛們是怎么閱讀 Android 系統(tǒng)源碼的?
第2章 Android開發(fā)工具新接觸
1.開發(fā)工具
果斷使用Android studio, 目前谷歌已停止對Eclipse Android工具的開發(fā)和支持了,而且Github上很多項目都轉(zhuǎn)到AS上了,據(jù)說AS 2.0的編譯速度也快很多了……下載Android studio的話,推薦一個非常不錯的鏡像網(wǎng)站,AndroidDevTools,里面除了有AS,還有很多開發(fā)工具和資料。
2.Android Studio使用技巧,參考:
- Android學習之路-stormzhang
- Android Studio使用技巧系列教程-Growth
-
Android Studio你不知道的快捷鍵(三)-Weishu's Notes
工具的配置,因人而異,不多說;虛擬機用Genymotion、屏幕錄制用Vysor+LICEcap、反編譯用apktool等。
3.adb命令
adb命令的來源于/system/core/toolbox和/frameworks/base/cmds
命令內(nèi)容參考,Android ADB命令大全-張明云
adb命令,個人平時用得比較少,以后可以嘗試敲敲命令,瞬間就有逼格了-_- 不過,查看內(nèi)存占用,連接wifi調(diào)試,這些命令還是挺有用的
--End--