gradle 构建过程
生活随笔
收集整理的這篇文章主要介紹了
gradle 构建过程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
轉載自http://www.jianshu.com/p/cc88488e5163, http://www.jianshu.com/p/2a5b1aa91c52
大概分為以下幾個步驟
1、使用aapt工具將res資源文件生成R.java文件
2、使用aidl工具將aidl文件生成對應java文件
3、使用javac命令編譯工程源代碼和上面兩步生成的文件,生成class文件
4、通過dex工具將class文件和第三方jar包打成dex文件
5、用aapt工具將res下的資源文件編譯成二進制文件,然后將其和上一步中的dex文件以及assets中的文件通過apkbuilder工具打包成apk文件
6、通過jarsigner對apk進行簽名
7、利用zipalign工具對apk進行字節對齊優化操作
1.clean 清理工程 刪除build文件夾// ************** Configuration on demand is an incubating feature *******2、preBuild 每個module 都會執行preBuild 準備配置文件3、preReleaseBuild 準備release configuration 在 preBuild 之后執行 會依賴preBuild4、checkReleaseManifest 檢查 release下的manifest 在 preReleaseBuild 之后執行 依賴preReleaseBuild 5、preDebugAndroidTestBuild 準備debug下的Test 在preBuild后執行 依賴preBuild 6、preDebugBuild 準備 debug configuration 在preBuild后執行 依賴preBuild 7、preDebugUnitTestBuild 準備 debug下的單元測試構建 在preBuild后執行 依賴preBuild 8、preReleaseUnitTestBuild 準備 release下的單元測試構建 在preBuild后執行 依賴preBuild // ***************** 以上 build 文件夾不存在 *********************************** // **************** 接下來是對依賴的包 進行下載 *********************在build/incremental/exploded-aar下 9、prepareComAndroidSupportSupportV42311Library 生成 Android SupportV4.23.1庫支持 在build/incremental/exploded-aar下 10、prepareComNdAndroidSmartcanCommonsUtilAar1205SmartcanReleaseLibrary 生成 smartcan.commons.util-aar.1.2.0.5.smartcan.release 11、prepareComNdAndroidSmartcanDatalayerAar1205SmartcanReleaseLibrary 生成 smartcan.commons.datalayer-aar.1.2.0.5.smartcan.release 12、prepareComNdAndroidSmartcanDatatransferAar1205SmartcanReleaseLibrary 生成 smartcan.commons.datatransfer-aar.1.2.0.5.smartcan.release 13、prepareComNdAndroidSmartcanFrameworkAar1205SmartcanReleaseLibrary 生成 smartcan.commons.framnework-aar.1.2.0.5.smartcan.release 14、prepareComNdAndroidSmartcanNetworkAar1205SmartcanReleaseLibrary 生成 smartcan.commons.network-aar.1.2.0.5.smartcan.release 15、prepareComNdAndroidSmartcanSmartcanCoreAar1205SmartcanReleaseLibrary 生成 smartcan.commons.smartcan.core-aar.1.2.0.5.smartcan.release 16、prepareComNdAndroidSmartcanSmartcanDatacollectionAar1205SmartcanReleaseLibrary 生成 smartcan.commons.datacollection-aar.1.2.0.5.smartcan.release 17、prepareComNdSdpAndroidProcesscheck108Library 生成 android.process.check.1.0.8 18、prepareReleaseDependencies 加載 遠端的依賴 加載 所有的需要從遠端下載的依賴 19、compileReleaseAidl 編譯release環境下的 AIDL文件 依賴prepareDebugDependencies 在build/incremental/aidl/release下 20、compileReleaseRenderscript 編譯 release環境下的渲染腳本, Renderscript用來進行高性能計算,是一種類C腳本語言 依賴prepareDebugDependencies 在build/incremental/rs/release下 21、generateReleaseBuildConfig 會生成 releasse下的 資源和源碼 包括BuildConfig 在build/generate/source/buildConfig/release 依賴checkReleaseManifest 22、generateReleaseAssets 生成 release下的 Assets文件 但沒有完全生成個 算是準備 23、mergeReleaseAssets 生成 debug下的Assets文件 在 build/intermediates/assets/release下, 和 merge.xml文件 在build/intermediates/incremental/mergeAssets/release下 依賴ReleaseDependencies 24、generateReleaseResValues 準備resource的 values文件 25、generateReleaseResources 準備 資源文件 26、mergeReleaseResources release下的 生成Resource文件 在build/incremental/res/release下 和 merge.xml 在build/intermediates/incremental/mergeResources/release下 27、processReleaseManifest 依賴prepareReleaseDependencies 生成 AndroidManifest文件 在build/incremental/manifest/full/release 28、processReleaseResources 生成resources-release.ap_ 在 build/intermediates/resources下 29、generateReleaseSources 生成R文件 在build/generate/source/r/debug下 30、processReleaseJavaRes 31、compileReleaseJavaWithJavac 使用Javac編譯Java代碼 32、proguardRelease 生成 混淆文件 運行混淆規則 33、androidJavadocsPicked 34、copyMappingTask 復制 mapping文件 35、androidJavadocsJar 生成 Javadocs的Jar文件 36、androidSourcesJar 生成 Java源碼的 Jar文件 37、compileLint 靜態代碼檢查 38、copyDebugLint 39、checkDebugManifest 檢查 release下的manifest 在 preDebugBuild 之后執行 依賴preDebugBuild 40、prepareDebugDependencies debug下 加載 遠端的依賴 加載 所有的需要從遠端下載的依賴 41、compileDebugAidl 編譯debug環境下的 AIDL文件 依賴prepareDebugDependencies 在build/incremental/aidl/debug下 42、compileDebugRenderscript 編譯 debug環境下的渲染腳本 依賴prepareDebugDependencies 在build/incremental/rs/debug下 43、generateDebugBuildConfig 會生成 debug下的 資源和源碼 包括BuildConfig 在build/generate/source/buildConfig/debug 依賴checkDebugManifest 44、generateDebugAssets 準備 debug下的 Assets文件 45、mergeDebugAssets 生成 debug下的Assets文件 在 build/intermediates/assets/debug下, 和 merge.xml文件 在build/intermediates/incremental/mergeAssets/debug下 依賴ReleaseDependencies 46、generateDebugResValues 準備resource的 values文件 件 47、generateDebugResources 準備 資源文件 48、mergeDebugResources 生成資源文件 在generateDebugResources后執行 在build/incremental/res/debug下 和 merge.xml在build/intermediates/incremental/mergeResources/debug下 49、processDebugManifest 依賴prepareReleaseDependencies 生成 AndroidManifest文件 在build/incremental/manifest/full/release 50、processDebugResources 生成resources-debug.ap_ 在 build/intermediates/resources下 51、generateDebugSources 生成R文件 在build/generate/source/r/debug下 52、processDebugJavaRes 生成Java資源文件 53、compileDebugJavaWithJavac 使用Javac編譯Java代碼 54、extractDebugAnnotations 55、mergeDebugProguardFiles 生成混淆文件 56、compileDebugNdk 編譯NDK 57、packageDebugJniLibs 打包本地依賴包 58、packageDebugRenderscript 打包渲染腳本 59、packageDebugResources debug 打包資源文件 60、proguardDebug 混淆 61、bundleDebug 62、compileDebugSources 編譯java源碼 63、assembleDebug 編譯創建Jar包 64、copyReleaseLint 65、extractReleaseAnnotations 66、mergeReleaseProguardFiles 生成混淆文件 在buil/outputs/ 67、compileReleaseNdk 68、packageReleaseJniLibs 69、packageReleaseRenderscript 70、packageReleaseResources 80、bundleRelease 81、compileReleaseSources 編譯 82、assembleRelease 編譯創建Jar包 83、assemble 包含了項目中的所有打包相關的任務,比如java項目中打的jar包,Android項目中打的apk 84、lint android靜態代碼檢查 85、prepareDebugUnitTestDependencies 加載單元測試以來的遠程包 85、processDebugUnitTestJavaRes 生成單元測試 86、compileDebugUnitTestJavaWithJavac 使用Javac編譯Java單元測試代碼 87、compileDebugUnitTestSources 編譯單元測試 源碼 88、mockableAndroidJar 89、assembleDebugUnitTest 編譯打包 90、testDebugUnitTestPicked 測試UT 91、prepareReleaseUnitTestDependencies 加載 UT的依賴 92、processReleaseUnitTestJavaRes 加載UT需要的資源文件 93、compileReleaseUnitTestJavaWithJavac 使用Javac編譯Java單元測試代碼 94、compileReleaseUnitTestSources 編譯單元測試 源碼 95、assembleReleaseUnitTest 編譯打包 96、testReleaseUnitTestPicked 測試UT 97、test 包含了所有的測試任務 98、check 包含了項目中所有驗證相關的任務 99、:build 包含所有的 build任務 100、uploadArchivesUploading: 上傳 0
大概分為以下幾個步驟
1、使用aapt工具將res資源文件生成R.java文件
2、使用aidl工具將aidl文件生成對應java文件
3、使用javac命令編譯工程源代碼和上面兩步生成的文件,生成class文件
4、通過dex工具將class文件和第三方jar包打成dex文件
5、用aapt工具將res下的資源文件編譯成二進制文件,然后將其和上一步中的dex文件以及assets中的文件通過apkbuilder工具打包成apk文件
6、通過jarsigner對apk進行簽名
7、利用zipalign工具對apk進行字節對齊優化操作
1.clean 清理工程 刪除build文件夾// ************** Configuration on demand is an incubating feature *******2、preBuild 每個module 都會執行preBuild 準備配置文件3、preReleaseBuild 準備release configuration 在 preBuild 之后執行 會依賴preBuild4、checkReleaseManifest 檢查 release下的manifest 在 preReleaseBuild 之后執行 依賴preReleaseBuild 5、preDebugAndroidTestBuild 準備debug下的Test 在preBuild后執行 依賴preBuild 6、preDebugBuild 準備 debug configuration 在preBuild后執行 依賴preBuild 7、preDebugUnitTestBuild 準備 debug下的單元測試構建 在preBuild后執行 依賴preBuild 8、preReleaseUnitTestBuild 準備 release下的單元測試構建 在preBuild后執行 依賴preBuild // ***************** 以上 build 文件夾不存在 *********************************** // **************** 接下來是對依賴的包 進行下載 *********************在build/incremental/exploded-aar下 9、prepareComAndroidSupportSupportV42311Library 生成 Android SupportV4.23.1庫支持 在build/incremental/exploded-aar下 10、prepareComNdAndroidSmartcanCommonsUtilAar1205SmartcanReleaseLibrary 生成 smartcan.commons.util-aar.1.2.0.5.smartcan.release 11、prepareComNdAndroidSmartcanDatalayerAar1205SmartcanReleaseLibrary 生成 smartcan.commons.datalayer-aar.1.2.0.5.smartcan.release 12、prepareComNdAndroidSmartcanDatatransferAar1205SmartcanReleaseLibrary 生成 smartcan.commons.datatransfer-aar.1.2.0.5.smartcan.release 13、prepareComNdAndroidSmartcanFrameworkAar1205SmartcanReleaseLibrary 生成 smartcan.commons.framnework-aar.1.2.0.5.smartcan.release 14、prepareComNdAndroidSmartcanNetworkAar1205SmartcanReleaseLibrary 生成 smartcan.commons.network-aar.1.2.0.5.smartcan.release 15、prepareComNdAndroidSmartcanSmartcanCoreAar1205SmartcanReleaseLibrary 生成 smartcan.commons.smartcan.core-aar.1.2.0.5.smartcan.release 16、prepareComNdAndroidSmartcanSmartcanDatacollectionAar1205SmartcanReleaseLibrary 生成 smartcan.commons.datacollection-aar.1.2.0.5.smartcan.release 17、prepareComNdSdpAndroidProcesscheck108Library 生成 android.process.check.1.0.8 18、prepareReleaseDependencies 加載 遠端的依賴 加載 所有的需要從遠端下載的依賴 19、compileReleaseAidl 編譯release環境下的 AIDL文件 依賴prepareDebugDependencies 在build/incremental/aidl/release下 20、compileReleaseRenderscript 編譯 release環境下的渲染腳本, Renderscript用來進行高性能計算,是一種類C腳本語言 依賴prepareDebugDependencies 在build/incremental/rs/release下 21、generateReleaseBuildConfig 會生成 releasse下的 資源和源碼 包括BuildConfig 在build/generate/source/buildConfig/release 依賴checkReleaseManifest 22、generateReleaseAssets 生成 release下的 Assets文件 但沒有完全生成個 算是準備 23、mergeReleaseAssets 生成 debug下的Assets文件 在 build/intermediates/assets/release下, 和 merge.xml文件 在build/intermediates/incremental/mergeAssets/release下 依賴ReleaseDependencies 24、generateReleaseResValues 準備resource的 values文件 25、generateReleaseResources 準備 資源文件 26、mergeReleaseResources release下的 生成Resource文件 在build/incremental/res/release下 和 merge.xml 在build/intermediates/incremental/mergeResources/release下 27、processReleaseManifest 依賴prepareReleaseDependencies 生成 AndroidManifest文件 在build/incremental/manifest/full/release 28、processReleaseResources 生成resources-release.ap_ 在 build/intermediates/resources下 29、generateReleaseSources 生成R文件 在build/generate/source/r/debug下 30、processReleaseJavaRes 31、compileReleaseJavaWithJavac 使用Javac編譯Java代碼 32、proguardRelease 生成 混淆文件 運行混淆規則 33、androidJavadocsPicked 34、copyMappingTask 復制 mapping文件 35、androidJavadocsJar 生成 Javadocs的Jar文件 36、androidSourcesJar 生成 Java源碼的 Jar文件 37、compileLint 靜態代碼檢查 38、copyDebugLint 39、checkDebugManifest 檢查 release下的manifest 在 preDebugBuild 之后執行 依賴preDebugBuild 40、prepareDebugDependencies debug下 加載 遠端的依賴 加載 所有的需要從遠端下載的依賴 41、compileDebugAidl 編譯debug環境下的 AIDL文件 依賴prepareDebugDependencies 在build/incremental/aidl/debug下 42、compileDebugRenderscript 編譯 debug環境下的渲染腳本 依賴prepareDebugDependencies 在build/incremental/rs/debug下 43、generateDebugBuildConfig 會生成 debug下的 資源和源碼 包括BuildConfig 在build/generate/source/buildConfig/debug 依賴checkDebugManifest 44、generateDebugAssets 準備 debug下的 Assets文件 45、mergeDebugAssets 生成 debug下的Assets文件 在 build/intermediates/assets/debug下, 和 merge.xml文件 在build/intermediates/incremental/mergeAssets/debug下 依賴ReleaseDependencies 46、generateDebugResValues 準備resource的 values文件 件 47、generateDebugResources 準備 資源文件 48、mergeDebugResources 生成資源文件 在generateDebugResources后執行 在build/incremental/res/debug下 和 merge.xml在build/intermediates/incremental/mergeResources/debug下 49、processDebugManifest 依賴prepareReleaseDependencies 生成 AndroidManifest文件 在build/incremental/manifest/full/release 50、processDebugResources 生成resources-debug.ap_ 在 build/intermediates/resources下 51、generateDebugSources 生成R文件 在build/generate/source/r/debug下 52、processDebugJavaRes 生成Java資源文件 53、compileDebugJavaWithJavac 使用Javac編譯Java代碼 54、extractDebugAnnotations 55、mergeDebugProguardFiles 生成混淆文件 56、compileDebugNdk 編譯NDK 57、packageDebugJniLibs 打包本地依賴包 58、packageDebugRenderscript 打包渲染腳本 59、packageDebugResources debug 打包資源文件 60、proguardDebug 混淆 61、bundleDebug 62、compileDebugSources 編譯java源碼 63、assembleDebug 編譯創建Jar包 64、copyReleaseLint 65、extractReleaseAnnotations 66、mergeReleaseProguardFiles 生成混淆文件 在buil/outputs/ 67、compileReleaseNdk 68、packageReleaseJniLibs 69、packageReleaseRenderscript 70、packageReleaseResources 80、bundleRelease 81、compileReleaseSources 編譯 82、assembleRelease 編譯創建Jar包 83、assemble 包含了項目中的所有打包相關的任務,比如java項目中打的jar包,Android項目中打的apk 84、lint android靜態代碼檢查 85、prepareDebugUnitTestDependencies 加載單元測試以來的遠程包 85、processDebugUnitTestJavaRes 生成單元測試 86、compileDebugUnitTestJavaWithJavac 使用Javac編譯Java單元測試代碼 87、compileDebugUnitTestSources 編譯單元測試 源碼 88、mockableAndroidJar 89、assembleDebugUnitTest 編譯打包 90、testDebugUnitTestPicked 測試UT 91、prepareReleaseUnitTestDependencies 加載 UT的依賴 92、processReleaseUnitTestJavaRes 加載UT需要的資源文件 93、compileReleaseUnitTestJavaWithJavac 使用Javac編譯Java單元測試代碼 94、compileReleaseUnitTestSources 編譯單元測試 源碼 95、assembleReleaseUnitTest 編譯打包 96、testReleaseUnitTestPicked 測試UT 97、test 包含了所有的測試任務 98、check 包含了項目中所有驗證相關的任務 99、:build 包含所有的 build任務 100、uploadArchivesUploading: 上傳 0
?
?
轉載于:https://www.cnblogs.com/xaf-dfg/p/6374423.html
總結
以上是生活随笔為你收集整理的gradle 构建过程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何条码打印软件工具箱窗格进行重新定位
- 下一篇: Transition 实现轮播图