說明:NewNetClient是源碼目錄名稱,
java
當前環境變量設置:jdk,android sdk ,openssl的環境變量。android
所需包文件:android.jar,signapk.jar.多線程
C:/apk/hello/gen/android/hello
javac c:/apk/hello/*.java -classpath c:/testapk/android.jar -d c:/apk/classes
@rem主要是從新自動生成R.java文件,好比增長個圖片或者字符串或者增長個layout目錄xml文件
C:/Users/dell>aapt package -m -J c:/apk/NewNetClient/gen -M c:/apk/NewNetClient/AndroidManifest.xml -S C:/apk/NewNetClient/res -I C:/apk/android.jar
@rem 主要是從新自動生成R.java文件,好比增長個圖片或者字符串或者增長個layout目錄xml文件
aapt package -m -J src -M C:/apk/NewNetClient/AndroidManifest.xml -S C:/apk/NewNetClient/res -I C:/apk/android.jar
@rem 編譯java文件包括R.java 並輸出到c:/apk/classes
C:/Users/dell>javac C:/apk/hello/src/android/hello/*.java C:/apk/hello/gen/andro
id/hello/*.java -classpath C:/testapk/android.jar -d c:/apk/classes
@rem 把目錄下*.class文件打成jar包,爲了後面可以建立apk須要的classes.dex文件(生成的文件在當前目錄 *。* 是相對路徑)
c:/apk/classes>jar cvf ffff.jar *.*
@rem 把剛纔的jar包轉換成android手機可以運行的dex文件
c:/apk/classes>dx --dex --output=classes.dex c:/apk/classes/ffff.jar
@rem 若是存在則刪除
IF EXIST fffnew3.apk. (
del fffnew3.apk.
echo message ab
) ELSE (
echo fffnew3.apk. missing.
echo message ab c
)
@rem 生成應用程序apk文件ffffqc.apk
c:/apk/classes>aapt package -z -u -f -M C:/apk/hello/AndroidManifest.xml -S C:/apk/hello/res -I C:/testapk/android.jar -F c:/ffffqc.apk
@rem 把前面生成的classes.dex文件壓縮到apk文件,最終生成可運行的apk應用程序
c:/apk/classes>aapt add C:/ffffqc.apk classes.dex
@rem 方法一:給生成的apk進行自動簽名,無簽名的apk是沒法安裝
c:/testapk>java -jar signapk.jar aimoxiu.x509.pem aimoxiu.pk8 c:/apk/classes/fffnew3.apk fffnew3last.apk
"C:/Program Files/Java/jre6/bin/jarsigner" -verbose -keystore "D:/apksign/MyAnd.keystore" -signedjar %1 %2 "D:/apksign/MyAnd.keystore"
@rem 私鑰的生成方式
@rem 產生RSA私鑰(private key)
openssl genrsa -3 -out testkey.pem 2048
@rem 產生PKCS#10格式的認證請求。所謂認證請求就是發給認證機構認證的一個請求,它主要包括一個公鑰和一些相關信息(如組織名稱和聯繫人郵件地址)。
openssl req -new -x509 -key testkey.pem -out testkey.x509.pem -days 10000 / -subj ‘/C=US/ST=California/L=Mountain View/O=Android/OU=Android/CN=Android/emailAddress=android@android.com’
@rem 把私鑰的格式轉換成PKCS #8(Private-Key Information Syntax Standard.)
openssl pkcs8 -in testkey.pem -topk8 -outform DER -out testkey.pk8 -nocrypt
它的用法以下:
Usage: signapk publickey.x509[.pem] privatekey.pk8 input.jar output.jar
第一個參數是公鑰,即前面第二步產生的testkey.x509.pem。
第二個參數是私鑰,即前面第三步產生的testkey.pk8。
第三個參數是要簽名的文件。
第四個參數是輸出的文件(即簽名後的文件)。
如:java -jar signapk.jar testkey.x509.pem testkey.pk8 update.zip update-signed.zip
@rem 方法二:keytool生成MyAndf.keystore簽名 jarsigner生成簽名的apk文件
keytool -genkey -alias MyAndf.keystore -keyalg RSA -validity 20000 -keystore MyAndf.keystore
jarsigner -verbose -keystore MyAndf.keystore -signedjar fffnew3last.apk fffnew3.apk MyAndf.keystore(密碼123456 1234567)
開始打包:
javac C:/Users/dell>javac C:/apk/NewNetClient/gen/com/palmdream/NewNetClient/*.java C:/apk/NewNetClient/src/com/palmdream/Core/*.java C:/apk/NewNetClient/src/com/palmdream/ListHolder/*.java C:/apk/NewNetClient/src/com/palmdream/NetEngine/*.java C:/apk/NewNetClient/src/com/palmdream/NewNetClient/*.java C:/apk/NewNetClient/src/com/palmdream/XMLData/*.java C:/apk/NewNetClient/src/org/kxml2/io/*.java C:/apk/NewNetClient/src/org/xmlpull/v1/*.java -classpath c:/apk/android.jar -d c:/apk/classes
echo javac is ok
c:/apk/classes>jar cvf fffnew3.jar com/*.* org/*.*
echo jar cvf is ok
c:/apk/classes>dx --dex --output=c:/apk/classes/classes.dex c:/apk/classes/fffnew3.jar
echo dx --dex ok
c:/apk/classes>aapt package -z -u -f -M C:/apk/NewNetClient/AndroidManifest.xml -S C:/apk/NewNetClient/res -I C:/apk/android.jar -F c:/fffnew3.apk
echo aapt package ok
c:/apk/classes>aapt add C:/fffnew3.apk classes.dex
echo aapt add ok
c:/testapk>java -jar signapk.jar aimoxiu.x509.pem aimoxiu.pk8 fffnew3.apk fffnew3last.apk
echo java last ok
完成
@rem 多線程控制 啓動 中止 暫停 啓動新的線程 以及聯網時header的傳遞。
@rem 基於android 代碼保護spa