UltraDebug

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: A C D R G Y M Z X S P
公益项目,接受捐赠
查看: 2164|回复: 0
收起左侧

[移动端口] Android studio打包release的apk之后复制到指定目录

[复制链接]
Jameses

主题

0

回帖

UD

新手上路

UID
79
积分
13
注册时间
2022-7-31
最后登录
1970-1-1
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_UltraDebug

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

如何打包?
Android studio打包release的apk之后复制到指定目录 - Jameses_UltraDebug

双击这个任务就可以了。

UltraDebug免责声明
✅以上内容均来自网友转发或原创,如存在侵权请发送到站方邮件9003554@qq.com处理。
✅The above content is forwarded or original by netizens. If there is infringement, please send the email to the destination 9003554@qq.com handle.
回复 打印

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|站点地图|UltraDebug ( 滇ICP备2022002049号-2 滇公网安备 53032102000034号)

GMT+8, 2025-6-18 07:34 , Processed in 0.028399 second(s), 10 queries , Redis On.

Powered by Discuz X3.4

© 2001-2023 Discuz! Team.

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