在Android開發中使用Ant 二:進行一次完整的打包

來源:互聯網
上載者:User

一次完整的Android打包要進行以下的幾步:編譯、代碼混淆、打包apk、簽名apk、apk最佳化。

為了能包涵使用NDK的情況,在這裡使用一個有native代碼的工程TestJni。

在工程根目錄下建立local.properties檔案,輸入sdk和ndk的路徑

例如:

sdk.dir=D:\\Android\\android-sdk
ndk.dir=D:\\Android\\android-ndk

在工程根目錄下建立build.xml,輸入代碼

                                                                    

my.package依賴於native和release,執行了一次ndk編譯和release操作。

開啟cmd,切換到工程根目錄,輸入ant my.package,等待build完成,在bin目錄下產生了未簽名的apk檔案。

代碼混淆

如果在project.properties中配置了proguard.config=proguard.cfg,release的時候會自動進行代碼混淆。在${sdk.dir}/tools/ant/build.xml可以找到相應的target。

            proguard.config is ${proguard.config}                                                                                                              Proguard.config is enabled                                                         

proguard.enabled的依據就是在release模式下,並且設定proguard.config這個屬性。

簽名

在${sdk.dir}/tools/ant/build.xml尋找release target

        

我們看到有 -release-sign 這個 targer,繼續尋找這個target

 

查看第一行

 

如果執行簽名的話 has.keystore 這個條件要成立,繼續尋找 has.keystore

                                                                                                                                  

找到上面兩個 condition,has.keystore成立的條件是設定了 key.store 和 key.alias 這兩個property,並且 key.store 長度不能為0。

has.password 成立的條件是,has.keystore成立, 並且設定了 key.store.password 和 key.alias.password,如果沒有這兩個屬性的話,在build過程中會要求輸入密碼。

在local.properties中添加這些屬性

key.store=D:\\Android\\keystore\\test_key.keystore
key.alias=test_key
key.store.password=123456
key.alias.password=123456

開啟cmd,切換到工程根目錄,執行 ant my.package, 在bin目錄中產生了 TestJni-release.apk 。

檢查產生的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.