zoukankan      html  css  js  c++  java
  • Android学习第三天-签名常用命令

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

    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:	bb.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:Workspacesandroidxiaoxuetu>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
  • 相关阅读:
    vue打包之后动态修改请求接口方法
    vue基于Blob.js和 Export2Excel.js做前端导出
    uniapp中scroll-view自定义滚动条
    vue项目报错如下:(Emitted value instead of an instance of Error)
    uniapp h5中解决跨域问题
    测试方法
    synchronized的锁问题
    Java的三种代理模式简述
    Spring Boot REST API 自动化测试
    Elasticsearch学习
  • 原文地址:https://www.cnblogs.com/xiaoxuetu/p/3414979.html
Copyright © 2011-2022 走看看