宿主build.gradle Task执行流程
2016-06-02 12:58:20 0 举报
在Android项目中,build.gradle文件定义了项目的构建配置。当执行Task时,Gradle会按照以下流程进行: 1. 解析build.gradle文件,生成Project实例。 2. 解析settings.gradle文件,确定项目的模块依赖关系。 3. 解析每个模块的build.gradle文件,生成Module实例。 4. 根据Task的类型和依赖关系,确定Task的执行顺序。 5. 执行Task,根据Task的配置执行相应的操作,如编译代码、打包APK等。 6. 输出执行结果,如控制台日志、构建报告等。 通过执行Task,可以自动化地完成项目的构建过程,提高开发效率。
作者其他创作
大纲/内容
Release
removeJniLibs == true
offLineWork == true
mergeVariantResources
去除R.java文件的final标识
拷贝工程中每个插件output目录下debug.so到jniLibs,替换jniLibs对应插件的release.so
transformClassesWithFilterAnnotatedClassForVariant
processVariantManifest
拷贝工程中每个插件output目录下release.so到jniLibs,替换jniLibs对应插件的release.so
compileVariantJavaWithJavac
PreBuild
normal
removeJniLibs == false
打补丁包不需要插件so包
findVariantBug
resolveVariantNativeDependencies
prepareVariantDependencies
koudaiMergeVariantManifest
移除JniLibs文件夹
Debug
在needUpdateResouce打开后会重新生成public.xml
打补丁包时去掉不能打补丁的文件
createVariantHostAp
transformNative_libsWithMergeJniLibsForVariant
拿到每个so中manifest,将路径传递到mergeManifestTask中
createVariantJar
assembleVariant
transformClassesWithHookActivityClassForVariant
transformNative_libsWithMergeJniLibsForVRelease
拷贝public.xml & public_extra.xml参与编译
若removeJniLibs == true打补丁包时将产出的apk和dex重命名
若applyMappingFilePath不为空,设置mapping文件避免混淆
获取JniLibs中so,生成plugins.cfg
0 条评论
下一页