冰凌汇编

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 49|回复: 0
收起左侧

[Android 原创] Android studio打包release的apk之后复制到指定目录

[复制链接]
Jameses 发表于 2022-8-10 23:55:36

背景

今天有个同学,需要打包release之后,保留多次打包的apk文件。在远古时候版本,只要修改release文件夹下的文件,和默认不同名,就能达到保留效果。
由于目前as升级之后进行了‘优化’,这个功能已经修复了。

目的1

当我们打包release之后,进行apk文件重命名。更好的识别这个包的来源。

如何修改打包后的apk名字?

在之前我发布过文章,还有具体的代码。直接复制即可。
传送门:
release打包后修改apk名字
时间格式化那个方法,可以稍微调整下。

def buildTimes() {
    return new Date().format("yyyyMMdd HH_mm")
}

格式化具体到分钟。

目的2

现在每次打包都会清空release文件夹。我们无法避免这个事情。我们可以在打包完成之后,把这个文件夹复制到其他地方保存。

//项目根目录下build.gradle在末尾增加代码
subprojects() {
    //assembleRelease这个任务,就是我们普通的打包任务。打release包。
    def releaseTasks = project.getTasksByName("assembleRelease", false)
    copyApkFile(releaseTasks, project)
}

def copyApkFile(Set<Task> tasks, Project project) {
    def fromDir = "/build/outputs/apk/release"
    for (task in tasks) {
        def dir = project.getProjectDir().getAbsolutePath()
        println "assemble release dir = $dir"
        //我们目前存放打包后apk的目录
        def apkDir = dir + fromDir
        def file = new File(apkDir)

        if (file.exists()) {
            def isDelete = delete(apkDir)
            println "del: $isDelete"
        }
        //在task执行完成之后   
        task.doLast {
            if (file.exists()) {
                //将生成的apk整个目录复制到我们指定位置
                copy {
                    println "copy dir = ${file.getAbsolutePath()}"
                    from apkDir
                    into rootProject.getRootDir().getAbsolutePath() + "/apk/"
                }
            }
        }
    }
}

在上面,我们定制了assembleRelease任务的包的位置:项目目录下/apk/中。
Android studio打包release的apk之后复制到指定目录 - Jameses_冰凌汇编

我的命名方式,类型,版本名字,版本号,年月日,时分。

如何打包?
Android studio打包release的apk之后复制到指定目录 - Jameses_冰凌汇编

双击这个任务就可以了。

冰凌汇编免责声明
以上内容均来自网友转发或原创,如存在侵权请发送到站方邮件9003554@qq.com处理。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|站点统计|Archiver|小黑屋|RSS|冰凌汇编 ( 滇ICP备2022002049号 滇公网安备 53032102000029号)|网站地图

GMT+8, 2022-9-25 07:06 , Processed in 0.126587 second(s), 10 queries , Redis On.

冰凌汇编 - 建立于2021年12月20日

Powered by Discuz! © 2001-2022 Comsenz Inc.

快速回复 返回顶部 返回列表