一:签名的意义:
开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的。
由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名可以保证相当名字,但是签名不同的包不被替换。
APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。
开发Android的人这么多,完全有可能大家都把类名,包名起成了一个同样的名字,这时候如何区分?签名这时候就是起区分作用的。
由于开发商可能通过使用相同的Package Name来混淆替换已经安装的程序,签名可以保证相当名字,但是签名不同的包不被替换。
APK如果使用一个key签名,发布时另一个key签名的文件将无法安装或覆盖老的版本,这样可以防止你已安装的应用被恶意的第三方覆盖或替换掉。
这样签名其实也是开发者的身份标识。交易中抵赖等事情发生时,签名可以防止抵赖的发生。
二:Eclipse默认签名
所有的Android应用都必须有数字签名,没有不存在数字签名的应用,包括模拟器上运行的。Android系统不会安装没有数字证书的应用。
签名的数字证书不需要权威机构来认证,是开发者自己产生的数字证书,即所谓的自签名。
模拟器开发环境,开发时通过ADB接口上传的程序会先自动被签有Debug权限,然后才传递到模拟器。
如下图所示,Eclipse菜单的Window -> Preferences -> Android –> Build 下显示的是我们默认的调试用的签名数字证书。
三:使用Eclipse导出自定义签名的apk
1、Eclipse工程中右键工程,弹出选项中选择 android工具 → 生成签名应用包:
![Eclipse 生成android程序apk文件](https://i-blog.csdnimg.cn/blog_migrate/0e3afb59a0f48db4e14ca238dbd4df5f.gif)
2、选择需要打包的android项目工程:
![Eclipse 生成android程序apk文件](https://i-blog.csdnimg.cn/blog_migrate/9b6f2c21ac793dd0d643cbe413ffd9f5.gif)
3、如果已有私钥文件,选择私钥文件 输入密码,如果没有私钥文件见第6和7步创建私钥文件:
![Eclipse 生成android程序apk文件](https://i-blog.csdnimg.cn/blog_migrate/d42734ef1afce8e00661e8cc71031a3e.gif)
4、输入私钥别名和密码:
![Eclipse 生成android程序apk文件](https://i-blog.csdnimg.cn/blog_migrate/54a6cea2d8bb67467e6d5381d0daf1c1.gif)
5、选择APK包存储的位置,并完成设置,开始生成APK签名包:
![Eclipse 生成android程序apk文件](https://i-blog.csdnimg.cn/blog_migrate/a600f550cb3dc533e92641497a97b590.gif)
6、没有私钥文件的情况,创建私钥文件:
![Eclipse 生成android程序apk文件](https://i-blog.csdnimg.cn/blog_migrate/de952fc1101d9667e51c9be88ac241e1.gif)
7、输入私钥文件所需信息,并创建:
![Eclipse 生成android程序apk文件](https://i-blog.csdnimg.cn/blog_migrate/c0161425102aacf2b83763351929ab02.gif)
![Eclipse 生成android程序apk文件](https://i-blog.csdnimg.cn/blog_migrate/6ea734c2578a03d09191124bb3fa5966.gif)