Android開發中Ant命令編譯和APK簽名的一些心得

來源:互聯網
上載者:User

標籤: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簽名的一些心得

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.