先上圖:
Android體系結(jié)構(gòu):
1、Application應(yīng)用程序:原生的app(系統(tǒng)app+第三方app)
2蚂子、Framework層:各種管理器Manager沃测。為app提供服務(wù)。
3食茎、系統(tǒng)庫(kù)芽突、Android運(yùn)行時(shí):libc(C語(yǔ)言寫的)。
4董瞻、Linux內(nèi)核層:各種硬件驅(qū)動(dòng)driver寞蚌。
Android編譯過程
1田巴、文件、圖片挟秤、String等資源編譯到R.java文件中壹哺。(相當(dāng)于小區(qū)片警===管理資源)
2、文件生成.java文件
3艘刚、將java文件編譯成class文件管宵。(class里包含類、方法等信息攀甚,有很多冗余數(shù)據(jù)箩朴,移動(dòng)端硬件等資源要求不適合運(yùn)行class文件)
4、編譯成.dex文件秋度。(更輕量化炸庞,適合移動(dòng)端運(yùn)行)
5、打包成未簽名.apk文件荚斯。(沒有注冊(cè)信息)
6埠居、生成簽名.apk文件。
7事期、對(duì)齊數(shù)據(jù)滥壕。(許多資源被編成二進(jìn)制,不是很整齊兽泣,需要數(shù)據(jù)對(duì)齊)