Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> Android Develop:構建系統解析

Android Develop:構建系統解析

編輯:關於android開發

Android Develop:構建系統解析


Android構建系統是你用來構建、測試、運行和打包你的app的工具集。這個構建系統能作為Android Studio菜單的一個集成工具、和獨立命令的方式運行。你能使用這個構建系統的如下功能:

  • 自定義,配置,和擴展構建過程;

  • 使用同一個項目和模塊,為你的App創建多個不同功能的Apk;

  • 通過資源集合的方式重用代碼和資源;

Android構建系統非常靈活,可以使你實現一切功能,並且不用修改你的app的核心源代碼。如何構建一個Android Studio項目,閱讀Building and Running from Android Studio。如何在Android Studio項目進行自定義的配置,閱讀Configuring Gradle Builds。

 

構建過程詳解

----------------------------------------------------------------------------------------

構建生成一個.apk牽涉許多工具,和生成中間產物的過程。如果你使用Android Studio開發,完整的構建過程是你每次完成你的項目或者模塊的Gradle構建task的運行。構建過程非常靈活,所以它是非常有用的,然而,需要了解在整個過程中發生了什麼事情,因為大部分構建過程是可配置和可擴展的。下面的圖描繪了在構建過程中相關工具和過程:

\

典型的構建過程如下。構建系統合並所配置的不同產品flavor、構建類型和依賴的資源。如果不同的文件夾包含同名或者設置的資源,下面介紹了優先級順序:依賴優於構建類型,構建類型優於產品flavor,產品flavor優於主資源目錄。

  • Android Asset Packaging Tool(aapt),拿到你的應用程序資源文件,如AndroidManifest.xml文件和你的Activity的XML文件,然後編譯它們。產生了一個R.java,所以你能在你的Java代碼中引用你的資源;

  • aidle工具轉換所有你在Java接口中包含的.aild接口;

  • 你的所有代碼、包含R.java和.aidl文件,都被Java編譯器編譯,生成.class文件;

  • dex工具轉換.class文件未Dalvik字節碼,任何在你的項目中包含的第三方的庫和.class文件,都被轉換成.dex文件,它們被打包到最終的.apk文件中;

  • 所有非編譯的資源(如圖片),編譯的資源,和.dex文件被發送到apkbuilder工具,打包成一個.apk文件;

  • 一旦.apk文件生成,在它被安裝到設備之前,必須使用一個debug或者release key進行簽名;

  • 最終,如果應用程序在release模式下簽名,你必須使用zipalign工具處理.apk文件。處理了最終的.apk文件,可以減少應用程序在設備上運行使用的內存;

注意:App有一個64K方法引用限制。如果你的應用程序促發了這個限制,構建過程輸出下面的錯誤信息:

Unable to execute dex: method ID not in [0, 0xffff]: 65536.

 

為了避免這個錯誤,請閱讀Building Apps with Over 65K Methods。

 

構建輸出

構建在app/build文件加下為每個構建variant生成一個APK:這個app/build/outputs/apk目錄下包含被命名為app--.apk;例如,app-full-release.apk和app-demo-debug.apk;


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