吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3428|回复: 6
收起左侧

[其他转载] Android studio打包release的apk之后复制到指定目录

  [复制链接]
mo211683 发表于 2021-3-2 16:01

背景

今天有个同学,需要打包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/中。
图片描述
我的命名方式,类型,版本名字,版本号,年月日,时分。

如何打包?

图片描述
双击这个任务就可以了。

免费评分

参与人数 3吾爱币 +2 热心值 +3 收起 理由
idzyr + 1 + 1 有内鬼,停止交易[doge]
GZD1 + 1 用心讨论,共获提升!
debug_cat + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

yoyoma211 发表于 2021-3-2 20:34
新手过来学习了,感谢分享
lili2312280 发表于 2021-3-2 16:59
987fw 发表于 2021-3-2 17:14
 楼主| mo211683 发表于 2021-3-3 09:23
lili2312280 发表于 2021-3-2 16:59
牛逼,必须学习学习

感谢支持,后续会继续分享
wahson 发表于 2022-4-27 11:15
我希望把多渠道打包的apk复制到同一个文件夹,比如E://release,怎么写呢
例如
app\build\outputs\apk\huawei\release
app\build\outputs\apk\xiaomi\release
里面的apk复制到E://release
lye123456 发表于 2022-8-10 11:43
谢谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 03:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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