Gradle学习笔记 - 编译过程中部分task作用

在自定义gradle插件时,最头疼的莫过于不知道将插件加入到执行流程中哪个地方,下面梳理了一些主要task的作用:

1、preDebugBuild
     获取compile 和 runtime的依赖包并对其做一些版本号,依赖等的校验工作。
2、compileDebugAidl
     将aidl转换为java文件
3、checkDebugManifest
     检查menifest文件是否存在
4、generateDebugBuildConfig
     生成BuildConfig.java文件
5、generateDebugResValues
     处理用户在app/build.gradle下定义的resValue,生成路劲:app/build/generated/res/resValues/debug/values/generated.xml

例如

buildTypes {
        debug { 
            //可以在xml中使用,或者调用getResources().getString(R.string.app_name)获取app_name的值
            resValue "string", "app_name", "@string/app_name_debug"
            //会写入生成BuildConfig.java中
		     buildConfigField "String","debugtestKey","\"debugtestValue\""       
		 }
}

buildConfigField 和resValue可以在buildTypes、defaultConfig、productFlavors中定义。

6、mergeDebugResources
     合并资源文件,主要包括:generateDebugResValues生成的generated.xml、依赖的以及工程中的资源
     依赖库资源地址:gradle本地路径/.gradle/caches/transforms-1/files-1.1/
     用途: 例如将图片转换为webp格式的插件可以在此task前处理
7、processDebugManifest
     mege manifest文件
8、processDebugResources
     aapt处理资源文件,生成R.java等文件
9、javaPreCompileDebug
     java注解处理器收集,生成 annotationProcessors.json 文件,路劲目录:app/build/intermediates/annotation_processor_list/
10、compileDebugJavaWithJavac
     将java文件编译成class文件,如果有定义注解处理器则会执行相应逻辑
11、compileDebugNdk
     编译 ndk
12、mergeDebugShaders
     合并 shader 文件
13、compileDebugShaders
     编译 shaders
14、mergeDebugAssets
     合并 assets 文件
15、transformClassesWithDexBuilderForDebug
     将项目中的class以及依赖的jar包转化为一个一个dex文件(会有重复),生成目录:app/build/intermediates/transforms/dexBuilder
16、transformDexArchiveWithExternalLibsDexMergerForDebug
     生成所有依赖的jar包的dex集合,对不同moudle中的jar包会去重
17、transformDexArchiveWithDexMergerForDebug
打包最终dex文件

参考文章:
Android gradle打包涉及task源码解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值