上一篇: Django入门
  目 录
1 签名文件的作用
2 生成及查看签名证书
3 使用Hbuider云打包

一、签名文件(*.keystore)的作用

开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的。

由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名可以保证相当名字,但是签名不同的包不被替换。

APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。

这样签名其实也是开发者的身份标识。交易中抵赖等事情发生时,签名可以防止抵赖的发生。

签名的注意事项

Android系统要求所有的程序经过数字签名才能安装,如果没有可用的数字签名,系统将不许安装运行此程序。不管是模拟器还是真实手机。因此,在设备或者是模拟器上运行调试程序之前,必须为应用程序设置数字签名;

Android签名的数字证书不需要权威机构来认证,是开发者自己产生的数字证书,即所谓的自签名。数字证书用来标识应用程序的作者和在应用程序之间建立信任关系,而不是用来决定最终用户可以安装哪些应用程序

系统仅仅会在安装的时候测试签名证书的有效期,如果应用程序的签名是在安装之后才到期,那么应用程序仍然可以正常启用

可以使用标准工具-Keytool and Jarsigner-生成密钥,来签名应用程序的.apk文件

正式发布一个Android应用时,必须使用一个合适的私钥生成的数字证书来给程序签名,不能使用ADT插件或者ANT工具生成的调试证书来发布

二、生成及查看签名证书

1. 生成keystore

创建keystore,需要用到keytool.exe (位于jdk_xx\jre\bin目录下),具体做法如下,mac在终端下可直接敲入keytool

keytool -genkey -alias mykey -keyalg RSA -validity 40000 -keystore demo.keystore
#说明:
#    -genkey 产生密钥
#    -alias mykey 别名 mykey
#    -keyalg RSA 使用RSA算法对签名加密
#    -validity 40000 有效期限4000天
#    -keystore demo.keystore

然后按回车键
按回车后首先会提示你输入的密码:这个在签名时要用的,要记住
然后会再确认你的密码。
之后会依次叫你输入姓名、组织单位、组织名称、城市区域、省份名称、国家代码(CN)等

Keytool的详细参数请参考

http://www.android123.com.cn/androidkaifa/173.html

2.查看签名信息

keytool -list -keystore demo.keystore -alias mykey -v

3.查看keystore的公钥证书信息

keytool -list -keystore demo.keystore -alias mykey -rfc

三、使用Hbuider云打包

前面我们得到了keystore签名文件,即可使用Hbuilder来进行apk的签名,如下图

20161205img01

1.Android包名:可自己定义;

2.证书别名:生成keystore时的-alias后面部分,即 “mykey”

3.私钥密码:生成时输入的密码

4.证书文件:keystore的文件位置

点击打包即可进行云端打包

结束语

本章主要结合Android的签名文件来进行了整过程的描述,能够对android如何进行打包有个详细的了解;