Android使用Ant自動打包

來源:互聯網
上載者:User

<?xml version="1.0"  encoding="UTF-8"?>
<!-- 步驟

    1.用aapt產生R.java

    2.JAVAC編譯JAVA檔案

    3.批處理產生classes.dex

    4.aapt打包資源

    5.apkbuilder包資源和類檔案為APK檔案

    6.jarsinger 對APK進行簽名-->

<project name="YunMi" default="zipalign" basedir=".">

    <property file="local.properties" />

    <property name="azonelib" value="./libs" />

<property name="sdk-path" value="D:\yunos-sdk-windows" />
    
    <property name="sdk-platform-tools" value="${sdk-path}/platform-tools"/>

<property name="sdk-tools" value="${sdk-path}/tools"/>
    
    <property name="sdk-platform" value="${sdk-path}/platforms/android-4.0.4"/>
    <!-- 定義自己的輸出目錄 -->

    <property name="outdir" value="outdir" />

    <property name="out.absolute.dir" location="${outdir}" />

    <!-- 定義 R.java 所有目錄 -->

    <property name="outdir-gen" value="gen" />
    
    <property name="keystore" value="./myf.keystore"></property>

    <!-- 讀取目錄 -->

    <property name="resource-dir" value="res" />

    <property name="asset-dir" value="assets" />

    <property name="src-dir" value="src" />

    <property name="src-dir-ospath" value="${basedir}/${src-dir}" />

    <!-- 輸出目錄 -->

    <property name="outdir-classes" value="${outdir}/classes" />

    <property name="out.classes.absolute.dir" location="${outdir-classes}" />

    <!-- 臨時類資源檔 -->

    <property name="dex-file" value="classes.dex" />

    <property name="intermediate-dex" value="${out.absolute.dir}/${dex-file}" />

    <!-- 最終組建檔案 -->

    <property name="out-package" value="${outdir}/${ant.project.name}.apk" />

    <!-- 要使用的工具 -->

    <property name="aapt" value="${sdk-platform-tools}/aapt.exe" />

    <property name="aidl" value="${sdk-platform-tools}/aidl.exe" />

    <property name="dx" value="${sdk-platform-tools}/dx.bat" />

    <property name="adb" value="${sdk-platform-tools}/adb.exe" />

    <property name="apk-builder" value="${sdk-tools}/apkbuilder.bat" />

    <property name="android-jar" value="${sdk-platform}/android.jar" />

    <!-- 最終產生各種包檔案 -->

    <property name="resources-package" value="${outdir}/${ant.project.name}" />

    <property name="resources-package-ospath" value="${basedir}/${resources-package}" />

    <property name="out-unsigned-package" value="${outdir}/${ant.project.name}-unsigned.apk" />

    <property name="out-unsigned-package-ospath" value="${basedir}/${out-unsigned-package}" />

    <property name="out-signed-package" value="${outdir}/${ant.project.name}-signed.apk" />

    <property name="out-signed-package-ospath" value="${basedir}/${out-signed-package}" />

    <property name="zipalign-package-ospath" value="${basedir}/${outdir}/${ant.project.name}_release.apk" />

    <!--簽名工具-->

    <property name="jarsigner" value="jarsigner" />

    <!--最佳化APK工具-->

    <property name="zipalign" value="${sdk-tools}/zipalign" />

    <!-- 初始化 -->

    <target name="init">

        <echo>Creating all output directories </echo>

    <delete dir="${outdir-classes}" />
   
        <delete dir="${outdir}" />

        <delete dir="${outdir-gen}" />

        <mkdir dir="${outdir}" />

        <mkdir dir="${outdir-classes}" />

        <mkdir dir="${outdir-gen}" />

    </target>

    <!--步驟 1: aapt產生R.java -->

    <target name="resource-src" depends="init">

        <echo>Generating R.java...</echo>

        <exec executable="${aapt}" failonerror="true">

            <arg value="package" />

            <arg value="-m" />

            <arg value="-J" />

            <arg value="${outdir-gen}" />

            <arg value="-M" />

            <arg value="AndroidManifest.xml" />

            <arg value="-S" />

            <arg value="${resource-dir}" />

            <arg value="-I" />

            <arg value="${android-jar}" />

        </exec>

    </target>

    <!-- Generate java classes from .aidl files. -->

    <target name="aidl" depends="init">

        <echo>Compiling aidl files into Java classes...</echo>

        <apply executable="${aidl}" failonerror="true">

            <arg value="-p${android-framework}" />

            <arg value="-I${src-dir}" />

            <fileset dir="${src-dir}">

                <include name="**/*.aidl" />

            </fileset>

        </apply>

    </target>

    <!-- 步驟 2. 編譯所有Java檔案為class檔案. -->

    <target name="compile" depends="init, resource-src, aidl">

        <unjar src="${azonelib}/alilocation_v1.1.0.jar"  dest="${outdir-classes}" />
  
        <unjar src="${azonelib}/alipayBase.jar"  dest="${outdir-classes}" />
        
        <unjar src="${azonelib}/aliyunpay.jar"  dest="${outdir-classes}" />
        
        <unjar src="${azonelib}/and_lbs_Lv1.3.2.jar"  dest="${outdir-classes}" />
    
        <unjar src="${azonelib}/libappstore.jar"  dest="${outdir-classes}" />
      
        <unjar src="${azonelib}/libpay.jar"  dest="${outdir-classes}" />
     
        <unjar src="${azonelib}/msp.jar"  dest="${outdir-classes}" />
       
        <unjar src="${azonelib}/android-support-v4.jar"  dest="${outdir-classes}" />
   
    <unjar src="${azonelib}/apache-mime4j-0.6.jar"  dest="${outdir-classes}" />
       
        <unjar src="${azonelib}/commons-codec.jar"  dest="${outdir-classes}" />
   
    <unjar src="${azonelib}/httpmime-4.1.3.jar"  dest="${outdir-classes}" />
   
    <unjar src="${azonelib}/pwmob_module_base.jar"  dest="${outdir-classes}" />
   
    <unjar src="${azonelib}/pwmob_module_utils.jar"  dest="${outdir-classes}" />

        <javac encoding="utf-8" target="1.6" debug="true" extdirs="" srcdir="." destdir="${outdir-classes}" bootclasspath="${android-jar}" />

    </target>

  

    <!-- 步驟 3. 轉換class檔案為dex檔案. -->

    <target name="dex" depends="compile">

        <echo>Converting compiled files into ${intermediate-dex}... </echo>

        <exec executable="${dx}" failonerror="true">

            <arg value="--dex" />

            <arg value="--output=${intermediate-dex}" />

            <arg path="${out.classes.absolute.dir}" />

        </exec>

    </target>

    <!-- 步驟 4. 將資源和清單打包. -->

    <target name="package-res-and-assets">

        <echo>Packaging resources and assets...</echo>

        <exec executable="${aapt}" failonerror="true">

            <arg value="package" />

            <arg value="-f" />

            <arg value="-M" />

            <arg value="AndroidManifest.xml" />

            <arg value="-S" />

            <arg value="${resource-dir}" />

            <arg value="-A" />

            <arg value="${asset-dir}" />

            <arg value="-I" />

            <arg value="${android-jar}" />

            <arg value="-F" />

            <arg value="${resources-package}" />

        </exec>

    </target>

    <!-- 步驟 5. 將打好的包編譯為APK檔案. -->

    <target name="debug" depends="dex, package-res-and-assets">

        <echo>release:Packaging ${out-debug-package-ospath}, and signing it with a debug key...</echo>

        <exec executable="${apk-builder}" failonerror="true">

            <arg value="${out-unsigned-package-ospath}" />

            <arg value="-u" />

            <arg value="-z" />

            <arg value="${resources-package-ospath}" />

            <arg value="-f" />

            <arg value="${intermediate-dex}" />

            <arg value="-rf" />

            <arg value="${src-dir-ospath}" />

        </exec>

    </target>

    <!--步驟 6. 簽名APK檔案 -->

    <target name="jarsigner" depends="debug">

        <echo> jarsigner ${out-signed-package-ospath}</echo>

        <exec executable="${jarsigner}" failonerror="true">

            <arg value="-verbose" />

            <arg value="-storepass" />

            <arg value="hello11111111111111111111111111" />

            <arg value="-keystore" />

            <arg value="myf.keystore" />

            <arg value="-signedjar" />

            <arg value="${out-signed-package-ospath}" />

            <arg value="${out-unsigned-package-ospath}" />

            <arg value="platformf" />

        </exec>

    </target>

    <!--zipalign最佳化android程式-->

    <target name="zipalign" depends="jarsigner">

        <echo> zipalign ${zipalign-package-ospath}</echo>

        <exec executable="${zipalign}" failonerror="true">

            <arg value="-v" />

            <arg value="-f" />

            <arg value="4" />

            <arg value="${out-signed-package-ospath}" />

            <arg value="${zipalign-package-ospath}" />

        </exec>

    </target>

<target name="install" depends="zipalign">
 
       <echo>run ${out-debug-package} onto default emulator...</echo>

       <exec executable="${adb}" failonerror="true">

       
<arg value="push" />

       
<arg value="${out-signed-package}" />
       

       
<arg value="/system/app/YunMi.lar" />

       </exec>

   </target>

    <!-- 安裝到預設的手機或模擬器

<target name="install" depends="zipalign">
 
       <echo>run ${out-debug-package} onto default emulator...</echo>

       <exec executable="${adb}" failonerror="true">

       
<arg value="push" />

       
<arg value="${out-signed-package}" />
       

       
<arg value="/system/app/YunMi.lar" />

       </exec>

   </target>
    
    <target name="runapp" depends="install">
 
        <echo>run ${out-debug-package} onto default emulator...</echo>

        <exec executable="${adb}" failonerror="true">
<arg value="shell" />
            
            <arg value="am" />
            
            <arg value="start"/>
            
            <arg value="-n"/>

            <arg value="com.aliyun.xiaoyunmi/com.aliyun.xiaoyunmi.activity.AccountMainActivity" />

        </exec>

    </target>  -->

</project>

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.