1. 程式人生 > >Android原始碼解析之Android專案構建過程

Android原始碼解析之Android專案構建過程

平時開發過程中我們通過android studio編寫完成android專案之後直接點選 Run ‘app’就可以在build/outputs/apk生成可以在android裝置中安裝的apk檔案了,那麼整個android原始碼的構建過程是怎麼樣的呢?

我們可以根據Google官方提供的流程圖來具體瞭解構建的過程:
這裡寫圖片描述

通常的構建過程就是如上圖所示,下面是具體描述:

1.AAPT(Android Asset Packaging Tool)工具會打包應用中的資原始檔,如AndroidManifest.xml、layout佈局中的xml等,並將xml檔案編譯為二進位制形式,當然assets資料夾中的檔案不會被編譯,圖片及raw資料夾中的資源也會保持原來的形態,需要注意的是raw資料夾中的資源也會生成資源id。AAPT編譯完成之後會生成R.java檔案。

2.AIDL工具會將所有的aidl介面轉化為java介面。

3.所有的java程式碼,包括R.java與aidl檔案都會被Java編譯器編譯成.class檔案。

4.Dex工具會將上述產生的.class檔案及第三庫及其他.class檔案編譯成.dex檔案(dex檔案是Dalvik虛擬機器可以執行的格式),dex檔案最終會被打包進APK檔案。

5.ApkBuilder工具會將編譯過的資源及未編譯過的資源(如圖片等)以及.dex檔案打包成APK檔案。

6.生成APK檔案後,需要對其簽名才可安裝到裝置,平時測試時會使用debug keystore,當正式釋出應用時必須使用release版的keystore對應用進行簽名。

7.如果對APK正式簽名,還需要使用zipalign工具對APK進行對齊操作,這樣做的好處是當應用執行時會提高速度,但是相應的會增加記憶體的開銷。