Android學習第三天-簽名經常使用命令

因爲怕篇幅過長,因此把這個打包經常使用命令分開成兩篇博文來進行講解,下面咱們直接進入主題吧。android

8.keytool

這是咱們JDK自帶的密鑰和證書管理工具算法

命令:

 -certreq            生成證書請求
 -changealias        更改條目的別名
 -delete             刪除條目
 -exportcert         導出證書
 -genkeypair         生成密鑰對
 -genseckey          生成對稱密鑰
 -gencert            根據證書請求生成證書
 -importcert         導入證書或證書鏈
 -importkeystore     從其餘密鑰庫導入一個或全部條目
 -keypasswd          更改條目的密鑰口令
 -list               列出密鑰庫中的條目
 -printcert          打印證書內容
 -printcertreq       打印證書請求的內容
 -printcrl           打印 CRL 文件的內容
 -storepasswd        更改密鑰庫的存儲口令

通常狀況下,咱們都是直接經過如下格式的命令進行證書生成:ide

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文件進行簽名的命令格式爲:url

jarsigner -verbose -keystore <證書所在的路徑> -signedjar <簽名後apk的名字> <須要簽名的apk> <證書別名>

-verbose : 指定生成詳細輸出spa

下面舉一個例子,爲咱們前面博文中創建的xiaoxuetu.apk進行簽名:code

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

終端的執行結果爲:blog

 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
相關文章
相關標籤/搜索