android源碼學(xué)習(xí) 一(此文集為本人根據(jù)csdn大神博客的學(xué)習(xí)隨筆,僅供自己記憶,不喜勿噴)

大神

上面這張圖是我們平時用Android studio開發(fā)安卓app點運行后會在app-build-outputs-apk目錄下生成apk文件的構(gòu)建過程,下面具體分析一下

1.aapt(Android assent packaging tool) aapt工具會打包應(yīng)用中的資源文件,如清單文件和layout中的布局文件,并將其編譯成二進(jìn)制文件,當(dāng)然,但是assent文件夾下的資源會保持不變,圖片和res/raw文件夾下的資源也不會被改變,但raw下的資源也會生成資源id,這步走完一會會生成R.java文件

2.aidl aidl工具會將應(yīng)用中所有的aidl接口轉(zhuǎn)換成java接口

3.所有的Java代碼包括R.java文件和aidl文件都會被編譯成.class文件

4.dex工具會將上述步驟生成的.class文件和第三方庫的.class文件及其他.class文件轉(zhuǎn)換成Dalvik虛擬機(jī)支持的.dex文件并最終打包進(jìn)apk文件

5.apkbuilder工具會將編譯過的資源和未編譯過的資源如圖片以及.dex文件打包成apk文件

6.生成APK文件后,需要對其簽名才可安裝到設(shè)備,平時測試時會使用debug keystore,當(dāng)正式發(fā)布應(yīng)用時必須使用release版的keystore對應(yīng)用進(jìn)行簽名。

7.如果對APK正式簽名,還需要使用zipalign工具對APK進(jìn)行對齊操作,這樣做的好處是當(dāng)應(yīng)用運行時會提高速度,但是相應(yīng)的會增加內(nèi)存的開銷

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容