(4)数字证书都是有有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。Android Market强制要求所有应用程序数字证书的有效期要持续到2033年10月22日以后。
(5)Android使用标准的java工具Keytool和Jarsigner来生成数字证书,并给应用程序包签名。
(6)使用zipalign优化程序。
有关签名密钥(证书)与发行包名变化可能有如下限定:
下面是我自己测试的结果,跟网上的一些资料有些出入,个人认为包主要判断是否属于同一应用,然后签名用来判断程序所属者,判断是否属于不同版本。有任何问题,欢迎轻拍。
1、包名相同,签名相同:安装时可覆盖安装(就是同一程序同一版本)。
2、包名相同,签名不同:Android认为版本发生了变化,需先卸载再安装(同一程序不同版本)。
3、包名不同,签名相同:正常安装。
4、包名不同,签名不同:正常安装。
程序覆盖安装检查:
(1)、两个程序的入口Activity是否相同。两个程序如果包名不一样,即使其它所有代码完全一样,也不会被视为同一个程序的不同版本;
(2)、两个程序所采用的签名是否相同。如果两个程序所采用的签名不同,即使包名相同,也不会被视为同一个程序的不同版本,不能覆盖安装。
总结一下就是:签名、包名相同,需覆盖安装。
这里有一个很简单的例子:当我们在公司开发时,在自己电脑上调试的手机,多次调试时不需要卸载(此时是覆盖安装)。而当其他人拿了这个手机去他电脑上调试时,就需要先卸载该程序(必须卸载安装)。当你以前的程序是采用默认签名的方式(即debug签名),一旦换了新的签名应用将不能覆盖安装,必须将原先的程序卸载掉,才能安装上。
因此使用debug签名的应用:无法在Android市场销售;而且,不同机器生成的debug密钥不同,不利apk升级和维护;debug签名有一年有效期。使用独立签名的应用:可在Android市场销售,签名固定会更加便利apk升级和维护。
参考资料:
以上就是关于android数字签名的全部内容,相信你一定会非常满意。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-10263-2.html
⊙_⊙)