Android Studio修改apk打包生成名称

本文介绍如何通过Gradle脚本自定义Android应用的APK文件名,并提供了适用于Gradle 3.0及以上版本的代码示例。

在app的build.gradle文件的android{}括号里添加:

android.applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def outputFile = output.outputFile
            if (outputFile != null && outputFile.name.endsWith('.apk')) {             
                //在这里修改apk文件名
                def fileName = "想要的文件名.apk"
                output.outputFile = new File(outputFile.parent, fileName)               
            }
        }
}

Gradle 3.0以上版本改用以下代码添加:
android.applicationVariants.all {
    variant ->
        variant.outputs.all {
            //在这里修改apk文件名
            outputFileName = "${variant.name}-v${variant.versionName}.apk"
        }
}

variant.name软件名称,variant.versionName软件版本号,比如你的软件叫jianshu,版本号为1.0.0,则输出的软件名称就是 jianshu-v1.0.0.apk

 

可通过以下途径关注本人:

个人网站https://zachary46.xyz

Githubhttps://github.com/Zachary46

优快云博客https://blog.youkuaiyun.com/Zachary_46

博客园https://www.cnblogs.com/Zachary46

掘金https://juejin.im/user/5b57e9a16fb9a04f8e1432ef

转载于:https://www.cnblogs.com/Zachary46/p/9367387.html

### 修改 APK 输出文件名 为了在 Android Studio 中使用 Kotlin 脚本 (KTS) 来修改生成APK 文件名,可以在 `build.gradle.kts` 文件中定义自定义逻辑。通过编写 Gradle 任务来实现这一目标。 #### 定义时间戳函数 首先,在项目的根目录下的 `buildSrc/src/main/kotlin/utils/Utils.kt` 创建一个工具类用于获取当前的时间戳: ```kotlin package utils import java.text.SimpleDateFormat import java.util.* object Utils { fun getCurrentTimestamp(): String { val sdf = SimpleDateFormat("yyyyMMdd_HHmmss", Locale.CHINA) return sdf.format(Date()) } } ``` 此代码片段展示了如何创建一个静态方法以返回格式化的日期字符串[^4]。 #### 配置 build.gradle.kts 接着,在模块级别的 `build.gradle.kts` 文件内应用该功能,并设置输出 APK名称规则: ```kotlin plugins { id("com.android.application") kotlin("android") } android { defaultConfig { applicationId = "com.example.hellov6" minSdkVersion(21) targetSdkVersion(30) setProperty("archivesBaseName", "${project.name}-${defaultConfig.versionName}") // 使用之前定义好的工具类中的方法来自动生成带有时间戳的名字 applicationVariants.all { variant -> variant.outputs.forEach { output -> if (!output.outputFile.absolutePath.endsWith(".apk")) return@forEach val formattedDate = utils.Utils.getCurrentTimestamp() val newName = "${ project.name}-$formattedDate-${variant.flavorName}-${variant.buildType.name}.apk" output.outputFileName = newName } } } compileOptions { sourceCompatibility = JavaVersion.VERSION_1_8 targetCompatibility = JavaVersion.VERSION_1_8 } kotlinOptions { jvmTarget = "1.8" } } ``` 这段配置说明了怎样利用前面提到的时间戳函数动态更改最终打包出来的 APK 文件名为包含项目名、版本号以及编译时刻的信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值