Android Ant批量打包
16lz
2021-01-23
一、配置Ant环境变量
JAVA_HOME=/software/jdk1.6.0_24ANT_HOME=/software/apache-ant-1.9.2Android_Home=/software/android-sdk-linuxexport JAVA_HOME ANT_HOME Android_HomePATH=$JAVA_HOME/bin:$ANT_HOME/bin:$ANDROID_HOME/tools$Android_Home/tools/proguard/bin:$/software/decompile/dex2jar-0.0.9.13:$PATHexport PATHCLASSPATH=/software/apache-ant-1.9.2/libexport CLASSPATHView Code
二、copy以下三个文件到工程根目录
文件一:ant.propertiesout.absolute.dir=输出apk目录ant.project.name=工程名字gos.path=输出mapping文件等编译相关目录key.alias=alias名称java.encoding=utf-8key.store.password=密码application.package=cn.ibm.moa.android.cfkey.store=keystore目录key.alias.password=alias密码market_channels=a01,a02,a03(渠道名,多渠道以逗号隔开)app_version=应用版本View Code
文件二:build.xml(红色部分需要根据自己的情况修改)<?xml version="1.0" encoding="UTF-8"?><project name="工程名" default="help" > <property file="local.properties" /> <property file="ant.properties" /> <loadproperties srcFile="project.properties" /> <!-- quick check on sdk.dir --> <fail message="sdk.dir is missing. Make sure to generate local.properties using 'android update project' or to inject it through an env var" unless="sdk.dir" /> <taskdef resource="net/sf/antcontrib/antcontrib.properties" > <classpath> <!-- ant目录下的lib --> <pathelement location="/software/apache-ant-1.9.2/lib/ant-contrib-1.0b3.jar" /> </classpath> </taskdef> <import file="${sdk.dir}/tools/ant/build.xml" /> <import file="custom_rules.xml" optional="true" /> <target name="clean_bin_gen" > <echo>Cleaning the project... </echo> <delete dir="${report.dir}" /> <delete dir="${build.dir}" /> <delete includeemptydirs="true" verbose="true" > <fileset dir="bin" includes="**/*" > </fileset> </delete> <delete includeemptydirs="true" verbose="true" > <fileset dir="gen" includes="**/*" > </fileset> </delete> </target> <target name="deploy" depends="clean" > <foreach delimiter="," list="${market_channels}" param="channel" target="modify_manifest" > </foreach> </target> <target name="modify_manifest" > <replaceregexp byline="false" > <regexp pattern="android:debuggable="(.*)"" /> <substitution expression="" /> <fileset dir="" includes="AndroidManifest.xml" /> </replaceregexp> <replaceregexp byline="false" flags="g" > <regexp pattern="android:name="APP_CHANNEL" *(\r\n)? *android:value="(.*)"" /> <substitution expression="android:name="APP_CHANNEL" android:value="${channel}"" /> <fileset dir="" includes="AndroidManifest.xml" /> </replaceregexp> <replaceregexp byline="false" flags="g" > <regexp pattern="android:name="APP_CHANNEL01" *(\r\n)? *android:value="(.*)"" /> <substitution expression="android:name="APP_CHANNEL01" android:value="${channel}"" /> <fileset dir="" includes="AndroidManifest.xml" /> </replaceregexp> <antcall target="release" /> <copy tofile="${gos.path}/应用名称_${channel}.apk" > <fileset dir="${out.absolute.dir}/" includes="应用名称-release.apk" /> </copy> <echo message="-------------------------------------------------------" /> </target></project>View Code
文件三:local.properties#sdk根目录sdk.dir=/software/android-sdk-linux
View Code 三、在终端中切换到工程根目录下执行命令:ant deploy
打包成功后会显示以下提示
BUILD SUCCESSFUL
Total time: 1 minute 58 seconds
更多相关文章
- Android使用GET_CONTENT Action获取打开相应文件类型的应用
- Android简单文件浏览器源代码
- android播放音频文件(MediaPlayer)和录音(MediaRecorder)--播放
- 文件操作与SDCard读写访问
- Android Studio 小技巧(1):如何导入AAR文件
- [Android]Android Studio导入第三方工程库,以PullToRefreshViewLi
- Eclipse中导入Android工程
- android 开发-文件存储之读写sdcard