在Android 系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个 permission的protectionLevel为signature,那么就只有那些跟该permission所在的程序拥有同一个数字证书的应 用程序才能取得该权限。Android使用Java的数字证书相关的机制来 给apk加盖数字证书。
Android系统要求每一个安装进系 统的应用程序都是经过数字证书签名的,数字证书的私钥则保存在程序开发者的手中。Android将数字证书用来标识应用程序的作者和在应用程序之间建立信 任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字证书并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。
Note:看官朋友们可能会有疑问了?我们平时写的一些小程序,安装在模拟器上或者在真机上,也没有签名啊!咋能够安装上的呢?
其实是我们的开发工具为我们的应用默认生成了一个debug.keystore
默认的生成路径:C:\Users\你的用户名\.android
key的密码:android
我们不妨来打开这个debug.keystore,打开cmd,进入该文件的目录下,尝试以下步骤:
1.输入命令:keytool -list -keystore debug.keystore
2.输入密码:android
为什么要给应用签名打包?
假设说,当我们手机上已经安装一个app,当我们再次安装一个app,并且这个app的包名和之前安装的app包名又恰好相同的话,后安装的app便会将前一个app覆盖掉。
这种情况就非常危险了!
签名原因:为了防止别人的应用将自己的应用程序覆盖,给应用签名能够很好的解决这一问题。
形象的说:就是给你的app装了一把锁,而这把锁的钥匙只有你一个人有。
如何给应用程序打包签名?
首次打包签名
1.在你的项目上右键->Android Tools->Export Signed Application Package
2.next:
注意:要妥善保管好keystore文件,并且记住密码
3.相关参数
注意:红框中都是必选项,其他可不必填写
4.next
5.点击finish,我们看到控制台打印如下:
并且,在我们选择的路径下,打包签名的apk和keystore文件成功生成:
应用升级覆盖
当我们对应用再次升级时,这个时候我们无需再次生成keystore文件,引用之前已生成好的keystore文件即可:
1.在你的项目上右键->Android Tools->Export Signed Application Package
2.next:
再次输入密码;
4.生成版本2apk,finish:
5.可以看到,apk文件成功生成,这样就可以覆盖掉之前的应用了
总结
Android系统中的每个应用程序都是经过数字签名的,数字证书的私钥则保存在应用所有人手中,Android将数字证书用来标识应用程序的作者和在应用程序之间建立信任关系,也就是不允许别人随意覆盖他人应用啦!
用户登录
还没有账号?立即注册
用户注册
投稿取消
文章分类: |
|
还能输入300字
上传中....