!現在有很多Apk加固的第三方平臺,譬如愛加密,360加固,梆梆加密等,但是這些平臺都是收費的。那么我們就來一個免費的APK加固工具APK PRotect。(1)選擇版本:有多個版本,此處選用免費版(APK Protect PC Edition)。
我把軟件也上傳到CSDN服務器,下載地址。 下載后解壓目錄如下: 
(2)目標應用:SplashAct.apk
(3)加密過程: 無需安裝,解壓后直接運行apkcrypt.exe; 選擇需要加密的APK; 指定生成目標的名字; 點擊按鈕開始加密,軟件會在同一目錄下生成加密后的APK。 
加密前:18823KB 加密后:18885KB 
注:點擊開始后,可能會彈出錯誤信息:The application need Java jre , please install jre and retry 解決辦法:由于電腦是64位的,我只安裝了64位的jre,再去裝個32位的jre就可以了
獲取到加固之后的APK文件,這時還不能立即安裝,會提示APK未簽名,所以我們需要使用簽名工具對其進行簽名。 步驟:首先我們需要有.keystore 或.jks文件,那怎么生成呢?
.keystore 或.jks文件的生成(可跳過):.jks文件的生成如下:

可通過AS中build中的下邊這個↓,調出上邊↑這個圖像化界面生成.jks文件即可;.keystore的生成
.keystore的生成麻煩一點兒,需要鍵入cmd命令進入命令模式。因為需要通過keytool.exe%20工具來創建keystore庫.所以我們需要到"JDK"的安裝目錄的Bin子目錄下,按住shift%20+%20鼠標右鍵選擇“在此處打開命令窗口”進入本地命令模式。
輸入以下命令:例子:keytool%20-genkeypair%20-alias%20 mydemo.keystore%20-keyalg%20RSA%20-validity%20 100 -keystore%20mydemo.keystore
命令說明如下:
-genkeypair%20 :指定生成數字證實
-alias%20:指定生成數字證書的別名
-keyalg:指定生成數字證書的算法%20 這里如RSA算法
-validity:指定生成數字證書的有效期
-keystore%20:指定生成數字證書的存儲路徑。%20 (這里默認在keytool.exe%20目錄下)然后回車%20出現如圖交互式界面%20 %20輸入數字證書費密碼%20作者%20 公司等詳細信息
如圖%20:
key文件生成完了,那么我們就利用xx.keystore或xx.jks,來生成簽名的apk吧!簽名就需要使用“JDK”安裝目錄下bin子目錄下的jarsigner.exe工具來進行簽名啦。使用如下命令進行簽名:
jarsigner -verbose -keystore mydemo.keystore -signedjar -Note.apk Notes.apk mydemo.keystore
以上命令的說明:
-verbose:指定生成詳細輸出
-keystore:指定數字證書存儲路徑
-signedjar:該選項的三個參數分別為 簽名后的apk包 未簽名的apk包 數字證書別名
注意有效期哦。
這個警告的話本身對簽名沒有影響,要想去掉這個警告只要在命令上再加上:
-tsa%20https://timestamp.geotrust.com/tsa 就可以了,不過考慮到在安裝的時候就可能會提示安裝失敗,沒有簽名,所以再加這段話: -digestalg%20SHA1%20-sigalg%20md5withRSA%20,結果新的命令語句就是:
例:jarsigner -verbose -digestalg%20SHA1%20-sigalg%20MD5withRSA -keystore%20test.keystore%20-storepass%20test123%20-signedjar%20signed_client.apk%20client.apk%20test
簽名后的apk%20 如圖:sdk目錄下tool目錄下使用zipalign.exe工具優化APK安裝包。
將已經簽名的apk包放在zipalign.exe同目錄下,如圖:

使用如下命令:
zipalign -f -v 4 -Note.apk -Notes.apk
命令說明:
-f :指定強制覆蓋已有文件
-v 指定生成詳細輸出
4:指定檔案整理基于的字節數 一般是4 也有基于32位的。
-Note.apk :優化前APK
-Notes.apk 優化后的APK

運行命令后,在該目錄下生成一個-Notes.apk,這個就是優化過的APK安裝包,該安裝包可以對外發布。如圖:(注意命令之間的空格區域)




新聞熱點
疑難解答