ant编译需要的build.xm文件

本文详细介绍了如何使用Ant构建工具自动生成Android应用的build.xml文件,并通过一系列配置步骤完成资源打包、AIDL文件编译、Java代码编译、类文件转dex、APK打包、签名、Zipalign等关键步骤,最终生成符合发布要求的APK文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

以下代友Copy一下,改改就可用,工具给咱不自动生成build.xml,咱可以改嘛!

<?xml version="1.0" encoding="UTF-8"?>
<!-- ================================================ -->
<!-- Build an Android project.                        -->
<!-- ================================================ -->
<project name="plate_id_sample_service" default="zipalign" basedir=".">
   
    <property file="build.properties"></property>
   
    <!-- The absolute paths for the tools. -->
    <property name="android.framework" value="${sdk.home}/platforms/${sdk.platform}/framework.aidl"></property>
    <property name="android.core" value="${sdk.home}/platforms/${sdk.platform}/android.jar"></property>
    <property name="jarsigner" value="${jdk.home}/bin/jarsigner.exe"></property>
    <property name="zipalign" value="${sdk.home}/tools/zipalign.exe"></property>
    <property name="dx" value="${sdk.home}/platform-tools/dx.bat"></property>
    <property name="apk-builder" value="${sdk.home}/tools/apkbuilder.bat"></property>
    <property name="aapt" value="${sdk.home}/platform-tools/aapt.exe"></property>
    <property name="aidl" value="${sdk.home}/platform-tools/aidl.exe"></property>
   
    <!-- The absolute path. -->
    <property name="src.abs" value="${basedir}\src"></property>
    <property name="lib.abs" value="${basedir}\libs"></property>
    <property name="bin.abs" value="${basedir}\bin"></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="${basedir}\bin\${ant.project.name}-unsigned.apk"></property>
    <property name="signed.abs" value="${basedir}\bin\${ant.project.name}-signed.apk"></property>

    <!-- Cleaning the project -->
    <target name="clean">
        <echo>Cleaning the project...</echo>
        <delete includeemptydirs="true" verbose="true">
            <fileset dir="bin" includes="***">
        </fileset></delete>
    </target>
   
    <!-- Generate R.jave -->
    <target name="generate" depends="clean">
        <echo>Generating R.java / Manifest.java from the resources...</echo>
        <exec executable="${aapt}" fail>
            <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="${android.core}">
        </arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></exec>
    </target>
   
    <!-- Package the resources. -->
    <target name="package">
        <echo>Packaging resources and assets...</echo>
        <exec executable="${aapt}" fail>
            <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="${android.core}">
            <arg value="-F">
            <arg value="bin/resources.ap_">
        </arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></arg></exec>
    </target>

    <!-- Convert and compile AIDL files. -->
    <target name="aidl" depends="clean">
        <echo>Compiling aidl files into Java classes...</echo>
        <apply executable="${aidl}" fail>
            <arg value="-p${android.framework}">
            <arg value="-Isrc">
            <arg value="-ogen">
            <fileset dir="src">
                <include name="**/*.aidl">
            </include></fileset>
        </arg></arg></arg></apply>
    </target>

    <!-- Compile -->
    <target name="compile" depends="clean,generate,aidl">
        <javac encoding="UTF-8" target="1.6" debug="off" extdirs="" srcdir="src:gen" destdir="bin" bootclasspath="${android.core}">
            <classpath>
                <fileset dir="libs" includes="*.jar">
            </fileset></classpath>
        </javac>
    </target>
   
    <!-- Convert and compress .class files to .dex file. -->
    <target name="dex" depends="compile">
        <echo>Converting compiled files and external libraries into dex format file...</echo>
        <apply executable="${dx}" fail parallel="true">
            <arg value="--dex">
            <arg value="--output=${dex.abs}">
            <arg path="${bin.abs}">
            <fileset dir="libs" includes="*.jar">
        </fileset></arg></arg></arg></apply>
    </target>

    <!-- Package an unsigned APK file. -->
    <target name="release" depends="dex, package">
        <echo>Packaging an unsigned APK file...</echo>
        <exec executable="${apk-builder}" fail>
            <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></arg></arg></arg></arg></arg></arg></arg></arg></arg></exec>
        <echo>It will need to be signed with jarsigner before being published.</echo>
    </target>
   
    <!-- Sign the APK. -->
    <target name="jarsigner" depends="release">
        <exec executable="${jarsigner}" fail>
            <arg value="-verbose">
            <arg value="-storepass">
            <arg value="${keystore.password}">
            <arg value="-keystore">
            <arg value="${keystore.path}">
            <arg value="-signedjar">
            <arg value="${signed.abs}">
            <arg value="${unsigned.abs}">
            <arg value="${keystore.alias}">
        </arg></arg></arg></arg></arg></arg></arg></arg></arg></exec>
    </target>
   
    <!-- Zipalign -->
    <target name="zipalign" depends="jarsigner">
        <tstamp> 
            <format property="time" pattern="yyyy-MM-dd-HH-mm-ss"></format>
        </tstamp>
        <exec executable="${zipalign}" fail>
            <arg value="-v">
            <arg value="-f">
            <arg value="4">
            <arg value="${signed.abs}">
            <arg value="${basedir}\bin\${ant.project.name}-${time}.apk">
        </arg></arg></arg></arg></arg></exec>
    </target>

</project>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值