Android程序Release签证详解

来源:互联网 发布:芸众商城1.96源码 编辑:程序博客网 时间:2024/04/27 19:42

logo零 使用的工具

  APK包签证所使用的工具为keytool及jarsigner,这两个JDK中的工具可以完成基本的签证工作。另外Google还推荐我们使用Android SDK工具zipalign来对已经完成基本签证操作的APK包进行优化。

壹 生成keystore文件--需注意有效时间

  例子:
  keytool -genkey -alias androidpad -keyalg RSA -validity 20000 -keystore apad.keystore
  上面例子中的命令格式:
  keytool -genkey -alias [别名] -keyalg [所有的加密法,通常为“RSA”] -validity [签证有效时间,单位为天] -keystore [keystore文件名]
   设置上面命参数是要注意“-validity”即[签证有效时间]。该值最好是10000或大于10000的数值。总之,签证的有效期结束时间要是2033年10年22日之后的某一天。要不然,APK包放到Google Play上会有麻烦。下面是输入该命令后的的相关输入,(其实按排示输就是了。)

    输入密钥库口令:  
    再次输入新口令:
    您的名字与姓氏是什么?
      [Unknown]:  licj
    您的组织单位名称是什么?
      [Unknown]:  http://blog.sina.com.cn/uclicj
    您的组织名称是什么?
      [Unknown]:  http://blog.sina.com.cn/uclicj
    您所在的城市或区域名称是什么?
      [Unknown]:  guangzhou   
    您所在的省/市/自治区名称是什么?
      [Unknown]:  guangdong
    该单位的双字母国家/地区代码是什么?
      [Unknown]:  CN
    CN=lichongjie, OU=http://blog.sina.com.cn/uclicj, O=http://blog.sina.com.cn/uclicj, L=guangzhou, ST=guangdong, C=CN是否正确?
      [否]:  Y
    
    输入 <androidpad> 的密钥口令
        (如果和密钥库口令相同, 按回车):  

贰 签证APK包--JDK1.7的变化

  例子:
   jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -storepass "my_psw_hh" -keystore "./apad.keystore" "pad.apk" "androidpad"
  上面例子中的命令格式:
   jarsigner -verbose -sigalg MD5withRSA -digestalg SHA1 -storepass [密码] -keystore [keystore文件路径] [APK包路径] [别名]
 
  这里要注意:“-sigalg MD5withRSA -digestalg SHA1”这两个设置是用来设置签证时的加密算法的。在JDK1.7以前的版本中,这两个设置默认值就是上面命令中设置的值。但在JDK1.7开始默认值改变了,我们需要手动设置这两个参数。要不签证出来的包,在安装时会有签证失败的提示信息。


叁 使用zipalign对APK进行优化--小心Google Play不买账

  例子:
  zipalign -v 4 pad.apk release_pad.apk
  上面例子中的命令格式:
        zipalign -v 4 [没有优化的APK包名] [优化后的APK包名]

  在Android中,当资源文件通过内存映射对齐到4字节边界时,访问资源文件的代码才是有效率的。Android SDK中包含的“zipalign”,它能够对APK包进行4字节边界对齐。这种优化并非是必须的,不优化程序,也可以正常安装的机器上。问题是你如果要把APK提交到Google Play上发布的话,就需要多走这一步优化了,要不然提交会失败。还有一点要注意的是,程序一定要设置程序图标,要不然提交到Google Play一样会失败(具体方法参考SDK中的例子)。


                                           不求经典,但求实用 旭日秋红作品


原创粉丝点击