<?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>