网上有不少的文章 http://sinfrancis.iteye.com/blog/721582

介绍了android用builder编译,运行,安装。深受启发。以前没玩过ant,汗。。。现在发现这个是个好东西。对于我调试代码有很大的帮助。抄别人的东东,加上修改一下,为以后自己工作方面找资料。

<?xml version="1.0" encoding="UTF-8"?> <!-- step: 1.generate R.java by aapt 2.compile java to class by javac.exe 3.generate classes.dex by dx.bat 4.package resources by aapt 5. package resource and classes.dex by apkbuilder.bat 6.sign apk by jarsinger --> <project name="HelloWorld" default="for—work-install" basedir="."> <!-- Tools --> <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" /> <property name="apkbuilder" value="${sdk-tools}/apkbuilder.bat" /> <property name="android-jar" value="${sdk-platform}/android.jar" /> <property name="jarsigner" value="${jdk-home}/bin/jarsigner.exe" /> <property name="zipalign" value="${sdk-tools}/zipalign.exe" /> <property name="apksigner" value="${signer-dir}/signer.jar" /> <property name="android-framework" value="${sdk-platform}/framework.aidl" /> <property name="apk-builder" location="${sdk-tools}/apkbuilder.bat" /> <!-- Eclipse uses "bin" for its own output, so we do the same. --> <property name="outdir-bin" value="out" /> <property name="outdir-gen" value="gen" /> <!-- source directories --> <property name="res-dir" value="res" /> <property name="assets-dir" value="assets" /> <property name="src-dir" value="src" /> <property name="src-dir-ospath" value="${basedir}/${src-dir}" /> <property name="external-libs" value="libs" /> <property name="external-libs-ospath" value="${basedir}/${external-libs}" /> <!-- dest directories --> <property name="des-res-dir" value="${outdir-bin}/res" /> <property name="des-assets-dir" value="${outdir-bin}/assets" /> <property name="des-src-dir" value="${outdir-bin}/src" /> <property name="des-src-dir-ospath" value="${basedir}/${des-src-dir}" /> <property name="des-external-libs" value="${outdir-bin}/libs" /> <property name="des-external-libs-ospath" value="${basedir}/${des-external-libs}" /> <!-- Output directories --> <property name="outdir-classes" value="${outdir-bin}/classes" /> <property name="outdir-obfuscate-classes" value="${outdir-bin}/classes" /> <property name="outdir-obfuscate-classes-ospath" value="${basedir}/${outdir-obfuscate-classes}" /> <!-- Intermediate files --> <property name="dex-file" value="classes.dex" /> <property name="intermediate-dex" value="${outdir-bin}/${dex-file}" /> <property name="intermediate-dex-ospath" value="${basedir}/${intermediate-dex}" /> <!-- The final package file to generate --> <property name="resources-package" value="${outdir-bin}/${ant.project.name}.ap_" /> <property name="resources-package-ospath" value="${basedir}/${resources-package}" /> <property name="out-debug-package" value="${outdir-bin}/${ant.project.name}-debug.apk" /> <property name="out-debug-package-ospath" value="${basedir}/${out-debug-package}" /> <property name="out-unsigned-package" value="${outdir-bin}/${ant.project.name}-unsigned.apk" /> <property name="out-unsigned-package-ospath" value="${basedir}/${out-unsigned-package}" /> <property name="out-signed-package" value="${outdir-bin}/${ant.project.name}-signed.apk" /> <property name="out-signed-package-ospath" value="${basedir}/${out-signed-package}" /> <!-- init --> <target name="init"> <echo>Creating all output directories </echo> <delete dir="${outdir-bin}" /> <mkdir dir="${outdir-bin}" /> <mkdir dir="${outdir-classes}" /> </target> <!-- Generate the R.java file for this project's resources. --> <target name="resource-src" depends="init"> <echo>Generating R.java / Manifest.java from the resources...</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="${res-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> <!-- Compile this project's .java files into .class files. --> <target name="compile" depends="init, resource-src, aidl"> <javac encoding="utf-8" target="1.6" debug="true" extdirs="" srcdir="." destdir="${outdir-classes}" bootclasspath="${android-jar}"> <classpath> <fileset dir="${external-libs}" includes="*.jar" /> </classpath> </javac> </target> <!-- Convert this project's .class files into .dex files. --> <target name="dex" depends="compile"> <echo>Converting compiled files and external libraries into ${outdir}/${dex-file}...</echo> <apply executable="${dx}" failonerror="true" parallel="true"> <arg value="--dex" /> <arg value="--output=${intermediate-dex-ospath}" /> <arg path="${outdir-obfuscate-classes-ospath}" /> <fileset dir="${external-libs}" includes="*.jar" /> </apply> </target> <!-- Put the project's resources into the output package file. --> <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> <!-- Same as package-res-and-assets, but without "-A ${asset-dir}" --> <target name="package-res-no-assets"> <echo>Packaging resources...</echo> <exec executable="${aapt}" failonerror="true"> <arg value="package" /> <arg value="-f" /> <arg value="-M" /> <arg value="AndroidManifest.xml" /> <arg value="-S" /> <arg value="${res-dir}" /> <!-- No assets directory --> <arg value="-I" /> <arg value="${android-jar}" /> <arg value="-F" /> <arg value="${resources-package}" /> </exec> </target> <!-- Invoke the proper target depending on whether or not an assets directory is present. --> <!-- TODO: find a nicer way to include the "-A ${asset-dir}" argument only when the assets dir exists. --> <target name="package-res"> <available file="${asset-dir}" type="dir" property="res-target" value="and-assets" /> <property name="res-target" value="no-assets" /> <antcall target="package-res-${res-target}" /> </target> <!-- Package the application and sign it with a debug key. This is the default target when building. It is used for debug. --> <target name="debug" depends="dex, package-res"> <echo>Packaging ${out-debug-package}, and signing it with a debug key...</echo> <exec executable="${apk-builder}" failonerror="true"> <arg value="${out-debug-package-ospath}" /> <arg value="-z" /> <arg value="${resources-package-ospath}" /> <arg value="-f" /> <arg value="${intermediate-dex-ospath}" /> <arg value="-rf" /> <arg value="${src-dir-ospath}" /> <arg value="-rj" /> <arg value="${external-libs-ospath}" /> </exec> </target> <!-- Package the application without signing it. This allows for the application to be signed later with an official publishing key. --> <target name="package" depends="dex, package-res"> <echo>Packaging ${out-unsigned-package} for release...</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-ospath}" /> <arg value="-rf" /> <arg value="${src-dir-ospath}" /> <arg value="-rj" /> <arg value="${external-libs-ospath}" /> </exec> <echo>It will need to be signed with jarsigner before being published.</echo> </target> <target name="jarsigner" depends="package"> <echo>Packaging ${out-unsigned-package} for release...</echo> <exec executable="${jarsigner}" failonerror="true"> <arg value="-verbose" /> <arg value="-storepass" /> <arg value="${keypass}" /> <arg value="-keystore" /> <arg value="${keystore}" /> <arg value="-signedjar" /> <arg value="${out-signed-package-ospath}" /> <arg value="${out-unsigned-package-ospath}" /> <arg value="${alias}" /> </exec> </target> <target name="release" depends="jarsigner"> <echo>release for release...</echo> </target> <!-- Install the package on the default emulator --> <target name="install" depends="debug"> <echo>Installing ${out-debug-package} onto default emulator...</echo> <exec executable="${adb}" failonerror="true"> <arg value="install" /> <arg value="${out-debug-package}" /> </exec> </target> <target name="reinstall" depends="debug"> <echo>Installing ${out-debug-package} onto default emulator...</echo> <exec executable="${adb}" failonerror="true"> <arg value="install" /> <arg value="-l" /> <arg value="-r" /> <arg value="${out-debug-package}" /> </exec> </target> <!-- Uinstall the package from the default emulator --> <target name="uninstall"> <echo>Uninstalling ${application-package} from the default emulator...</echo> <exec executable="${adb}" failonerror="true"> <arg value="uninstall" /> <arg value="${application-package}" /> </exec> </target> <!-- 自己处理,用公钥私钥签名 --> <target name="for-work-sign-apk" depends="package"> <java jar="${apksigner}" fork="true"> <arg path="${signer-dir}/shared.x509.pem"/> <arg path="${signer-dir}/shared.pk8"/> <arg path="${out-unsigned-package}"/> <arg path="${out-signed-package}"/> </java> </target> <target name="for—work-install" depends="for-work-sign-apk"> <echo>for work install ...</echo> <exec executable="${adb}" failonerror="true"> <arg value="install" /> <arg value="-l" /> <arg value="-r" /> <arg value="${out-signed-package}" /> </exec> </target> </project>

ant的一些全局属性的配置在eclipse的 window->Preferences->Ant->Runtime->Properties中添加

上面的${sdk-tools} ${sdk-platform}等都是在此添加的。

更多相关文章

  1. Android中共享全局变量
  2. Android Application 创建全局变量
  3. Android系统添加全局快捷键的方法
  4. Android Studio下gradle多工程全局配置
  5. android 使用Application保存全局变量
  6. Android 利用getApplication() 共享全局数据

随机推荐

  1. Android基于opencv进行图像识别并找出中
  2. 2013.12.04 ——— android SlidingMenu
  3. android多国语言文件夹文件汇总
  4. ImageView的属性android:scaleType,即Imag
  5. android UI设计属性中英对照表(未修订)
  6. Android震动实现
  7. android 开发屏蔽home键,返回键
  8. Android标签AndroidTagGroup(系列1)
  9. android 添加触摸反馈
  10. Android(安卓)音频播放