- 浏览: 252168 次
- 性别:
- 来自: 太原
最新评论
-
kinglo:
请问生成的文件怎么看?
Android 全局异常处理 -
yong7356:
学习一下。。。。。
Android Ant -
bzlring:
很好
Android 全局异常处理 -
M985300651:
難得一見的好教學
Android 自定义滚动视图 -
i5suoi:
thank you very much
Android 全局异常处理
build.xml
<?xml version="1.0" encoding="UTF-8"?> <project name="onewayonelife" default="release" basedir="."> <!-- 环境变量 --> <property environment="env" /> <!-- 应用的名称 --> <property name="appName" value="${ant.project.name}" /> <!-- 应用的包目录 --> <property name="appPackage" value="org.wp.activity" /> <!-- SDK目录(获取操作系统环境变量ANDROID_SDK_HOME的值) --> <property name="sdk-folder" value="${env.ANDROID_SDK_HOME}" /> <!-- SDK中tools目录 --> <property name="sdk-tools" value="${sdk-folder}\tools" /> <!-- SDK指定平台目录 --> <property name="sdk-platform-folder" value="${sdk-folder}\platforms\android-8" /> <!-- SDK指定平台的tools目录 --> <property name="sdk-platform-tools" value="${sdk-folder}\platform-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="apkbuilder" value="${sdk-tools}\apkbuilder.bat" /> <property name="jarsigner" value="${env.JAVA_HOME}\bin\jarsigner.exe" /> <property name="zipalign" value="${sdk-tools}\zipalign.exe" /> <property name="adb" value="${sdk-tools}\adb.exe" /> <!-- 生成R文件的相对目录 --> <property name="outdir-gen" value="gen" /> <!-- 编译后的文件放置目录 --> <property name="outdir-bin" value="bin" /> <!-- 生成class目录 --> <property name="outdir-classes" value="${outdir-bin}" /> <property name="outdir-classes-ospath" value="${basedir}\${outdir-classes}" /> <!-- 资源文件目录 --> <property name="resource-dir" value="res" /> <property name="assets-dir" value="assets" /> <!-- 配置清单文件 --> <property name="android-manifest-xml" value="AndroidManifest.xml" /> <!-- 编译时需要的jar,如果项目需要使用到地图服务则需要maps.jar --> <property name="android-jar" value="${sdk-platform-folder}\android.jar" /> <property name="android-maps-jar" value="${sdk-folder}\add-ons\addon_google_apis_google_inc_8\libs\maps.jar" /> <!-- 编译aidl文件所需的预处理框架文件framework.aidl --> <property name="framework-aidl" value="${sdk-platform-folder}\framework.aidl" /> <!-- Java源文件目录 --> <property name="srcdir" value="src" /> <property name="srcdir-ospath" value="${basedir}\${srcdir}" /> <!-- 外部类库所在目录 --> <property name="external-lib" value="lib" /> <property name="external-lib-ospath" value="${basedir}\${external-lib}" /> <!-- proguard所在目录 --> <property name="proguard-dir" value="proguard" /> <property name="proguard-lib" value="${proguard-dir}\proguard.jar" /> <property name="unoptimized" value="${proguard-dir}\unoptimized.jar" /> <property name="optimized" value="${proguard-dir}\optimized.jar" /> <!-- classes.dex相关变量 --> <property name="dex-file" value="classes.dex" /> <property name="dex-path" value="${outdir-bin}\${dex-file}" /> <property name="dex-ospath" value="${basedir}\${dex-path}" /> <!-- 经过aapt生成的资源包文件 --> <property name="resources-package" value="${outdir-bin}\resources.ap_" /> <property name="resources-package-ospath" value="${basedir}\${resources-package}" /> <!-- 未签名apk包 --> <property name="out-unsigned-package" value="${outdir-bin}\${appName}-unsigned.apk" /> <property name="out-unsigned-package-ospath" value="${basedir}\${out-unsigned-package}" /> <!-- 证书文件 --> <property name="keystore-file" value="${basedir}\keystore\wp.keystore" /> <!-- 已签名apk包 --> <property name="out-signed-package" value="${outdir-bin}\${appName}-signed.apk" /> <property name="out-signed-package-ospath" value="${basedir}\${out-signed-package}" /> <!-- 优化后apk包 --> <property name="out-zipalign-package" value="${outdir-bin}\${appName}.apk" /> <property name="out-zipalign-package-ospath" value="${basedir}\${out-zipalign-package}" /> <target name="init"> <echo>${appName}</echo> <echo>${appPackage}</echo> <echo>${sdk-folder}</echo> <echo>${sdk-tools}</echo> <echo>${sdk-platform-folder}</echo> <echo>${sdk-platform-tools}</echo> <echo>${aapt}</echo> <echo>${aidl}</echo> <echo>${dx}</echo> <echo>${apkbuilder}</echo> <echo>${jarsigner}</echo> <echo>${zipalign}</echo> <echo>${adb}</echo> <echo>${outdir-gen}</echo> <echo>${outdir-bin}</echo> <echo>${outdir-classes}</echo> <echo>${outdir-classes-ospath}</echo> <echo>${resource-dir}</echo> <echo>${assets-dir}</echo> <echo>${android-manifest-xml}</echo> <echo>${android-jar}</echo> <echo>${android-maps-jar}</echo> <echo>${framework-aidl}</echo> <echo>${srcdir}</echo> <echo>${srcdir-ospath}</echo> <echo>${external-lib}</echo> <echo>${external-lib-ospath}</echo> <echo>${proguard-dir}</echo> <echo>${proguard-lib}</echo> <echo>${unoptimized}</echo> <echo>${optimized}</echo> <echo>${dex-file}</echo> <echo>${dex-path}</echo> <echo>${dex-ospath}</echo> <echo>${resources-package}</echo> <echo>${resources-package-ospath}</echo> <echo>${out-unsigned-package}</echo> <echo>${out-unsigned-package-ospath}</echo> <echo>${keystore-file}</echo> <echo>${out-signed-package}</echo> <echo>${out-signed-package-ospath}</echo> <echo>${out-zipalign-package}</echo> <echo>${out-zipalign-package-ospath}</echo> </target> <target name="initDir" depends="init"> <echo>初始化文件夹...</echo> <delete dir="${outdir-classes}" /> <mkdir dir="${outdir-classes}" /> <echo>初始化文件夹完成...</echo> </target> <!-- 根据工程中的资源文件生成R.java文件 --> <target name="gen-R" depends="initDir"> <echo>生成R.java文件...</echo> <exec executable="${aapt}" failonerror="true"> <arg value="package" /> <!-- 输出详细内容 --> <arg value="-v" /> <!-- 强制覆盖已存在的文件 --> <arg value="-f" /> <!-- 在-J指定的位置下生成相应的包的目录 --> <arg value="-m" /> <!-- 指定R.java文件生成的目录 --> <arg value="-J" /> <arg value="${outdir-gen}" /> <!-- 指定资源文件目录 --> <arg value="-S" /> <arg value="${resource-dir}" /> <!-- 指定assets文件目录 --> <arg value="-A" /> <arg value="${assets-dir}" /> <!-- 指定配置清单文件 --> <arg value="-M" /> <arg value="${android-manifest-xml}" /> <!-- 引入类库 --> <arg value="-I" /> <arg value="${android-jar}" /> </exec> <echo>R.java文件生成完成...</echo> </target> <!-- 编译aidl文件 --> <target name="aidl" depends="gen-R"> <echo>开始编译.aidl文件为.java文件...</echo> <apply executable="${aidl}" failonerror="true" verbose="true"> <!-- aidl声明的目录 --> <arg value="-I${srcdir}" /> <!-- 指定预处理文件 --> <arg value="-p${framework-aidl}" /> <!-- 目标文件目录 --> <arg value="-o${outdir-gen}" /> <!-- 指定哪些文件需要编译 --> <fileset dir="${srcdir}"> <include name="**/*.aidl" /> </fileset> </apply> <echo>aidl文件编译完成...</echo> </target> <!-- 将工程中的java源文件编译成class文件 --> <target name="compile" depends="aidl"> <echo>编译Java源文件...</echo> <!-- bootclasspath 指定引导类文件的位置--> <javac encoding="GB18030" target="1.6" srcdir="." destdir="${outdir-classes}" bootclasspath="${android-jar}" verbose="true"> <classpath> <fileset dir="${external-lib}" includes="**/*.jar" /> <filelist> <file name="${android-maps-jar}" /> </filelist> </classpath> </javac> <echo>Java源文件编译完成...</echo> </target> <!-- 将class文件进行混淆 --> <target name="optimize"> <echo>开始进行代码混淆...</echo> <jar basedir="${outdir-classes}" destfile="${unoptimized}" /> <java jar="${proguard-lib}" fork="true" failonerror="true"> <!-- Dmaximum.inlined.code.length 默认值为8 设置内联代码的长度 --> <jvmarg value="-Dmaximum.inlined.code.length=32" /> <!-- 指定配置文件 --> <arg value="@proguard.cfg" /> <arg value="-injars ${unoptimized}" /> <arg value="-outjars ${optimized}" /> <arg value="-libraryjars ${android-jar}" /> <arg value="-libraryjars ${android-maps-jar}" /> <arg value="-libraryjars ${external-lib}\core.jar " /> </java> <delete dir="${outdir-classes}" /> <mkdir dir="${outdir-classes}" /> <unzip src="${optimized}" dest="${outdir-classes}" /> <delete file="${unoptimized}" /> <delete file="${optimized}" /> <echo>代码混淆完成...</echo> </target> <!-- 将.class文件转化成.dex文件 --> <target name="dex" depends="compile, optimize"> <echo>编译文件和引用类库转化为.dex文件...</echo> <exec executable="${dx}" failonerror="true"> <arg value="--dex" /> <arg value="--verbose" /> <arg value="--output=${dex-ospath}" /> <!-- 要生成.dex文件的源classes和libraries --> <arg value="${outdir-classes-ospath}" /> <arg value="${external-lib-ospath}" /> </exec> <echo>.dex文件转换完成...</echo> </target> <!-- 将资源文件放进输出目录 --> <target name="package-res-and-assets"> <echo>开始转化资源文件...</echo> <exec executable="${aapt}" failonerror="true"> <arg value="package" /> <!-- 输出详细内容 --> <arg value="-v" /> <!-- 强制覆盖已存在的文件 --> <arg value="-f" /> <!-- 指定资源文件目录 --> <arg value="-S" /> <arg value="${resource-dir}" /> <!-- 指定assets文件目录 --> <arg value="-A" /> <arg value="${assets-dir}" /> <!-- 指定配置清单文件 --> <arg value="-M" /> <arg value="${android-manifest-xml}" /> <!-- 引入类库 --> <arg value="-I" /> <arg value="${android-jar}" /> <!-- 指定要生成的包 --> <arg value="-F" /> <arg value="${resources-package}" /> </exec> <echo>资源文件转化完成...</echo> </target> <!-- 打包成未签名的apk --> <target name="package" depends="dex, package-res-and-assets"> <echo>开始打包未签名程序...</echo> <exec executable="${apkbuilder}" failonerror="true"> <arg value="${out-unsigned-package-ospath}" /> <!-- 输出详细内容 --> <arg value="-v" /> <!-- 创建未签名程序 --> <arg value="-u" /> <!-- 指定dex文件添加到应用程序包中 --> <arg value="-f" /> <arg value="${dex-ospath}" /> <!-- 指定资源文件添加到应用程序包中 --> <arg value="-z" /> <arg value="${resources-package-ospath}" /> <!-- 参照源文件的目录结构 --> <arg value="-rf" /> <arg value="${srcdir-ospath}" /> </exec> <echo>未签名程序打包完成...</echo> </target> <!-- 对apk进行签名 --> <target name="jarsigner" depends="package"> <echo>开始为apk文件签名...</echo> <exec executable="${jarsigner}" failonerror="true"> <!-- 签名/验证时输出详细信息 --> <arg value="-verbose" /> <!-- 密钥库位置 --> <arg value="-keystore" /> <arg value="${keystore-file}" /> <!-- 用于密钥库完整性的口令 --> <arg value="-storepass" /> <arg value="wp" /> <!-- 专用密钥的口令(如果不同)--> <arg value="-keypass" /> <arg value="wp" /> <!-- 已签名的 JAR文件的名称 --> <arg value="-signedjar" /> <arg value="${out-signed-package-ospath}" /> <!-- 要签名的JAR文件 --> <arg value="${out-unsigned-package-ospath}" /> <!-- 文件别名 --> <arg value="onewayonelife" /> </exec> <echo>apk文件签名完成...</echo> </target> <!-- 对apk进行优化 --> <target name="zipalign" depends="jarsigner"> <echo>开始对apk文件进行优化...</echo> <exec executable="${zipalign}" failonerror="true"> <!-- 覆盖已经存在的文件 --> <arg value="-f" /> <!-- 输出详细内容 --> <arg value="-v" /> <!-- 以字节为单位对齐 4 提供了32位对齐 --> <arg value="4" /> <!-- 需要优化的apk文件 --> <arg value="${out-signed-package}" /> <!-- 优化完成的apk文件 --> <arg value="${out-zipalign-package}" /> </exec> <echo>apk文件优化完成...</echo> </target> <!-- 发布 --> <target name="release" depends="zipalign"> <!-- 删除未签名apk --> <delete file="${out-unsigned-package-ospath}" /> <delete file="${out-signed-package}" /> <echo>APK文件生成完成,生成目录:${out-zipalign-package-ospath}</echo> </target> <!-- 安装 --> <target name="install"> <echo>开始安装apk文件...</echo> <exec executable="${adb}" failonerror="true"> <arg value="install" /> <arg value="${out-zipalign-package}" /> </exec> <echo>apk文件安装完成...</echo> </target> <!-- 重新安装 --> <target name="reinstall"> <echo>重新安装apk文件...</echo> <exec executable="${adb}" failonerror="true"> <arg value="install" /> <arg value="-r" /> <arg value="${out-zipalign-package}" /> </exec> <echo>重新安装apk文件完成...</echo> </target> <!-- 卸载 --> <target name="uninstall"> <echo>开始卸载apk文件...</echo> <exec executable="${adb}" failonerror="true"> <arg value="uninstall" /> <arg value="${appPackage}" /> </exec> <echo>apk文件卸载完成...</echo> </target> </project>
评论
2 楼
yong7356
2013-10-31
学习一下。。。。。
1 楼
hj198703
2012-03-06
<!-- proguard所在目录 -->
<property name="proguard-dir" value="proguard" />
<property name="proguard-lib" value="${proguard-dir}\proguard.jar" />
<property name="unoptimized" value="${proguard-dir}\unoptimized.jar" />
<property name="optimized" value="${proguard-dir}\optimized.jar" />
我缺少unoptimized.jar 和 optimized.jar 哪里有?
<property name="proguard-dir" value="proguard" />
<property name="proguard-lib" value="${proguard-dir}\proguard.jar" />
<property name="unoptimized" value="${proguard-dir}\unoptimized.jar" />
<property name="optimized" value="${proguard-dir}\optimized.jar" />
我缺少unoptimized.jar 和 optimized.jar 哪里有?
发表评论
-
Android Gallery3D
2011-11-28 10:51 1978MainActivity package org.wp ... -
Android 自定义Gallery
2011-10-19 21:33 2915MainActivity package org.wp.ac ... -
Android 3D图片切换
2011-10-14 17:19 3488MainActivity package org.wp.ac ... -
Android C2DM
2011-10-07 16:36 2228AndroidC2DMDemo com.google. ... -
Android 电视关机动画
2011-09-14 13:28 1825MainActivity package org.wp.ac ... -
Android 图片倒影
2011-09-09 11:07 6290MainActivity package org.wp.ac ... -
Android 自定义滚动视图
2011-09-08 15:03 6849MainActivity package org.wp.ac ... -
Android 绘制心形
2011-09-06 15:18 6723MyLove package org.wp.activity ... -
Android 播放音频文件
2011-09-05 16:31 5818MainActivity package org.wp.ac ... -
Android 添加自定义SurfaceView
2011-08-29 17:19 7511MainActivity package org.wp.ac ... -
Android Looper
2011-08-28 11:10 2275LooperActivity package org.wp. ... -
Android AsyncTask
2011-08-27 15:21 1563AsyncTaskActivity package org. ... -
Android TimerTask
2011-08-26 22:16 4498TimerTaskActivity package org. ... -
Android Thread
2011-08-26 13:59 5603ThreadActivity package org.wp. ... -
Android 判断程序前后台状态
2011-08-25 13:26 6885AppStatusService package org.w ... -
注册界面
2011-08-23 20:57 1186MainActivity package org.wp.ac ... -
Android 半透明(二)
2011-08-18 20:02 1498TranslucentBlurActivity packag ... -
Android 半透明(一)
2011-08-18 17:08 1658TranslucentActivity package or ... -
游戏角色在屏幕行走
2011-08-18 11:32 1237MySurfaceView package org.wp.a ... -
Android SurfaceView基础
2011-08-17 15:01 1600MySurfaceView package org.wp.a ...
相关推荐
Android Ant 打包
用Apache Ant来开发Android 应用程序
NULL 博文链接:https://heather2010.iteye.com/blog/1881325
Android ant 多渠道批量打包解决方案
android ant 多渠道批量打包,利用ant 可实现多渠道,批量打包。
整了三天,终于弄通了,共享一下。 android ant多市场,打包混淆签名 里面两个工程,一个是打包的,一人是被打包的
android ant test 用于测试是否能打包
android ant 多渠道批量打包,利用ant 可实现多渠道,批量打包。
mac下是用ant对android App的多渠道打包工具。
使用ant打包android,使用ant打包android
android 65535Eclipse版本android 65535解决方案(原理等同android studio现在的分包方式)
这是我用ant打包android用的build文件,绝对可用
demo所需的所有 jar 与demo。 直接下载后 按照csdn描述即可,此项目不包括 ant 混淆打包 混淆打包具体看我的csdn
使用ant批量打包,替换渠道号,文件中包含所用到的所有资源。
Android工程,演示如何使用Ant编译工程。
因为项目的需要必须写一个ANDROID_ANT自动编译打包签名的脚本,终于奋斗了几天写完了,和大家分享一下
ant build脚本代码,自动化多渠道打包,自定义任务打包 具体看一下这篇博客 http://blog.csdn.net/lsmfeixiang/article/details/49681583
Android中使用Ant方式打包,一次打出N个渠道的包。
NULL 博文链接:https://iwangguibin.iteye.com/blog/2280284
Python写的一个程序,可以生成java开发中ANT工具所需的build.xml文件。