关于签名

来源:互联网 发布:二进制算法例子 编辑:程序博客网 时间:2024/05/01 13:11

签名介绍:
在Android手机中,不允许有两个应用程序有相同的包名
假设A应用的包名是com.csdn.blog,且A应用已经存在于手机系统中,
这时候你再去安装一个B应用,包名也是com.csdn.blog,
此时,系统会去检测这两个应用的签名是否一致,
如果签名一致:B应用覆盖A应用
如果签名不一致:B应用安装失败
注意:
1.未export的的应用程序也是有签名的,为debug签名,如果已经安装了debug签名的应用,在安装export后签名的应用,也是属于签名不一致的情况
2.不同电脑的debug签名是不一样的,所以A电脑的默认debug签名的apk不能覆盖安装B电脑的默认debug签名的apk
3.低版本的apk是可以覆盖之前安装的高版本的apk

所以keystore文件和密码千万不能丢失

签名丢失怎么办
1.改签名,包名不变(牺牲了用户体验,保证了用户量)
无法覆盖安装,新版本的应用无法覆盖旧版本的应用,必须要求用户把旧版本的应用卸载掉
这是为了保证包名不变,因为在应用市场的排名是通过包名作为唯一标识的,如果你的应用已经排到了前十名,一旦改了包名,你的应用必须重新竞争了
2.改包名,改签名(用户体验好,但牺牲了应用市场排名)
假设旧版本应用的包名为com.csdn.blog1
新版本应用的包名为com.csdn.blog2
如果你把新版本应用下载下来了,由于包名不同,不会覆盖旧版本,所以导致用户手机上有两个应用。
为了解决这个问题,可以在新版本应用里写一段程序,把旧版本的应用偷偷地删掉,这样一来,从今以后就用新的包名、新的签名了

0 0