Android uses ant to automatically package

Source: Internet
Author: User

<? XML version = "1.0" encoding = "UTF-8"?>
<! -- Step

1. Use aapt to generate R. Java

2. compile Java files using javac

3. Batch generate classes. Dex

4. aapt package Resources

5.apk builder package resources and class files are APK files

6. jarsinger signs the 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"/>
<! -- Define your own output directory -->

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

<Property name = "Out. Absolute. dir" location = "$ {outdir}"/>

<! -- Define all directories of R. Java -->

<Property name = "outdir-gen" value = "gen"/>

<Property name = "keystore" value = "./Myf. keystore"> </property>

<! -- Read directory -->

<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}"/>

<! -- Output directory -->

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

<Property name = "Out. classes. Absolute. dir" location = "$ {outdir-classes}"/>

<! -- Temporary class resource file -->

<Property name = "Dex-file" value = "classes. Dex"/>

<Property name = "Intermediate-Dex" value = "$ {out. Absolute. dir}/$ {Dex-file}"/>

<! -- Generate the final file -->

<Property name = "out-package" value = "$ {outdir}/registrant.project.name).apk"/>

<! -- Tool to be used -->

<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"/>

<! -- Finally generate various package files -->

<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}/registrant.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.name1__release.apk"/>

<! -- Signature tool -->

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

<! -- Optimized the APK tool -->

<Property name = "zipalign" value = "$ {SDK-tools}/zipalign"/>

<! -- Initialize -->

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

<! -- Step 1: aapt generates 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>

<! -- Step 2. compile all java files as class files. -->

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

<! -- Step 3. Convert the class file to the DEX file. -->

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

<! -- Step 4. Package the resource and list. -->

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

<! -- Step 5. Compile the prepared package into an APK file. -->

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

<! -- Step 6. Sign the APK file -->

<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 = "hello1111111111111111111111"/>

<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 optimizes the android program -->

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

<! -- Install it on the default mobile phone or Simulator

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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

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.