Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android 中文翻譯:Build System Overview

Android 中文翻譯:Build System Overview

編輯:關於Android編程

\

Andrioid 編譯系統是你用於build,test,runapp的工具箱。編譯系統的運行,可以通過Android Studio的菜單或者是獨立的命令行。通過編譯系統的特性你可以做以下的事情:

(1)自定義,配置,擴展編譯進程。

(2)用同一個project and modules創建擁有不同特性的apk。

(3)通過來源設置重用代碼和資源。

Android編譯系統的自由性,能夠在不修改您應用程序的核心源文件的基礎上實現您想要的一切。

如何使用Android Studio 編譯項目,請看我的下一篇文章Build And Running From Android studio。

如何自定義編譯配置,請看我的下一篇文章:configuringgradle builds。

A Detailed Look atthe Build Process

編譯進程包含了許多的工具和進程,這些使得在編譯apk的過程中會生成很多中間文件。如果你在Android studio中開發,每次當你為你的app運行Gradle編譯任務的時候,整套的編譯過程就會被執行。編譯系統的自由性使它有益,但是,因為大部分的構建過程是可配置的和可擴展的,所以我們要了解在這之下到底發生了什麼。下圖描述了在構建中涉及的不同的工具和過程:

\

 

一個經典的構建過程一般如下:編譯系統對比合並所有的已配置的 product Flavors,build types,dependencies。如果在不同的文件夾中包含同樣名字的資源或者設置,那麼生效的優先級順序是:dependencies 覆蓋build types,build types 覆蓋product flavors,product flavors 覆蓋main sources 目錄。

(1)aapt 全稱AndroidAsset packaging tool。該工具獲取應用的資源文件,例如,AndroidManifest.xml,Activities的xml文件,並且編譯它們。R.java文件被生成,所以你能將你的資源文件id在java code中使用。

(2)aidl工具轉化你在java代碼中引入的所有的.aidlinterface。

(3)所有的java code,包含R.java和.aidl將被java compiler工具編譯,然後生成.class文件。

(4)dex工具轉換.class文件成為Dalvikbyte code。任何的第三方庫和.class文件也都會被轉換成.dex文件。以至於最後它們能被打包成.apk文件。

(5)未被編譯的資源如圖片,已被編譯的資源,.dex文件都會被發送到apkbuilder工具,從而生成apk。

(6)一但apk被構建,那麼在安裝到設備之前,它一定要被簽名,要麼是debug要麼是release。

(7)一但apk是release的,那麼一定要使用zip以align工具,它可以減少apk運行時所占用的內存。

注釋:apk中的方法數是有限制的,不可以超過65535.具體的解決辦法:請參考我的文章:Apps over 64K Methods。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved