文章序号
- Android gradle打包涉及task源码解析(一)准备工作
- Android gradle打包涉及task源码解析(二)
- Android gradle打包涉及task源码解析(三)
- Android gradle打包涉及task源码解析(四)
- Android gradle打包涉及task源码解析(五)
- Android gradle打包涉及task源码解析(六)
工欲善其事,必先利其器
-
Android构建过程
- Gradle入门
相关知识如果不了自行网上查找
- 涉及到的源码
- Android 编译过程调试
- 测试程序
测试程序链接
测试程序写一点gradle逻辑,用于打印出相应task的inputs和outputs文件
// 打印task的输入和输出
gradle.taskGraph.afterTask { task ->
try {
println("---- task name:" + task.name)
task.inputs.files.each { fileTemp ->
println 'input file:' + fileTemp.absolutePath
}
println '---------------------------------------------------'
task.outputs.files.each { fileTemp ->
println 'output file:' + fileTemp.absolutePath
}
} catch (Exception e) {
}
}
相关task
新建一个Android Project默认的task如下(构建环境android gradle plugin:3.0.0):
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:checkDebugManifest UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:prepareLintJar UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:createDebugCompatibleScreenManifests UP-TO-DATE
:app:processDebugManifest
:app:splitsDiscoveryTaskDebug UP-TO-DATE
:app:processDebugResources
:app:generateDebugSources
:app:javaPreCompileDebug
:app:compileDebugJavaWithJavac
:app:compileDebugNdk NO-SOURCE
:app:compileDebugSources
:app:mergeDebugShaders
:app:compileDebugShaders
:app:generateDebugAssets
:app:mergeDebugAssets
:app:transformClassesWithDexBuilderForDebug
:app:transformDexArchiveWithExternalLibsDexMergerForDebug
:app:transformDexArchiveWithDexMergerForDebug
:app:mergeDebugJniLibFolders
:app:transformNativeLibsWithMergeJniLibsForDebug
:app:processDebugJavaRes NO-SOURCE
:app:transformResourcesWithMergeJavaResForDebug
:app:validateSigningDebug
:app:packageDebug
:app:assembleDebug
后面将分6篇文章来分别分析相关所有的task。