您的位置:首页 > 移动开发 > Android开发

Android学习第三天-签名常用命令

2013-11-08 21:50 387 查看
由于怕篇幅过长,所以把这个打包常用命令分开成两篇博文来进行讲解,下面我们直接进入主题吧。

8.keytool

这是我们JDK自带的密钥和证书管理工具

命令:

-certreq            生成证书请求
-changealias        更改条目的别名
-delete             删除条目
-exportcert         导出证书
-genkeypair         生成密钥对
-genseckey          生成对称密钥
-gencert            根据证书请求生成证书
-importcert         导入证书或证书链
-importkeystore     从其他密钥库导入一个或所有条目
-keypasswd          更改条目的密钥口令
-list               列出密钥库中的条目
-printcert          打印证书内容
-printcertreq       打印证书请求的内容
-printcrl           打印 CRL 文件的内容
-storepasswd        更改密钥库的存储口令


一般情况下,我们都是直接通过以下格式的命令进行证书生成:

keytool -genkeypair -alias <整数的别名>-keyalg RSA -validity <有效天数> -keystore <keystore文件的路径+文件名>.keystore


比如生成一个别名为 tbb 证书名字为tbb.keystore的证书:

keytool -genkeypair -alias tbb -keyalg RSA -validity 180 -keystore d:\tbb.keystore


执行该命令后,按照提示进行密码等情况的输入即可。

9.jarsigner

使用这个工具我们可以给apk进行签名:

用法: jarsigner [选项] jar文件 别名
jarsigner -verify [选项] jar文件 [别名...]

[-keystore <url>]           密钥库位置

[-storepass <口令>]         用于密钥库完整性的口令

[-storetype <类型>]         密钥库类型

[-keypass <口令>]           私有密钥的口令 (如果不同)

[-certchain <文件>]         替代证书链文件的名称

[-sigfile <文件>]           .SF/.DSA 文件的名称

[-signedjar <文件>]         已签名的 JAR 文件的名称

[-digestalg <算法>]    摘要算法的名称

[-sigalg <算法>]       签名算法的名称

[-verify]                   验证已签名的 JAR 文件

[-verbose[:子选项]]     签名/验证时输出详细信息。
子选项可以是 all, grouped 或 summary

[-certs]                    输出详细信息和验证时显示证书

[-tsa <url>]                时间戳颁发机构的位置

[-tsacert <别名>]           时间戳颁发机构的公共密钥证书

[-altsigner <类>]           替代的签名机制的类名

[-altsignerpath <路径列表>] 替代的签名机制的位置

[-internalsf]               在签名块内包含 .SF 文件

[-sectionsonly]             不计算整个清单的散列

[-protected]                密钥库具有受保护验证路径

[-providerName <名称>]      提供方名称

[-providerClass <类>        加密服务提供方的名称
[-providerArg <参数>]]... 主类文件和构造器参数

[-strict]                   将警告视为错误


一般情况下,对apk文件进行签名的命令格式为:

jarsigner -verbose -keystore <证书所在的路径> -signedjar <签名后apk的名字> <需要签名的apk> <证书别名>


-verbose : 指定生成详细输出

下面举一个例子,为我们前面博文中建立的xiaoxuetu.apk进行签名:

E:\Workspaces\android\xiaoxuetu>jarsigner -verbose -keystore tbb.keystore -signedjar xiaoxuetu_sign.apk xiaoxuetu.apk tbb


终端的执行结果为:



10 zipalign

zipalign是Android自带的一个档案整理工具,可用于优化APK安装包,从而提升Android应用与系统之间的交互效率,提升应用程序的运行速度。

Usage: zipalign [-f] [-v] <align> infile.zip outfile.zip
zipalign -c [-v] <align> infile.zip

<align>: alignment in bytes, e.g. '4' provides 32-bit alignment
-c: check alignment only (does not modify file)
-f: overwrite existing outfile.zip, 即是强制覆盖已有的文件
-v: verbose output, 指定生成详细输出


一般情况下,我们直接使用该命令的基本格式为:

zipalign -f -v <档案整理所基于的字节数> <需要优化的文件> <经过优化后的文件>


下面就针对我们的xiaoxuetu.apk进行一次优化做为例子:

zipalign -f -v 4 xiaoxuetu.apk xiaoxuetu_zip.apk
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: