Android 打包 学习笔记

项目中涉及到通过jenkins自动化实现多渠道打包,并在打包过程中动态配置配置参数和动态修改打包参数。

1、多渠道到打包配置 在build.gradle 文件中配置

常见配置参考:

 Android 多渠道打包实操(更改包名、图标、主题资源 、替换常量、第三方SDK Appkey配置)

Gradle多渠道打包(动态设定App名称,应用图标,替换常量,更改包名,变更渠道)

需要注意配置参数的位置,因为build.gradle的层级比较乱,好几次复制粘贴弄错地方了。

2、修改生成的apk文件名,和文件位置

Gradle3.3 修改APK生成路径和文件名(附AAR修改方式以及分析过程)

注意网上相关的文章很多,但是随着版本的变化,很多都是老版本的,并不适用了。

默认的是每个渠道目录下都有一个debug和release文件,不方便取包。可以在debug和release中分别设置了不同的文件目录,让不同渠道的debug版的apk都到同一个debug文件下,release版的到同一个release文件下()。

 //设置生成的apk路径和名称
        applicationVariants.all { variant ->
            def dirName
            def apkName
            if (variant.buildType.name == 'release') {
                dirName = "apk_release"
                apkName = "release"
            }else{
                dirName = "apk_debug"
                apkName = "debug"
            }
            // 自定义输出路径
            variant.outputs.all { output ->
                //打包是开启,让生成的apk都在同一个文件夹下
                variant.getPackageApplicationProvider().get().outputDirectory = new File(project.rootDir.absolutePath + File.separator + "app" + File.separator + dirName)
                //设置apk名称
                outputFileName = "${variant.productFlavors[0].name}_v${version_major}.${version_minor}.${version_private}_${releaseTime()}_"+apkName+".apk"

            }
        }

修改完成后,打包能都正常完成,但是出现直接运行报错

08/02 10:27:51: Launching app
The APK file E:\androidDemo\NewDemo\app\build\outputs\apk\dev\debug\app-dev-debug.apk does not exist on disk.
Error while Installing APK

找不到apk,分析认为,是修改生成的apk位置后,运行时生成的包进入了修改之后的文件目录中,默认文件下找不到对应的apk。修改运行设置,不实用默认apk,就可以了

ps:貌似会影响发布的速度,所以还可以在开发时关闭修改路径功能,要多渠道打包时再打开

3、Gradle生命周期

根据不同的构建阶段修改配置,需要先了解gradle的生命周期

Gradle基础 - 构建生命周期和Hook技术

在修改gradle的过程中遇到好多坑,发现还是要对gradle系统的学习一下

Gradle入门系列(一)——groovy基础语法

Gradle入门系列(二)——groovy高级语法

Gradle入门系列(三)——初识Gradle与Project

Gradle入门系列(四)——初识Gradle Task

Gradle入门系列(五)——Gradle其它模块与Plugin插件

发布了107 篇原创文章 · 获赞 178 · 访问量 87万+

猜你喜欢

转载自blog.csdn.net/bihansheng2010/article/details/98174017