Android 原始碼分析(一)專案構建過程

diamond_lin發表於2019-02-21

前言

Java 基礎已經差不多學完了,現在的 Java 基礎,已經夠我們去閱讀Android 原始碼了,所以從現在開始學習原始碼分析。
另外,java 基礎的最後一篇網路架構 MyVolley 我吹出去牛逼說需要結合資料庫,但是我還沒準備好,所以等我整理好思緒再補上。至於設計模式部分,還是根據程式碼來學習吧, 很早以前我讀過《大話設計模式》,讀完之後好像並沒有太大的收穫。

開篇是 android 專案 build 過程,篇幅比較短,但是感覺好像放到其他篇幅又不太合適,所以,大家湊合著看一下吧。另外,原始碼分析(二)Handler 機制我也會同步釋出,小夥伴們可以直接跳過。

專案構建過程

首先是三個來源的資源,分別是 res 資原始檔、java 程式碼檔案、aidl 介面

  • res 資源:由於 AAPT(Android Asset Packaging Tool)工具打包應用中的資原始檔,如ManiFest 檔案、res 裡面的各種檔案。其中 xml 會被編譯成二進位制,編譯玩之後會為所有的檔案生成 id(包括 raw 裡面的)索引 R.java檔案。
  • aidl:AIDL 工具會將所有的 aidl 介面轉化為 java 介面。
  • java 程式碼:包括 R.java、aidl 檔案都會被 java 編譯成.class檔案。

然後由Dex 工具將上述所有的.class檔案以及第三方庫的.class檔案編譯成 dex 檔案(dex 是Dalvik 虛擬機器的執行格式),dex 檔案最終會被打包成 apk 檔案。

AplBuilder 工具將編譯過得檔案(xml、dex)和未編譯過的檔案(圖片等)打包成 apk

Jarsigner 對 apk 進行簽名(預設是debug keystore)。

以下,是官方給出的構建流程圖。

Android 原始碼分析(一)專案構建過程

相關文章