首页 > 代码库 > android ant build.xml实例
android ant build.xml实例
利用ant编译apk。
使用的时候仅仅须要改动SKD路径javahome路径和project路径就能够了。
<?xml version="1.0" encoding="UTF-8"?> <project name="Scolview" default="zipalign" basedir="."> <property name="exe" value="http://www.mamicode.com/.exe" /> <property name="bat" value="http://www.mamicode.com/.bat" /> <!--用到的各个工具的本地路径,务必改动!--> <!--Android_Home 本机上androidsdk的安装文件夹--> <property name="android_home" value="F:/adt-bundle-windows-x86_64-20140624/sdk" /> <!--相应工程的根文件夹--> <property name="root" value="F:/andoridADT/workspace/Scolview" /> <!-- javahome 文件夹 --> <property name="javahome" value="C:/Program Files/Java/jdk1.6.0_45"></property> <!-- android sdk的版本。18表示Android 4.3--> <property name="android_api_level" value="http://www.mamicode.com/18"/> <!-- android_sdk文件夹下的android.jar包的位置--> <property name="androidjar" value="http://www.mamicode.com/${android_home}/platforms/android-${android_api_level}/android.jar" /> <!--本机上javac的文件夹--> <property name="javac" value="http://www.mamicode.com/${javahome}/bin/javac.exe" /> <!--aapt用于生产R.java和打包resource资源--> <property name="aapt" value="http://www.mamicode.com/${android_home}/build-tools/18.0.1/aapt${exe}" /> <!--dx用于将.class文件(加上第三方库和.class文件)打包成.dex文件--> <property name="dx" value="http://www.mamicode.com/${android_home}/build-tools/18.1.1/dx.bat" /> <!--apkbuilder用于将.dex文件和打包过的资源文件(aapt打包后的)以及其它资源文件打包成apk文件--> <property name="apkbuilder" value="http://www.mamicode.com/${android_home}/tools/apkbuilder${bat}" /> <!--zipalign用于对apk进行优化,非必须步骤--> <property name="zipalign" value="http://www.mamicode.com/${android_home}/tools/zipalign${exe}" /> <!--打包过程中涉及到的各个文件夹--> <!--bin文件存放apk打包所需文件(.dex,resource.ap_,.class,AndroidManifest.xml等)和生成后的apk--> <property name="out" value="http://www.mamicode.com/${root}/dest" /> <!--gen主要用于存放R.java,eclipse下为自己主动生成。ant下为aapt工具生成--> <property name="gen" value="http://www.mamicode.com/gen" /> <!--存放javac生成的class文件的文件夹--> <property name="classes" value="http://www.mamicode.com/${out}/classes" /> <!--存放.java源文件的文件夹--> <property name="src" value="http://www.mamicode.com/src"/> <!--存放引用到的库文件夹--> <property name="lib" value="http://www.mamicode.com/${out}/libs"/> <!--打包时候的编码格式--> <property name="encoding" value="http://www.mamicode.com/UTF-8" /> <!--生成APK的名字--> <property name="file_name" value="http://www.mamicode.com/scollview" /> <!-- 签名仓库。由keytool生成 --> <property name="keystore" value="http://www.mamicode.com/${root}/edsheng.keystore" /> <!-- 须要设置签名名称--> <property name="key_name" value="http://www.mamicode.com/edsheng" /> <!-- 须要设置--> <property name="key_pass" value="http://www.mamicode.com/a199210311" /> <!-- 须要设置--> <property name="store_pass" value="http://www.mamicode.com/a199210311" /> <!-- 签名所用jar包的位置--> <property name="jarsigner" value="http://www.mamicode.com/${javahome}/bin/jarsigner.exe" /> <!-- 实际编译APK的步骤! 1.清除输出路径的文件(覆盖掉原来的打包结果) 2.创建须要输出的文件夹 3.调用aapt工具生成R.java文件 4.调用javac将java文件编译成java字节码(.class文件) 5.调用dx.bat将.class文件和其它调用到的第三方库文件编译成.dex文件 (.dex文件是能够在dalvik虚拟机上直接执行文件格式,能够理解为对java字节码做的针对嵌入式设备的优化) 6.调用apkbuilder工具将.dex文件和bin文件夹下的资源文件(aapt生成,如resource.ap_)打包成APK 7.调用jarsigner进行前面 8.调用zipalign进行性能提升--> <!--以下是实际的打包过程--> <!--1.清除输出路径的文件(覆盖掉原来的打包结果)--> <target name="mkdir"> <echo>生成输出文件夹。。。</echo> <mkdir dir="${out}"></mkdir> <echo>生成完毕</echo> </target> <target name="clean" depends="mkdir"> <echo>清理输出文件夹...</echo> <delete dir="${out}" /> <delete dir="${gen}" /> <echo>清理完毕</echo> </target> <target name="init" depends="clean"> <echo>创建输出文件夹...</echo> <mkdir dir="${out}" /> <mkdir dir="${gen}" /> <mkdir dir="${classes}" /> <mkdir dir="${lib}" /> <echo>创建文件夹完毕</echo> </target> <!--aapt详细參数含义见:http://blog.csdn.net/liuhe688/article/details/6679879--> <!-- 为该项目资源生成R.java文件 --> <target name="gen" depends="init"> <echo>从资源文件生成R.java ...</echo> <exec executable="${aapt}" failonerror="true"> <arg value="http://www.mamicode.com/package" /> <arg value="http://www.mamicode.com/-m" /> <arg value="http://www.mamicode.com/-J" /> <arg value="http://www.mamicode.com/${gen}" /> <arg value="http://www.mamicode.com/-M" /> <arg value="http://www.mamicode.com/AndroidManifest.xml" /> <arg value="http://www.mamicode.com/-S" /> <arg value="http://www.mamicode.com/res" /> <arg value="http://www.mamicode.com/-I" /> <arg value="http://www.mamicode.com/${androidjar}" /> </exec> <echo>R.java文件生成成功</echo> </target> <!--javac的详细參数含义见:http://cyf0110.iteye.com/blog/1508991--> <target name="compile" depends="gen"> <echo>開始编译.class文件...</echo> <javac fork="true" executable="${javac}" encoding="${encoding}" debug="true" extdirs="" source="1.5" target="1.5" destdir="${classes}" bootclasspath="${androidjar}"> <src path="${src}" /> <src path="${gen}" /> <classpath> <fileset dir="${root}/libs" includes="*.jar" /> </classpath> </javac> <echo>.class文件编译完毕</echo> </target> <!--执行android的自带工具dx.bat用于将.class文件和第三方库打包成dex文件--> <!--apply标签能够见:https://ant.apache.org/manual/Tasks/apply.html--> <target name="dex" depends="compile"> <echo>编译.dex文件...</echo> <apply executable="${dx}" failonerror="true" parallel="true"> <arg value="http://www.mamicode.com/-JXms1024m" /> <arg value="http://www.mamicode.com/-JXmx1536m" /> <arg value="http://www.mamicode.com/-JXss1024k" /> <arg value="http://www.mamicode.com/--dex" /> <arg value="http://www.mamicode.com/--num-threads=4" /> <arg value="http://www.mamicode.com/--output=${out}/classes.dex" /> <arg path="${classes}" /> <fileset dir="${root}/libs" > <include name="*.jar" /> </fileset> </apply> <echo>编译.dex文件完毕</echo> </target> <!-- 打包项目的资源文件 --> <target name="package_res_with_assets"> <echo>打包资源和资产文件...</echo> <exec executable="${aapt}" failonerror="true"> <arg value="http://www.mamicode.com/package" /> <arg value="http://www.mamicode.com/-f" /> <arg value="http://www.mamicode.com/-M" /> <arg value="http://www.mamicode.com/AndroidManifest.xml" /> <arg value="http://www.mamicode.com/-S" /> <arg value="http://www.mamicode.com/res" /> <arg value="http://www.mamicode.com/-A" /> <arg value="http://www.mamicode.com/assets" /> <arg value="http://www.mamicode.com/-I" /> <arg value="http://www.mamicode.com/${androidjar}" /> <arg value="http://www.mamicode.com/-F" /> <arg value="http://www.mamicode.com/${out}/${file_name}.ap_" /> </exec> <echo>打包资源和资产文件完毕</echo> </target> <target name="apk" depends="dex, package_res_with_assets"> <echo>開始打包apk...</echo> <exec executable="${apkbuilder}" failonerror="true"> <arg value="http://www.mamicode.com/${out}/${file_name}_unsigned.apk" /> <arg value="http://www.mamicode.com/-u" /> <arg value="http://www.mamicode.com/-z" /> <arg value="http://www.mamicode.com/${out}/${file_name}.ap_" /> <arg value="http://www.mamicode.com/-f" /> <arg value="http://www.mamicode.com/${out}/classes.dex" /> <arg value="http://www.mamicode.com/-rf" /> <arg value="http://www.mamicode.com/${root}/src" /> <arg value="http://www.mamicode.com/-rj" /> <arg value="http://www.mamicode.com/${root}/libs" /> <arg value="http://www.mamicode.com/-nf" /> <arg value="http://www.mamicode.com/${root}/libs" /> </exec> <echo>成功打包apk</echo> </target> <!--调用jarsigner进行签名--> <target name="sign" depends="apk"> <echo>開始签名...</echo> <exec executable="${jarsigner}" failonerror="true"> <arg value="http://www.mamicode.com/-verbose" /> <arg value="http://www.mamicode.com/-sigalg" /> <arg value="http://www.mamicode.com/MD5withRSA" /> <arg value="http://www.mamicode.com/-digestalg" /> <arg value="http://www.mamicode.com/SHA1" /> <arg value="http://www.mamicode.com/-keystore" /> <arg value="http://www.mamicode.com/${keystore}" /> <arg value="http://www.mamicode.com/-storepass" /> <arg value="http://www.mamicode.com/${store_pass}" /> <arg value="http://www.mamicode.com/-keypass" /> <arg value="http://www.mamicode.com/${key_pass}" /> <arg value="http://www.mamicode.com/-signedjar" /> <arg value="http://www.mamicode.com/${out}/${file_name}_signed_unzipalign.apk" /> <arg value="http://www.mamicode.com/${out}/${file_name}_unsigned.apk" /> <arg value="http://www.mamicode.com/${key_name}" /> </exec> <echo>签名成功</echo> </target> <!-- 调用zipalign工具对签名后的包做优化 --> <!-- 主要是对资源做了字节对齐的优化,降低内存执行过程中的ram--> <!-- http://developer.android.com/tools/help/zipalign.html--> <target name="zipalign" depends="sign"> <echo>開始优化...</echo> <exec executable="${zipalign}" failonerror="true"> <arg value="http://www.mamicode.com/-v" /> <arg value="http://www.mamicode.com/4" /> <arg value="http://www.mamicode.com/${out}/${file_name}_signed_unzipalign.apk" /> <arg value="http://www.mamicode.com/${out}/${file_name}_signed_zipaligned.apk" /> </exec> <echo>结束优化</echo> <echo>清除编译过程中产生的数据。。。</echo> <delete dir="${out}/classes"> </delete> <echo>清除数据完毕。。
。
</echo> </target> </project>
android ant build.xml实例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。