加入收藏 | 设为首页 | 会员中心 | 我要投稿 无忧刷机网 - 51刷机网 (https://www.51shuaji.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 安卓频道 > 安卓资讯 > 正文

Android apk打包流程

发布时间:2017-06-22 06:10:29 所属栏目:安卓资讯 来源:www.jianshu.com
导读:1.任何一个apk的运行都需要一个签名,测试和开发阶段,开发工具会自动生成一个debugkey来为应用签名;当应用要发布的时候,需要一个releasekey来为应用签名。2.为什么要给Android应用程序签名?这样做的根本原因是Android系统需...

1.任何一个apk的运行都需要一个签名,测试和开发阶段,开发工具会自动生成一个debugkey来为应用签名;当应用要发布的时候,需要一个releasekey来为应用签名。2.为什么要给Android应用程序签名?这样做的根本原因是Android系统需...

1.任何一个apk的运行都需要一个签名, 测试和开发阶段,开发工具会自动生成一个debug key来为应用签名;当应用要发布的时候,需要一个release key来为应用签名。2.为什么要给Android应用程序签名? 这样做的根本原因是Android系统需要一个机制,保证以下几点: 1). 拿到一个应用的安装包,能够知道作者是谁 2). 当应用更新时,能够检测是不是作者本人提交的 3). 应用中的部分文件遭到修改时,能够检测到是否为作者本人做出的修改为了实现上述目的,Android就引入了签名这种比较成熟 的方法。3.怎么生成签名证书以及怎么给应用程序签名1).下载jdk,并且配置环境变量2).执行命令,生成签名(数字证书)

 keytool -genkey -v -keystore liufeng.keystore -alias liufeng.keystore -keyalg RSA -validity 20000

keytool是工具名称,-genkey意味着执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来,显示在dos窗口中;

-keystore liufeng.keystore 表示生成的数字证书的文件名为“liufeng.keystore”;-alias liufeng.keystore 表示证书的别名为“liufeng.keystore”,当然可以不和上面的文件名一样;-keyalg RSA 表示生成密钥文件所采用的算法为RSA;-validity 20000 表示该数字证书的有效期为20000天,意味着20000天之后该证书将失效在执行此命令的时候,会在控制台提示输入一些信息,比如keystore的密码,用户名,公司名称,省市,国家等

Android apk打包流程
image.png

liufeng.keystore签名文件会默认生成到用户文件夹里,比如存在C:Usersstone文件夹里

Android apk打包流程

3).给应用程序签名方式一:使用android studio给应用程序签名打开build->Generate signed APK

Android apk打包流程
image.png

打开之后会出现如下对话框:

Android apk打包流程
image.png

点击Choose existing...按钮,选择刚才生成的签名证书,然后手动输入Key store password 和 Key password,点击next按钮。然后会出现如下对话框

Android apk打包流程
image.png

勾选V1和V2,点击Finish按钮,即可生成签名过的release包。根据对话框可知,生成的包存放到了d盘当然我们也可以修改存储路径。V1和V2其实这是从 Android 7.0引入的一个新的签名机制,它为APK附加了一些特性使其更具安全性,所以这个选项虽然不是强制性的,但最好两个都选

方式二:使用jdk命令给应用程序签名生成未签名的apk包

Android apk打包流程
image.png

点击Android studio右边的Gradle按钮,然后再点击build文件夹里的assemble按钮,即可生成一个未签名包它会自动生成到app/build/outputs/apk文件夹里

Android apk打包流程
image.png

然后我们把它移到用户的根目录里

Android apk打包流程
image.png

然后执行命令

jarsigner -verbose -keystore liufeng.keystore -signedjar release.apk app-release-unsigned.apk liufeng.keystore

说明:

jarsigner是工具名称,-verbose表示将签名过程中的详细信息打印出来,显示在dos窗口中;-keystore liufeng.keystore 表示签名所使用的数字证书所在位置,这里没有写路径,表示在当前目录下;-signedjar release.apk app-release-unsigned.apk 表示给app-release-unsigned.apk文件签名,签名后的文件名称为release.apk;-liufeng.keystore(最后面的)表示证书的别名,对应于生成数字证书时-alias参数后面的名称;这样就会在用户根目录中生成一个签名后的安装包release.apk

(编辑:无忧刷机网 - 51刷机网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读