1.7zip-解壓到文件名命名的文件下,並刪掉該apk文件
遇到的問題:無
2.判斷是否爲白包,如果已簽名則刪掉META—INF文件夾和文件夾下的所有文件
遇到的問題:在刪除的時候要注意要刪除META—INF文件夾和文件夾下所有的文件
3.7zip-壓縮該文件
遇到的問題:在壓縮文件時,要注意選取解壓的apk包裏的所有文件,並在壓縮時文件夾不能包含兩層
eg. test.apk >> 解壓的文件夾test >> 壓縮 >> test.apk 而不是 test/test套兩層,一定注意
4.重新定義打包的文件路徑和文件名(如需更改文件路徑和文件名的情況)
遇到的問題:無
5.調用命令生成臨時文件
1).WINDOWS下
cmd.exe /C jarsigner -verbose -keystoretest -storepass testpwd -signedjarD:\\test\\app_signer_tmp.apk D:\\test\\test.apk test.key
參數說明
test 簽名KEY
testpwd 簽名密碼
D:\\test\\app_signer_tmp.apk 簽名後生成的臨時文件的全路徑
D:\\test\\test.apk 原始APK文件全路徑
test.key 簽名key文件路徑,一般默認在當前目錄下
遇到的問題:無
2).LINUX下
String createTemp = " jarsigner -verbose -keystore test -storepass testpwd -signedjar/root/test/app_signer_tmp.apk /root/test/test.apk test.key“
String[] linux = new String[] {"/bin/bash", "-c",createTemp};
exec("commands", linux);
遇到的問題:無
6.zipalign優化
1).WINDOWS下
cmd.exe /Cd:\\tools\\zipalign\\zipalign.exe -f -v 4 D:\\test\\app_signer_tmp.apk D:\\test\\test_signer.apk
d:\\tools\\zipalign\\zipalign.exe zipalign.exe優化工具windows下的
D:\\test\\app_signer_tmp.apk 在第五步中生成的臨時文件
D:\\test\\test_signer.apk 經過zipalign優化的正式包
遇到的問題:無
2).LINUX下
zipalign -f -v 4 /root/test/app_signer_tmp.apk /root/test_signer.apk
zipalign linux下zipalign工具
/root/test/app_signer_tmp.apk 第5步中生成的臨時文件
/root/test_signer.apk 打包最終輸出的文件
遇到的問題:
在linux下運行打包的過程中遇到過一個比較坑的問題,zipalign 無法在linux上運行
[root@dev-web-test01 work]# zipalign
-bash: zipalign: command not found
---------下載linux zipalign文件 注意根據服務器的系統位數區分32 or 64
[root@dev-web-test01 test]# ./zipalign
-bash: ./zipalign: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
需要安裝如下庫:
yum -y install glibc.i686
yum install libstdc++.i686
yum install zlib.i686
error while loading shared libraries: libz.so.1: cannot open shared
object file: No such file or directory
檢查/usr/lib下是否存在
libz.so
libz.so.1
libz.so.1.y.z文件
我這裏不存在,我的解決辦法是到其他服務器的/usr/lib/ 下去拷貝了這三個文件,然後運行./zipalign運行通過,問題解決
7.刪除未簽名的壓縮文件包
8.刪除簽名的臨時文件
9.刪除解壓的文件夾
----完成APK文件的重新簽名並打包
補需要的資源:
1.zipalign工具
http://download.csdn.net/detail/hwhanwan/9456605
2.libz.so.1
http://download.csdn.net/detail/hwhanwan/9456615
這裏特別感謝
http://blog.csdn.net/keysilence1/article/details/50769844 給了zipalign解決問題的思路
http://www.bkjia.com/Androidjc/882022.html 解決libz.so.1不存在的問題