build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="TVE_Dominicana_Orbit" basedir="." default="10completebuild">
<property file="build.properties" />
<!-- The absolute paths for the tools. -->
<!-- android远程服务器接口代码生成模板文件 -->
<property name="android.framework" value="${sdk.home}/platforms/${sdk.platform}/framework.aidl">
</property>
<property name="android.plantforms.dir" value="${sdk.home}/platforms/${sdk.platform}">
</property>
<!-- android核心jar包-->
<property name="android.core" value="${sdk.home}/platforms/${sdk.platform}/android.jar">
</property>
<property name="android.annotation" value="${sdk.home}/tools/support">
</property>
<!-- 混淆 -->
<!--
<property name="android.proguard" value="${sdk.home}/tools/proguard/lib/proguard.jar">
</property>
-->
<!-- 优化apk -->
<property name="zipalign" value="${sdk.build-tools}/zipalign">
</property>
<!-- 将java字节码转换成dalvik字节码 -->
<property name="dx" value="${sdk.build-tools}/dx">
</property>
<!-- 生成未签名的apk -->
<property name="apk-builder" value="${sdk.home}/tools/apkbuilder.sh">
</property>
<!-- 生成R文件 -->
<property name="aapt" value="${sdk.build-tools}/aapt">
</property>
<!-- 把.aidl转成.java -->
<property name="aidl" value="${sdk.build-tools}/aidl">
</property>
<!-- 签名工具 -->
<property name="signature" value="${basedir}/tools/signature" >
</property>
<!-- The absolute path. -->
<property name="tveui.abs" value="${basedir}/../TVE_UI"/>
<property name="tvecore.abs" value="${basedir}/../TVE_Core"/>
<property name="src.abs" value="${basedir}/src">
</property>
<property name="framework_src.abs" value="${basedir}/framework_src">
</property>
<property name="lib.abs" value="${basedir}/libs">
</property>
<property name="bin.abs" value="${basedir}/bin">
</property>
<property name="gen.abs" value="${basedir}/gen">
</property>
<property name="res.abs" value="${basedir}/res">
</property>
<property name="assets.abs" value="${basedir}/assets">
</property>
<property name="dist.abs" value="${basedir}/output" />
<mkdir dir="${basedir}/output"/>
<property name="androidManifest.abs" value="${basedir}/AndroidManifest.xml">
</property>
<property name="dex.abs" value="${basedir}/bin/classes.dex">
</property>
<property name="resources.abs" value="${basedir}/bin/resources.ap_">
</property>
<property name="unsigned.abs" value="${dist.abs}/${ant.project.name}-unsigned.apk">
</property>
<property name="signed.abs" value="${dist.abs}/${ant.project.name}-signed.apk">
</property>
<!-- 1.Cleaning the project -->
<target name="1clean">
<echo>
Cleaning the project...
</echo>
<delete includeemptydirs="true" verbose="true">
<fileset dir="${bin.abs}" includes="**/*">
</fileset>
</delete>
<delete includeemptydirs="true" verbose="true">
<fileset dir="${gen.abs}" includes="**/*">
</fileset>
</delete>
<delete includeemptydirs="true" verbose="true">
<fileset dir="${dist.abs}" includes="**/*">
</fileset>
</delete>
</target>
<!-- 2 Generate R.java -->
<target name="2generate" depends="1clean">
<echo>
Generating R.java / Manifest.java from the resources...
</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-f" />
<arg value="-m" />
<arg value="-J" />
<arg value="${gen.abs}" />
<arg value="-M" />
<arg value="${tvecore.abs}/AndroidManifest.xml" />
<arg value="-S" />
<arg value="${res.abs}"/>
<arg value="-S" />
<arg value="${tvecore.abs}/res"/>
<arg value="-S" />
<arg value="${tveui.abs}/res"/>
<arg value="--extra-packages" />
<arg value="com.inspur.core:com.inspur.ui:com.inspur.tve.orbit" />
<arg value="-I" />
<arg value="${android.core}" />
<arg value="--auto-add-overlay" />
</exec>
</target>
<!-- 3Convert and compile AIDL files. -->
<target name="3aidl" depends="1clean">
<echo>
Compiling aidl files into Java classes...
</echo>
<apply executable="${aidl}" failonerror="true">
<arg value="-p${android.framework}" />
<arg value="-I${tvecore.abs}/src" />
<arg value="-o${gen.abs}" />
<fileset dir="${tvecore.abs}/src">
<include name="**/*.aidl">
</include>
</fileset>
</apply>
</target>
<!--4Compile srcdir="${framework_src.abs}:${src.abs}:${gen.abs}" 表示编译的源文件目录有三个 -->
<target name="4compile" depends="1clean,2generate,3aidl">
<echo>
1. Compile TVECore
</echo>
<javac bootclasspath="${android.core}" debug="off" destdir="${bin.abs}" encoding="UTF-8" extdirs="" includeantruntime="false" target="1.7">
<src path="${tvecore.abs}/src"/>
<src path="${gen.abs}"/>
<classpath>
<fileset dir="${tvecore.abs}/libs" includes="*.jar" /><!-- 第三方jar包需要引用,用于辅助编译-->
</classpath>
</javac>
<echo>
2. Compile TVEUI
</echo>
<javac bootclasspath="${android.core}" debug="off" destdir="${bin.abs}" encoding="UTF-8" extdirs="" includeantruntime="false" target="1.7">
<src path="${tveui.abs}/src"/>
<src path="${gen.abs}"/>
<classpath>
<fileset dir="${tvecore.abs}/libs" includes="*.jar" /><!-- 第三方jar包需要引用,用于辅助编译-->
</classpath>
</javac>
<echo>
3. Compile TVE_Dominicana_Orbit
</echo>
<javac bootclasspath="${android.core}" debug="off" destdir="${bin.abs}" encoding="UTF-8" extdirs="" includeantruntime="false" target="1.7">
<src path="${src.abs}"/>
<src path="${gen.abs}"/>
<classpath>
<fileset dir="${lib.abs}" includes="*.jar"/>
<fileset dir="${tvecore.abs}/libs" includes="*.jar" /><!-- 第三方jar包需要引用,用于辅助编译-->
</classpath>
</javac>
</target>
<!-- 5 Convert and compress .class files to .dex file. -->
<target name="5dex" depends="4compile">
<echo>
Converting compiled files and external libraries into dex format file...
</echo>
<apply executable="${dx}" failonerror="true" parallel="true">
<arg value="--dex" />
<arg value="--output=${dex.abs}" />
<arg path="${bin.abs}" />
<fileset dir="${lib.abs}" includes="*.jar">
</fileset>
<fileset dir="${android.annotation}" includes="*.jar">
</fileset>
<fileset dir="${tvecore.abs}/libs" includes="*.jar" />
</apply>
</target>
<!-- 6Package the resources. -->
<target name="6package" depends="5dex">
<echo>
Packaging resources and assets...
</echo>
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-f" />
<arg value="-M" />
<arg value="${androidManifest.abs}" />
<arg value="-S" />
<arg value="${res.abs}"/>
<arg value="-S" />
<arg value="${tvecore.abs}/res"/>
<arg value="-S" />
<arg value="${tveui.abs}/res"/>
<arg value="-A" />
<arg value="${assets.abs}" />
<arg value="-I" />
<arg value="${android.core}" />
<arg value="-F" />
<arg value="${resources.abs}" />
<arg value="--auto-add-overlay" />
</exec>
</target>
<!-- 7Package an unsigned APK file. -->
<target name="7genUnsignedApk" depends="6package">
<echo>
Packaging an unsigned APK file...
</echo>
<java classpath="${sdk.home}/tools/lib/sdklib.jar" classname="com.android.sdklib.build.ApkBuilderMain">
<arg value="${unsigned.abs}" />
<arg value="-u" />
<arg value="-z" />
<arg value="${resources.abs}" />
<arg value="-f" />
<arg value="${dex.abs}" />
<arg value="-rf" />
<arg value="${src.abs}" />
<arg value="-rj" />
<arg value="${lib.abs}" />
<arg value="-nf" />
<arg value="${tvecore.abs}/libs" />
</java>
<echo>
It will need to be signed with jarsigner before being published.
</echo>
</target>
<!-- 8signatureApk -->
<target name="8signatureApk" depends="7genUnsignedApk" >
<echo>signature Apk...</echo>
<!-- <signer_apk platform="amlogic" resolution="720p"/> -->
<java fork="true" jar="${basedir}/tools/signature/signapk.jar" >
<arg value="${basedir}/tools/signature/platform.x509.pem" />
<arg value="${basedir}/tools/signature/platform.pk8" />
<arg value="${unsigned.abs}" />
<arg value="${dist.abs}/${ant.project.name}-signed.apk" />
</java>
</target>
<!-- 9Zipalign -->
<target name="9Zipalign" depends="8signatureApk" >
<tstamp>
<format pattern="yyyy-MM-dd-HH-mm-ss" property="time">
</format>
</tstamp>
<exec executable="${zipalign}" failonerror="true">
<arg value="-v" />
<arg value="-f" />
<arg value="4" />
<arg value="${dist.abs}/${ant.project.name}-signed.apk" />
<arg value="${dist.abs}/${ant.project.name}.apk" />
</exec>
</target>
<!-- 10completebuild -->
<target name="10completebuild" depends="9Zipalign">
<copy todir="${dist.abs}">
<fileset dir="${basedir}/">
<include name="readme.txt"/>
</fileset>
</copy>
<delete includeEmptyDirs="true">
<fileset dir="${dist.abs}">
<include name="*-signed.apk"/>
<include name="*-unsigned.apk"/>
</fileset>
</delete>
<echo>
Complete...
</echo>
</target>
</project>