Android Studio 打包APK(详细版)02
书接上回
下面通过秘钥jks来生成debug包试试看。
点击Finish。
把这个发到你的手机上。你会发现也是可以安装的,这是为什么呢?
那个这种方式生成的包在实际开发中起到什么作用呢?
在实际开发中,如果是自己测试,那么通过就直接用usb安装在手机上,此时就是文中第一种情况。
而如果当项目要上线或者上应用市场时,就需要用jks来生成release包上传到应用市场上。
实际开发中还有一点就是你的应用自己自己测试的并不是很到位,因此产品和测试会需要让你打包给他们做进一步测试,此时你可以给通过jks生成的debug包,也可以给release包,但是通常是debug包。
我想现在你已经明白了这些包的含义了。
三、打包的细节优化
从上面的操作中,你已经知道了一些内容,而在基本的开发中也是会用到的,而为了更好区别不同的包名,常用会给apk进行一个重命名,让你一眼就知道这个apk是哪个项目的。
① 自定义Apk名字
修改app下的build.gradle
// 自定义打包名称
android.applicationVariants.all { variant ->
variant.outputs.all {
outputFileName = "GenerateAPK.apk"
}
}
添加位置如下图所示,在android{}闭包中
添加后记得Sync一下,然后重新打一个包,这里我将打包的路径修改到了D盘,如下图所示点击Finish完后打包。
包的确是生成了,名字也不再是app-release.apk。
然后你再打一个debug的包看看,名字是否有更改。
很明显,的确是改变了,但是有一个问题,那就是如果没有外面的这个目录我根本不知道哪个apk是debug和release的。因此我还需要在打包后知道当前的包是什么类型的。
② 增加构建类型
只要修改这一句话就可以了。
现在你可以轻松的分辨版本了,但是这就够了吗?实际的开发中其实对于Android的版本也是有关系,比如你要升级迭代APK,那么你的版本就要比之前的版本要高。而目前这个APK上并不能看出来当前是多少版本,因此这也是需要显示的。
③ 增加版本名
再修改一下
outputFileName = "GenerateAPK_${buildType.name}_v${versionName}.apk"
versionName就是你的版本名称,v就表示版本,现在版本名称是1.0。那么现在打个包试一下看是不是会多一个1.0。
假如要升级一个版本,那么你改成2.0,再打包。我这里只是简单演示一下,因此没有对版本号进行修改。
而开发中可能会出现一天搭了多个包,比如你一小时前打的包和一小时后打的包,里面修改了不同的内容。因此还需要再报名上体现这个打包的日期和时间。
④ 增加日期时间
在android{}闭包外增加
//构建时间
def generateTime() {
return new Date().format("yyyy_MM_dd_HH_mm_ss")
}
这里我选择显示构建的年月日时分秒。
outputFileName = "GenerateAPK_${buildType.name}_v${versionName}_${generateTime()}.apk"
下面打包看一下。
这样apk的名字就有点长了,不过你就能从这个apk的名字了解到很多信息:所属项目、构建类型、应用版本、构建日期时间。这样你给测试去测就少了很多不必要的麻烦,降低扯皮和撕逼的概率。而你只需要简单配置一下即可,何乐而不为呢?
总结
这些内容是在开发中常见的,因此记录下来。希望能对您有所帮助,山高水长,后会有期~