`
as11051105
  • 浏览: 58147 次
  • 性别: Icon_minigender_1
  • 来自: 贵阳
社区版块
存档分类
最新评论
阅读更多

1数字签名

Android系统要求每一个Android应用程序必须要经过数字签名才能够安装到系统中,也就是说如果一个Android应用程序没有经过数字签名,是没有办法安装到系统中的!Android通过数字签名来标识应用程序的作者和在应用程序之间建立信任关系,不是用来决定最终用户可以安装哪些应用程序。这个数字签名由应用程序的作者完成,并不需要权威的数字证书签名机构认证,它只是用来让应用程序包自我认证的。 为了方便我们开发调试程序,ADT会自动的使用debug密钥为应用程序签名。 

在这里,我会使用自己的密钥文件(*.keystore 来对自己开发的程序进行签名,而不用ADT自带的。自定义的apk签名工作可以通过两种方式来完成:一种是通过ADT提供的图形化界面完成apk签名;另外一种是完全通过DOS命令来完成apk签名,这里使用第二种。

2签名步骤 

2.1 准备工作

apk签名要用到keytool工具:
    keytool:生成数字证书,即密钥,也就是扩展名为.keystore的文件 

2.2 使用keytool工具生成数字证书 

  keytool -genkey -v -keystore zhangxueyi.keystore -alias zhangxueyi.keystore -keyalg RSA -validity 20000
  说明:
      1keytool是工具名称,-genkey意味着执行的是生成数字证书操作,-v表示将生成证书的详细信息打印出来,显示在dos窗口中;
      2-keystore zhangxueyi.keystore 表示生成的数字证书的文件名为zhangxueyi.keystore
      3-alias zhangxueyi.keystore 表示证书的别名为zhangxueyi.keystore,当然可以不和上面的文件名一样;
      4-keyalg RSA 表示生成密钥文件所采用的算法为RSA
      5-validity 20000 表示该数字证书的有效期为20000天,意味着20000天之后该证书将失效.
在执行上面的命令生成数字证书文件时,会提示你输入一些信息,包括证书的密码,示例如下: 
   

 

    这样的话,就会在文件目录"F:\毕业设计\张学义_毕业设计\数字签名"下成功的生成了我新建的密匙:

7.2.3 APK签名

当手机端的程序部署成功之后,就会在本项目的bin文件夹下生成一个apk文件了,我们就是要对这个apk进行签名:

现在,我们要直接对此apk进行签名:

a. Android工程名称上点击右键,依次选择Android Tools” Export Signed Application Package ... 

点击:“Next

选择“Use existing keystore”,在“Location”中选择自己的密匙,输入密码,点击“Next”:

点击“Next”:

选择apk签名后要存放的位置,点击“Next”:

    好了,现在就会在目录F:\毕业设计\张学义_毕业设计\数字签名”中就会出现自己已经签名的apk了:

注意事项

如果以前的程序是采用默认签名的方式(即debug签名),一旦换了新的签名应用将不能覆盖安装,必须将原先的程序卸载掉,才能安装上。如图所示:

因为程序覆盖安装主要检查两点:
  1)两个程序的入口Activity是否相同。两个程序如果包名不一样,即使其它所有代码完全一样,也不会被视为同一个程序的不同版本;
  2)两个程序所采用的签名是否相同。如果两个程序所采用的签名不同,即使包名相同,也不会被视为同一个程序的不同版本,不能覆盖安装。
    另外,有人可能会认为反正debug签名的应用程序也能安装使用,那也没有必要自己签名了嘛。千万不要这样想,debug签名的应用程序有这样两个限制,或者说风险:
  1debug签名的应用程序不能在Android Market上架销售,它会强制你使用自己的签名
  2debug.keystore在不同的机器上所生成的可能都不一样,就意味着如果你换了机器进行apk版本升级,那么将会出现上面那种程序不能覆盖安装的问题。不要小视这个问题,如果你开发的程序只有你自己使用,当然无所谓,卸载再安装就可以了但要是你的软件有很多使用客户,这就是大问题,就相当于软件不具备升级功能! 

 

 

参考自http://blog.csdn.net/lyq8479/article/details/6401093

  • 大小: 110.8 KB
  • 大小: 123.4 KB
  • 大小: 109.8 KB
  • 大小: 4.5 KB
  • 大小: 11.4 KB
  • 大小: 28.6 KB
  • 大小: 77.9 KB
  • 大小: 25.4 KB
  • 大小: 23.2 KB
  • 大小: 25.8 KB
  • 大小: 9.5 KB
  • 大小: 18.7 KB
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics