您的位置:首页 > 移动开发 > Android开发

关于Android数字签名

2016-07-01 18:52 330 查看
Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。

 这个数字签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。 

数字签名的两种模式

我们都知道Android系统不会安装运行任何一款未经数字签名的apk程序,无论是在模拟器上还是在实际的物理设备上。所以我们会有一个疑问,为何在日常开发过程中我没有进行任何签名的操作,程序都会在模拟器和真机上运行?下面我们来讲讲

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

1. 调试模式(debug mode)  :  在调试模式下, ADT会自动的使用debug密钥为应用程序签名,因此我们可以直接运行程序。

debug密钥:    一个名为debug.keystore的文件

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

两个风险:

      debug签名的应用程序有这样两个风险:

      1)debug签名的应用程序不能在Android Market上架销售,它会强制你使用自己的签名;

      2)debug.keystore在不同的机器上所生成的可能都不一样,就意味着如果你换了机器进行apk版本升级,那么将会出现上面那种程序不能覆盖安装的问题。

          不要小视这个问题,如果你开发的程序只有你自己使用,当然无所谓,卸载再安装就可以了。但要是你的软件有很多使用客户,这就是大问题了,就相当于软件不具备升级功能! 

所以一定要有自己的数字证书来签名;

2. 发布模式(release mode) :  当要发布程序时,开发者就需要使用自己的数字证书给apk包签名

使用自己的数字证书给APK签名的两种方法:

(1)通过DOS命令来对APK签名。
(2)使用ADT Export Wizard进行签名

注意:
发布一个Android程序必须要使用一个合适的私钥生成的数字证书来给程序签名,而不能使用adt插件或者ant工具生成的调试证书来发布。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: