打包签名

转自:http://blog.csdn.net/cwb1128/article/details/18349173

  接触android开发也有一段时间了,对打包签名有所了解,但都是皮毛,一点不深入。今天结合网络上的资料和自己的实践,盘点下相关内容,打消自己的一些疑问,顺便做一下总结。

一:打包签名的好处

1)没有签名的应用不允许安装到模拟器或者真机上。

2)没有签名的或仅仅debug签名的应用不能在Android Market上架销售。

3)签名是开发者的身份标识,可以防止交易抵赖的发生。

4)防止开发商或个人混淆替换已经安装的程序,以保证签名不同的包不被替换。

5)保证应用的无缝持续升级,签名不同的应用不能覆盖升级。

6)利于应用的模块化开发部署和程序间数据共享。

二:打包的模式种类及区别

有两种打包签名的模式:debug  和  release 。

1)通过Eclipse上的“运行”按钮直接在手机或者模拟器上启动程序,采用的是系统自动生成的debug签名。通过菜单 Window -> Preferences -> Android -> Build 可以看到签名文件所在的位置,如下图。虽然可以更改,但个人觉得没有任何意义,只是调试程序而已。

注意:如果签名过期则导致你无法生成apk文件,此时你只要删除debug keystore即可,系统又会为你生成有效期为一年的新签名

2)右击项目->android tools->Export signed Application package 是release签名模式,会用我们自己生成的key文件来签名。

3)Debug模式签名的应用程序不能在Android Market上架销售,它会强制你使用自己的签名。

4)Debug模式下签名用的证书,自从它创建之日起,1年后就会失效

5)Debug模式的签名文件在不同的机器上所生成的可能不一样,如你换机器进行apk版本升级的话,可能会出现程序不能覆盖安装的问题!

三:签名其他需要了解的内容

1)Android程序包使用的数字证书可以是自签名的,不需要一个权威的数字证书机构签名认证。

2)数字证书都是有效期的,Android只是在应用程序安装的时候才会检查证书的有效期。如果程序已经安装在系统中,即使证书过期也不会影响程序的正常功能。

四:release模式签名的方式

release模式签名的方式有多种,最常用的主要两种:Eclipse+ADT方式 和 命令行方式。

1)Eclipse+ADT方式

     这个是最简单且常用的方式,步骤如下:

      A: Project -> 取消Build Automatically

      B: Project -> Clean

      C: Project -> Build  

      D: 右击项目->android tools->Export signed Application package

     第一次运行可以使用 Create new keystore,以后签名就可以使用 User existing keystore。按照说明一步步操作即可,很容易就能打包签名成功。

   注意:请妥善保管生成的签名文件,不要丢失,以保证应用发布可重复使用,以免不能进行应用的无缝持续升级。

2)命令行模式

     个人觉得这个不常用,如果你想了解打包和签名细节的话,也或者你得到了一个未签名的APK文件想要发布的话,可以采用这个方式。

     可通过右击项目->android tools->Export Unsigned Application package,得到一个未签名的程序,然后使用标准的java工具keytool 和 jarsigner 来生成证书和给程序签名。

     网络上关于 keytool 和 jarsigner 命令的教程很多,搜索一下即可了解如何使用。

猜你喜欢

转载自rouye.iteye.com/blog/2033662