Android gradle打包涉及task源码解析(一)准备工作

文章序号

工欲善其事,必先利其器

  • Android构建过程


    构建过程.png
  • Gradle入门

相关知识如果不了自行网上查找

  • 涉及到的源码

Android编译源码链接

  • 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。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容