Android打包之將bat指令碼轉換成ant指令碼

來源:互聯網
上載者:User

《Android打包之bat指令碼打包》實現了bat指令碼的打包,現在我們將該指令碼轉換成ant的指令碼來執行。ant指令碼是xml檔案,命令描述在target節點中,需要執行外置的命令時需要在target下增加子節點exec,並在exec節點中通過子節點arg來指定參數。我們同樣按打包流程來實現該指令碼,打包流程如下:

1、產生R.java

2、編譯*.java

3、產生classes.dex

4、將assets、res打包

5、產生未簽名的apk

6、將apk簽名


基於這些步驟,我們來編寫ant指令碼。

1、產生R.java

            Initialize...                                Generating R.java from the resources... 1.aapt package -f -m -J gen -S res -I D:/android-sdk-windows/platforms/android-16/android.jar -M AndroidManifest.xml                                                                                                                                                                
註:

(1)、target中的name是該target的名字,該名字會在其他target的depends中調用,也可在project的default中使用,也可在指定ant指令碼時調用。

(2)、depends指定的是該target執行前需要執行的target。

(3)、arg中的參數與《Android打包之bat指令碼打包》的1_genR的bat指令碼參數相對應。

(4)、${XXX}是對變數的引用,這些變數定義到property屬性中。下面是相關的代碼。

                                                                                                                    
註:

(1)、sdk-folder指定了android-sdk所在的目錄。

(2)、jdk-folder指定的是jdk所在的目錄。建議使用jdk1.6,jdk1.7可能會有問題。

(3)、tools中指定了所要用到的工具。

(4)、其他變數自行對應。

2、編譯*.java

        Compile... 2.javac -target 1.6 -bootclasspath D:/android-sdk-windows/platforms/android-16/android.jar -d bin gen\com\example\antdemo\*.java src\com\example\antdemo\*.java                                                                                                                            
註:調用javac命令來編譯,相關的參數與《Android打包之bat指令碼打包》的2_compile.bat指令碼相對應。
3、產生classes.dex
         Generate dex...  3.dx 兩個短橫dex 兩個短橫output=G:\Code\Android\Workspace\AntDemo\bin\classes.dex G:\Code\Android\Workspace\AntDemo\bin                                                                
註:

(1)、兩個短橫表示的是--,因--在xml中屬性特殊標記,所以使用文字來描述。

(2)、相關的參數與《Android打包之bat指令碼打包》的3_dex.bat指令碼相對應。

4、將assets、res打包

            Package resource and assets...   4.aapt package -f -A assets -S res -I D:/android-sdk-windows/platforms/android-16/android.jar -M AndroidManifest.xml -F bin/AntDemo                                                                                                                                                                            
註:相關的參數與《Android打包之bat指令碼打包》的4_package.bat指令碼相對應。
5、產生未簽名的apk

           Build unsigned apk  5.apkbuilder G:\Code\Android\Workspace\AntDemo\bin\AntDemo_unsigned.apk -v -u -z G:\Code\Android\Workspace\AntDemo\bin\AntDemo -f G:\Code\Android\Workspace\AntDemo\bin\classes.dex -rf G:\Code\Android\Workspace\AntDemo\src                                                                                                                                        
註:相關的參數與《Android打包之bat指令碼打包》的5_unsinged.bat指令碼相對應。
6、將apk簽名

          Sign apk  6.jarsigner -keystore G:\Code\Android\Workspace\AntDemo\build\my.keystore -storepass 123456 -keypass 123456 -signedjar G:\Code\Android\Workspace\AntDemo\bin\AntDemo_signed.apk G:\Code\Android\Workspace\AntDemo\bin\AntDemo_unsigned.apk ant_test                                                                                                                                                    
註:相關的參數與《Android打包之bat指令碼打包》的6_singed.bat指令碼相對應。
附1: 增加release命令,執行一些收尾任務。

                  APK is released. path:${signed-apk-path}            
註:delete是ant的內建命令。

附2:指令碼頭

....
註:name是工程名稱,default指的是預設執行的target。下面是執行的過程圖。

輸出的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.