【Android学习】数字签名

来源:互联网 发布:淘宝铁观音哪家好 编辑:程序博客网 时间:2024/06/18 07:13

1,概念

所有的应用程序都必须有数字证书,Android系统不会安装一个没有数字证书的应用程序。
Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。
这个数字签名由应用程序的作者完成(可以是自签名的),并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。
数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能

2,签名意义

为发布的APK文件进行唯一签名,保证我们每次发布的版本的一致性设置唯一。有2个意义:
1)保证每个应用程序开发商合法ID,防止部分开放商可能通过使用相同的Package Name来混淆替换已经安装的程序
2)保证自动更新时,不会因为版本不一致(签名不同)而无法安装

3,数字证书的建立

APK程序的两种模式:调试模式(debug mode)和发布模式(release mode)。

1)调试模式(debug mode)

①概念

在调试模式下, ADT会自动的使用debug密钥为应用程序签名,因此我们可以直接运行程序。
运行android项目,在目录的bin文件夹下就能找到与项目同名的apk文件,此apk默认是已经使用debug用户签名。

②debug密钥

一个名为debug.keystore的文件

③存放位置 C:\Users\Xiaopeng.android\debug.keystore Xiaopeng(对应替换为自己操作系统的用户名 )

④风险

debug签名的应用程序有这样两个风险:
i>debug签名的应用程序不能在Android Market上架销售,它会强制你使用自己的签名;
ii>debug.keystore在不同的机器上所生成的可能都不一样,就意味着如果你换了机器进行apk版本升级,那么将会出现上面那种程序不能覆盖安装的问题。

所以如果软件有很多使用客户,一定要有自己的数字证书来签名。

2)发布模式(release mode)

当要发布程序时,开发者就需要使用自己的数字证书给apk包签名
使用自己的数字证书给APK签名的两种方法:
i>通过DOS命令来对APK签名。
ii>使用ADT Export Wizard进行签名

自动更新的前提:包名一致、签名一致。

4,设置签名

1)创建key。如何创建参考第5步的注。
2)右击项目,选择Export
3)在Android目录下选择Export Android Application,然后next
4)选择项目,next
5)选择Use existing keystore。在Location选择第1步创建的Key。然后输入password。next。
注:没有创建好key可在此处选择Create new keystore。然后填写密钥库信息。即可生成keyy
6)命名并选择存放的apk位置。