此脚本是针对于android在线更新的SDK,以前android有离线安装包,后来改为直接在线安装进行,两者的成本在于sdk的路径和一些工具类的路径不同。

<?xml version="1.0" encoding="UTF-8"?><project name="Test" default="debug" basedir="."><property file="build.properties"></property><!-- The intermediates directory --><!-- Eclipse uses "bin" for its own output, so we do the same. --><property name="outdir" value="bin" /><!-- ************************************************************************************* --><!-- No user servicable parts below. --><property name="android-framework" value="${sdk.folder}/framework.aidl" /><!-- Input directories --><property name="resource-dir" value="res" /><property name="asset-dir" value="assets" /><property name="srcdir" value="src" /><condition property="srcdir-ospath" value="${basedir}\${srcdir}" else="${basedir}/${srcdir}"><os family="windows" /></condition><property name="external-libs" value="libs" /><condition property="external-libs-ospath" value="${basedir}\${external-libs}" else="${basedir}/${external-libs}"><os family="windows" /></condition><!-- Output directories --><property name="outdir-classes" value="${outdir}/classes" /><condition property="outdir-classes-ospath" value="${basedir}\${outdir-classes}" else="${basedir}/${outdir-classes}"><os family="windows" /></condition><condition property="zipalign-package-ospath" value="${basedir}\${output.dir}\${app.name}_for_android_${android_version}_${temp.dir}.apk" else="${basedir}/${output.dir}"><os family="windows" /></condition><!-- Create R.java in the source directory --><property name="outdir-r" value="src" /><!-- Intermediate files --><property name="dex-file" value="classes.dex" /><property name="intermediate-dex" value="${outdir}/${dex-file}" /><condition property="intermediate-dex-ospath" value="${basedir}\${intermediate-dex}" else="${basedir}/${intermediate-dex}"><os family="windows" /></condition><!-- The final package file to generate --><property name="resources-package" value="${outdir}/${ant.project.name}.ap_" /><condition property="resources-package-ospath" value="${basedir}\${resources-package}" else="${basedir}/${resources-package}"><os family="windows" /></condition><property name="out-debug-package" value="${outdir}/${ant.project.name}-debug.apk" /><condition property="out-debug-package-ospath" value="${basedir}\${out-debug-package}" else="${basedir}/${out-debug-package}"><os family="windows" /></condition><property name="out-unsigned-package" value="${outdir}/${ant.project.name}-unsigned.apk" /><property name="out-signed-package" value="${outdir}/${ant.project.name}-signed.apk" /><condition property="out-unsigned-package-ospath" value="${basedir}\${out-unsigned-package}" else="${basedir}/${out-unsigned-package}"><os family="windows" /></condition><condition property="out-signed-package-ospath" value="${basedir}\${out-signed-package}" else="${basedir}/${out-signed-package}"><os family="windows" /></condition><!-- Tools --><condition property="aapt" value="${android.tools}/aapt.exe" else="${android.tools}/aapt"><os family="windows" /></condition><condition property="zipalign" value="${apk.tools}/zipalign.exe" else="${apk.tools}/zipalign"><os family="windows" /></condition><condition property="jarsigner" value="${jdk.home}/bin/jarsigner.exe" else="${jdk.home}/bin/jarsigner"><os family="windows" /></condition><condition property="aidl" value="${android.tools}/aidl.exe" else="${android.tools}/aidl"><os family="windows" /></condition><condition property="adb" value="${apk.tools}/adb.exe" else="${apk.tools}/adb"><os family="windows" /></condition><condition property="dx" value="${android.tools}/dx.bat" else="${android.tools}/dx"><os family="windows" /></condition><condition property="apk-builder" value="${apk.tools}/apkbuilder.bat" else="${apk.tools}/apkbuilder"><os family="windows" /></condition><property name="android-jar" value="${sdk.folder}/android.jar" /><!-- Rules --><!-- Create the output directories if they don't exist yet. --><target name="dirs" depends="init"><echo>Creating output directories if needed...</echo><mkdir dir="${outdir}" /><mkdir dir="${outdir-classes}" /></target><!-- Generate the R.java file for this project's resources. --><target name="resource-src" depends="dirs"><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-r}" /><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="dirs"><echo>Compiling aidl files into Java classes...</echo><apply executable="${aidl}" failonerror="true"><arg value="-p${android-framework}" /><arg value="-I${srcdir}" /><fileset dir="${srcdir}"><include name="**/*.aidl" /></fileset></apply></target><!-- Compile this project's .java files into .class files. --><target name="compile" depends="dirs, resource-src, aidl"><javac encoding="ascii" target="1.5" 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" /><script src="/javascripts/tinymce/themes/advanced/langs/zh.js" type="text/javascript"><!--mce:0--></script><script src="/javascripts/tinymce/plugins/javaeye/langs/zh.js" type="text/javascript"><!--mce:1--></script><arg value="--output=${intermediate-dex-ospath}" /><arg path="${outdir-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="${resource-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="${srcdir-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="release" 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="${srcdir-ospath}" /><arg value="-rj" /><arg value="${external-libs-ospath}" /></exec><echo>It will need to be signed with jarsigner before being published.</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="-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="init" depends="Copy_Ressource"><echo message="Init output directory....."></echo><mkdir dir="${output.dir}" /></target><!--拷贝资源--><target name="Copy_Ressource"><echo message="Copy app resource. "></echo><copy todir="${asset-dir}" overwrite="true" failonerror="false"><fileset dir="${app.source.path}"><include name="*.*" /></fileset></copy></target><!--进行签名--><target name="jarsigner" depends="release"><exec executable="${jarsigner}" failonerror="true"><arg value="-verbose" /><arg value="-storepass" /><arg value="${password}" /><arg value="-keystore" /><arg value="android.keystore" /><arg value="-signedjar" /><arg value="${out-signed-package-ospath}" /><arg value="${out-unsigned-package-ospath}" /><arg value="android.keystore" /></exec></target><!--进行优化--><target name="zipalign" depends="jarsigner"><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="adb" depends="zipalign"><exec executable="${adb}" failonerror="true"><arg value="install" /><arg value="-r" /><arg value="${zipalign-package-ospath}" /></exec></target></project>

此脚本用于进行自动编译用户需要的APK安装包,使用时候,请将签名用的*.keystore放在和build.xml同一目录,并命名为android.keystore,(如想更改,请在build.xml 中的jarsigner target进行更改)

如果keystore不在此目录, 你就修改 :    <target name="jarsigner" depends="release">          <exec executable="${jarsigner}" failonerror="true">              <arg value="-verbose" />              <arg value="-storepass" />              <arg value="${password}" />              <arg value="-keystore" />              <arg value="android.keystore" />              <arg value="-signedjar" />              <arg value="${out-signed-package-ospath}" />              <arg value="${out-unsigned-package-ospath}" />              <arg value="android" />          </exec>      </target>  中的 <arg value="android.keystore" />    <arg value="android" />  路径, 这个两个参数值要一样即可 

更多相关文章

  1. Android文件系统的结构及目录用途、操作方法 整理
  2. Android 保存文件路径
  3. FileProvider 路径配置策略的理解
  4. Android项目Android Studio目录结构
  5. Android 进阶——Android Studio 项目结构详细述及Gradle脚本语
  6. android 获取路径目录方法以及判断目录是否存在,创建目录
  7. Android自动化测试之MonkeyRunner录制和回放脚本(十一)
  8. 数据存储之——Android内、外存储分区&常用存储目录详解(Android
  9. Android gradle build 修改文件名称及目录

随机推荐

  1. Asp.Net MVC实现分页、检索、排序的代码
  2. asp如何解析json字符串并转化为asp对象
  3. asp读取excel表格第x行第y列值
  4. ASP.NET中的Web.config配置文件介绍
  5. 使用asp.net mvc使用JsonResult返回Json
  6. 解析ADO.NET对SQL Server数据库执行增删
  7. 验证码类在asp.net mvc中的使用
  8. 在asp.net中使用JQuery Ajax相关用法总结
  9. 分析.NET的异常处理
  10. 介绍ASP.NET中的MVC如何从控制器传递数据