700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > android ant build.xml实例

android ant build.xml实例

时间:2021-09-10 01:44:30

相关推荐

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=".exe" /><property name="bat" value=".bat" /><!--用到的各个工具的本地路径,务必改动!--><!--Android_Home 本机上androidsdk的安装文件夹--><property name="android_home" value="F:/adt-bundle-windows-x86_64-0624/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="18"/><!-- android_sdk文件夹下的android.jar包的位置--><property name="androidjar" value="${android_home}/platforms/android-${android_api_level}/android.jar" /><!--本机上javac的文件夹--><property name="javac" value="${javahome}/bin/javac.exe" /><!--aapt用于生产R.java和打包resource资源--><property name="aapt" value="${android_home}/build-tools/18.0.1/aapt${exe}" /><!--dx用于将.class文件(加上第三方库和.class文件)打包成.dex文件--><property name="dx" value="${android_home}/build-tools/18.1.1/dx.bat" /><!--apkbuilder用于将.dex文件和打包过的资源文件(aapt打包后的)以及其它资源文件打包成apk文件--><property name="apkbuilder" value="${android_home}/tools/apkbuilder${bat}" /><!--zipalign用于对apk进行优化,非必须步骤--><property name="zipalign" value="${android_home}/tools/zipalign${exe}" /><!--打包过程中涉及到的各个文件夹--><!--bin文件存放apk打包所需文件(.dex,resource.ap_,.class,AndroidManifest.xml等)和生成后的apk--><property name="out" value="${root}/dest" /><!--gen主要用于存放R.java,eclipse下为自己主动生成。ant下为aapt工具生成--><property name="gen" value="gen" /><!--存放javac生成的class文件的文件夹--><property name="classes" value="${out}/classes" /><!--存放.java源文件的文件夹--><property name="src" value="src"/><!--存放引用到的库文件夹--><property name="lib" value="${out}/libs"/><!--打包时候的编码格式--><property name="encoding" value="UTF-8" /><!--生成APK的名字--><property name="file_name" value="scollview" /><!-- 签名仓库。由keytool生成 --><property name="keystore" value="${root}/edsheng.keystore" /><!-- 须要设置签名名称--><property name="key_name" value="edsheng" /><!-- 须要设置--><property name="key_pass" value="a199210311" /><!-- 须要设置--><property name="store_pass" value="a199210311" /><!-- 签名所用jar包的位置--><property name="jarsigner" value="${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_)打包成APK7.调用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详细參数含义见:/liuhe688/article/details/6679879--><!-- 为该项目资源生成R.java文件 --><target name="gen" depends="init"><echo>从资源文件生成R.java ...</echo><exec executable="${aapt}" failοnerrοr="true"><arg value="package" /><arg value="-m" /><arg value="-J" /><arg value="${gen}" /><arg value="-M" /><arg value="AndroidManifest.xml" /><arg value="-S" /><arg value="res" /><arg value="-I" /><arg value="${androidjar}" /></exec><echo>R.java文件生成成功</echo></target><!--javac的详细參数含义见:/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标签能够见:/manual/Tasks/apply.html--><target name="dex" depends="compile"><echo>编译.dex文件...</echo><apply executable="${dx}" failοnerrοr="true" parallel="true"><arg value="-JXms1024m" /><arg value="-JXmx1536m" /><arg value="-JXss1024k" /><arg value="--dex" /><arg value="--num-threads=4" /><arg value="--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}" failοnerrοr="true"><arg value="package" /><arg value="-f" /><arg value="-M" /><arg value="AndroidManifest.xml" /><arg value="-S" /><arg value="res" /><arg value="-A" /><arg value="assets" /><arg value="-I" /><arg value="${androidjar}" /><arg value="-F" /><arg value="${out}/${file_name}.ap_" /></exec><echo>打包资源和资产文件完毕</echo></target><target name="apk" depends="dex, package_res_with_assets"><echo>開始打包apk...</echo><exec executable="${apkbuilder}" failοnerrοr="true"><arg value="${out}/${file_name}_unsigned.apk" /><arg value="-u" /><arg value="-z" /><arg value="${out}/${file_name}.ap_" /><arg value="-f" /><arg value="${out}/classes.dex" /><arg value="-rf" /><arg value="${root}/src" /><arg value="-rj" /><arg value="${root}/libs" /><arg value="-nf" /><arg value="${root}/libs" /></exec><echo>成功打包apk</echo></target><!--调用jarsigner进行签名--><target name="sign" depends="apk"><echo>開始签名...</echo><exec executable="${jarsigner}" failοnerrοr="true"><arg value="-verbose" /><arg value="-sigalg" /><arg value="MD5withRSA" /><arg value="-digestalg" /><arg value="SHA1" /><arg value="-keystore" /><arg value="${keystore}" /><arg value="-storepass" /><arg value="${store_pass}" /><arg value="-keypass" /><arg value="${key_pass}" /><arg value="-signedjar" /><arg value="${out}/${file_name}_signed_unzipalign.apk" /><arg value="${out}/${file_name}_unsigned.apk" /><arg value="${key_name}" /></exec><echo>签名成功</echo></target><!-- 调用zipalign工具对签名后的包做优化 --><!-- 主要是对资源做了字节对齐的优化,降低内存执行过程中的ram--><!-- /tools/help/zipalign.html--><target name="zipalign" depends="sign"><echo>開始优化...</echo><exec executable="${zipalign}" failοnerrοr="true"><arg value="-v" /><arg value="4" /><arg value="${out}/${file_name}_signed_unzipalign.apk" /><arg value="${out}/${file_name}_signed_zipaligned.apk" /></exec><echo>结束优化</echo><echo>清除编译过程中产生的数据。。。</echo><delete dir="${out}/classes"> </delete><echo>清除数据完毕。

</echo> </target> </project>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。