01_Android应用开发环境_05_签名android应用程序

背景:算法

Android项目以他的包为惟一标识,若是一台设备上安装了两个包名相同的应用,后安装的应用就会覆盖前面安装的应用。工具

目的:优化

为了不覆盖的状况,Android要求对做为成品的应用进行签名。插件

做用:3d

  • 肯定发布者身份。
  • 确保应用的完整性。
在Eclipse的ADT插件或Ant工具会自动生成调试证书对Android应用签名。若是要正式发布一个Android应用,必须使用合适的数字证书来给应用程序签名,不能使用ADT或者Ant工具生成的调试证书来发布。

在Eclipse中对Android应用签名调试

一、右击项目,Android Tools→Export Singned Application Package… blog

二、若是系统中没有数字证书,能够在窗口中选择"Create new keystore"单击按钮,填写数字证书的存储路径和密码。 ip

image

三、填写完成后Next,Eclipse将会弹出让用户填写数字证书的详细信息。 get

image

四、Next,指定生成签名后的APK安装包的存储路径。 it

image

五、Finish。这样就会在指定目录下生成一个签名后的APK安装包。

一旦数字证书制做完成,之后就能够最直接使用该证书签名了。

使用命令对APK进行签名

一、建立keysrore库,JDK的安装目录下面的BIN中有一个keytool.exe工具生成数字证书。

keytool -genkeypair    -alias    -keyalg   -validity   -keystore 

  • -genkeypair:指定生成数字证书
  • -alias:指定生成数字证书别名
  • -kayalg:指定生成数字证书的算吗,使用RSA算法
  • -validity:指定生成的数字证书的有效期
  • -keystore:指定所生成的数字证书的存储路径
输入命令后回车,接着安装交互式界面输入相关参数。

二、生成为签名的apk,Android Tools→Export Unsigned Application Package…

三、使用jarsigner命令对未签名的APK进行签名,JDK的Bin子目录下面

jarsigner -verbose -keystore -signedjar

说明:

  • -verbose:指定生成详细输出
  • -keystore:指定数字证书存储路径
  • -singedjar:有三个参数分别是签名后apk包、未签名的APK包、数字证书的别名。
  • 回车,以交互的方式输入数字证书keystore的密码。

四、使用zipalign.exe工具优化APK安装包。

zipalign -f -v 4 a.apk a_zip.apk

  • -f:指定强制覆盖已有文件
  • -v:指定生成详细输出
  • 4:指定档案整理所基于的字节数,一般指定为4,也就是基于32为进行整理。
  • a.apk、a_zip.apk:分别指定整理前的APK和整理后生成的APK。
相关文章
相关标签/搜索