irpas技术客

Android Studio项目打包生成可安装在自己手机上的App安装包文件_码农的后花园

网络 6415

点击上方“码农的后花园”,选择“星标”?公众号

精选文章,第一时间送达

Android程序开发完后,如果要发布在互联网上供别人使用,就要将自己的程序打包成Android安装包文件(Android Package 简称APK),其后缀名为“.apk”。这是每个应用程序发布前必做的一项工作。

Android 打包

其实我们现在Android手机上所有的应用都是.apk文件,只不过分为系统自带和第三方,一个.apk文件本质其实就对应于你手机上的一个应用App程序,比如支付宝,淘宝。

.apk文件就是一个包,打包就是要生成apk文件,有了apk别人才能安装使用。打包分debug版和release包,通常所说的将Android程序打包指生成release版的apk安装文件,也就是最后能安装在我们自己手机上的App的安装包。而Degug版的.apk文件的是指对我们做好的Android程序在我们电脑端的虚拟手机模拟器或者通过数据线或者Wi-Fi将自己的手机设备连接电脑作为一个虚拟手机设备进行运行调试生成的App的安装包,这个安装包只能在我们电脑端的虚拟手机模拟器和通过数据线连接电脑的。(本质上debug版本的.apk文件是Android通过调试桥adb运行调试生成的)

release版App的.apk安装包文件会比debug版的小,release版的还会进行混淆和用自己的keystore签名,以防止别人反编译后重新打包替换你的应用。

Android 打包签名

?Android项目以它的包名作为唯一标识,如果同一台手机上安装两个包名相同的应用,后面安装的应用就可以覆盖前面安装的应用。为了避免这种情况发生,Android要求对作为产品发布的App应用进行签名,也就是把自己的密钥keystore添加到打包生成的release版本的.apk文件上,相当于开发者对这个即将发布的应用App添加一个私有标识,进行一个专属签名。

签名的主要作用

确定发布者的身份:由于应用开发者可以通过使用相同包名来替换已经安装的程序,因此使用签名可以避免发生这种情况

确保应用的完整性:签名会对应用包中的每个文件进行处理,从而确保程序包中的文件不会被替换。

第一次对自己的Android程序打包,我们是没有密钥的,需要自己生成一个自己的密钥,用于对应用进行私有签名,生成的方式如下,在菜单栏里选择Build->Generate Signed Bundle/APK

这里有两种打包和签名的方式,第一种是Android App Bundle,它将APK文件的生成和应用签名交由Google Play来完成。第二种是自己生成和管理自己的签名Keystore。

这里选择第二种打包签名方式,然后点击Next,会出现下面的界面。这里我之前已经创建了一个密钥key.jks,我将其保存在了D盘的key_store文件下,直接选择就可以了。但是如果你是第一次对Android程序打包是没有的,需要自己创建。这里选择Greate new...,重新再创建一个新的密钥。

创建一个新的密钥的保存路径和密钥文件名称,以及密钥的密码,Certificate里面是一些官方的东西,自己的App的话可以随便填一个就可以了,不用管?太多。

填好后,选择OK,出现我们创建好了的新的密钥界面

然后点击Next,选择发布版本的release,Destination Folder是生成release版的App安装包文件默认保存路径,可以修改,也可以不改

点击Finish,就开始对我们的App打包了,可以在build窗口中查看打包进度,打包的速度根据网速和电脑性能。

打包完成后,可以在Event Log窗口中可以查看到打包完成信息。

打包完成后 ,点击Event Log窗口的locate或者analyze可以跳转查看到打包生成release版本的App的app-release.apk文件,如下所示。

将上面的这个app-release.apk安装文件发送到自己或者别人的手机上,就可以直接安装你设计的App应用了。后台回复,关键字“生日快乐”,获得已经打包好了的生日快乐App和安卓开发入门手册。

往期精彩:

Android App 开发的三种姿势 ~

模型部署,移动端安卓App开发环境搭建和配置教程 ~

运你的第一个“Hello World” 安卓App(附赠:安卓开发入门手册)


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #Android #Studio #生成app