首页 > 代码库 > Android签名的意义与用法

Android签名的意义与用法

一:签名的意义:
        开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的。
       由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名可以保证相当名字,但是签名不同的包不被替换。
       APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。

       这样签名其实也是开发者的身份标识。交易中抵赖等事情发生时,签名可以防止抵赖的发生。

二:Eclipse默认签名

       所有的Android应用都必须有数字签名,没有不存在数字签名的应用,包括模拟器上运行的。Android系统不会安装没有数字证书的应用。
      签名的数字证书不需要权威机构来认证,是开发者自己产生的数字证书,即所谓的自签名。
       模拟器开发环境,开发时通过ADB接口上传的程序会先自动被签有Debug权限,然后才传递到模拟器。
如下图所示,Eclipse菜单的Window -> Preferences -> Android –> Build 下显示的是我们默认的调试用的签名数字证书。

技术分享

三:使用Eclipse导出自定义签名的apk

1、Eclipse工程中右键工程,弹出选项中选择 android工具 → 生成签名应用包:

技术分享

2、选择需要打包的android项目工程:

技术分享

3、如果已有私钥文件,选择私钥文件 输入密码,如果没有私钥文件见第6和7步创建私钥文件:

技术分享

4、输入私钥别名和密码:

技术分享

5、选择APK包存储的位置,并完成设置,开始生成APK签名包:

技术分享

6、没有私钥文件的情况,创建私钥文件:

技术分享

7、输入私钥文件所需信息,并创建:

技术分享
技术分享

Android签名的意义与用法