編輯:關於Android編程
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-
今天工作中遇到的一個問題,需求是這樣的,需要給dz的論壇做一個android擴展,這肯定少不了會員登錄,就得需要二次開發dz提供一個登錄接口,眩暈中。。。 因為我對dz不
過去的兩天,在項目中,拋棄了ListView, 想試一試RecyclerView, 在用的過程中,遇到了一些問題,比如:如何為RecyclerView添加Header和F
一、測試性能Demo 首先給大家一個性能測試的Demo,看看性能如何。 Demo.apk 二、相關操作CRUD Entity: import android.an
一、Activity與Fragment之間通信1、Activity向Fragment傳值在Activity中使用setArguments封裝所需傳遞的值,在Fragmen