標籤:android style http io ar color os 使用 sp
本文章麥子學院跟小夥伴們詳細的分享一下關於Android Ant命令列編譯和APK簽名詳解一些實現方法,這是一個朋友在自己做安卓開發時寫的,希望對大家會有所協助呀。
最近在做Android開發時,需要引用第三方的代碼進項目,一般情況下,直接在Eclipse下設定需要匯入的代碼的編譯輸出為library即可,但是很多代碼在Eclipse下編譯會出現很多莫名其妙的錯誤。因而只能使用命令列方式對代碼進行編譯。具體方法如下:
1.安裝編譯用的Java,安裝Android Platform-tools,安裝Ant,設定好各種環境變數。部分Linux下Ant已經預設整合,Windows下需要自行安裝。
2.使用Android工具更新代碼的編譯配置。
3.使用Ant工具進行編譯,可編譯Debug版和Release版本。
4.產生程式碼簽署用的私密金鑰,並對APK進行簽名。
5.對APK檔案進行對齊,對大檔案APK有不錯的效果。
以下是參考Bash代碼,可自己需要更改,執行時,sudo bash XXX.sh即可
代碼如下
# Setup Java Home
JAVA_HOME = "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home"
# Setup android Home
ANDROID_HOME="~/android-sdk-macosx"
# Setup path
PATH = "$ANDROID_HOME/tools:$JAVA_HOME/bin:$PATH"
# Update current project
android update project --path .
#android update project --path ./Library/lib1
#android update project --path ./Library/lib2
# Remove keystore
rm -f product.keystore
# Make keystone
keytool -genkey -alias product.keystore -keyalg RSA -validity 40000
-keystore product.keystore -storepass password -keypass password
-dname "CN=Product OU=Android Team O=Organization L=Hongkong ST=Hongkong C=China"
# Clean
ant clean
# Remove ant.properties
rm -f ant.properties
# Make ant.properties
echo "key.store=product.keystore" > ant.properties
echo "key.alias=product.keystore" >> ant.properties
# Build apk
ant release
# Sign APK
# jarsigner -verbose -keystore product.keystore -signedjar
# bin/product_signed.apk bin/product-release-unsigned.apk product.keystore
# Zip align apk
# zipalign -v 4 bin/product_signed.apk bin/product_final.apk
說明:
更新Android的ant編譯配置,如果代碼的結構發生變更,請執行,如果代碼中包含引用的第三方庫代碼,需要分別對這些代碼進行更新。
代碼如下
# Update current project
android update project --path .
#android update project --path ./Library/lib1
#android update project --path ./Library/lib2
產生簽名用的Keystore檔案,幾個參數的說明
-genkey 產生秘鑰認證
-alias 別名
-keyalg 秘鑰的計算演算法
-validity 有效期間
-keystore 秘鑰庫檔案路徑
-storepass 秘鑰庫密碼
-keypass 秘鑰認證密碼
-dname 發行者資訊
CN= 發行者姓名 (個人姓名或產品名)
OU= 組織單元名 (團隊名)
O= 組織機構名 (公司名)
L= 城市/地區
ST= 州/省
C= 國家代碼
代碼如下
# Make keystone
keytool -genkey -alias product.keystore -keyalg RSA -validity 40000
-keystore product.keystore -storepass password -keypass password
-www.maiziedu.com -keypass password
-dname "CN=Product OU=Android Team O=Organization L=Hongkong ST=Hongkong C=cn"
產生ant自動編譯用的ant.properties檔案,設定key.store和key.alias兩個變數後,ant release時會自動對產生的APK簽名和對齊
代碼如下
echo "key.store=product.keystore" > ant.properties
echo "key.alias=product.keystore" >> ant.properties
手動對程式碼簽署,幾個參數的說明
-verbose 顯示輸出
-keystore keystore別名
-signedjar 簽名apk檔案,第一個參數為目標檔案,第二個為未簽名apk
代碼如下
# Sign APK
jarsigner -verbose -keystore product.keystore -signedjar bin/product_signed.apk bin/product-release-unsigned.apk product.keystore
手動對APK進行對齊
代碼如下
# Zip align apk
zipalign -v 4 bin/product_signed.apk bin/product_final.apk
Android開發中Ant命令編譯和APK簽名的一些心得