Android中使用Ant编译打包

本文参照自:http://hubingforever.blog.163.com/blog/static/171040579201342982553107/

一、环境配置

1.1、配置ant

首先从ant 官网可下载ant,接着解压ant的包到本地目录,紧接着在环境变量中设置ANT_HOME为你的ant所在目录,然后把%ANT_HOME%/bin加到你系统环境的path,最后在命令行执行ant命令测试其是否已经添加到了系统path中。

二、基本使用

2.1、使用android create创建项目

参数说明:

-k /--package 为命名空间(包名)

-a /--name 工程名

-p /--path 项目

-t 为目标平台的版本编号

实例1

C:\Users\hubin5\Desktop\temp\0503>android create project -k com.android.Tank -a Tank -t 4 -p G:\projects\tank
Error: Project folder ‘G:\projects\tank‘ is not empty. Please consider using ‘android.bat update‘ instead.
Updated file G:\projects\tank\src\com\android\Tank\Tank.java
Updated file G:\projects\tank\res\values\strings.xml
Updated file G:\projects\tank\res\layout\main.xml
Updated file G:\projects\tank\AndroidManifest.xml
Updated file G:\projects\tank\build.xml
Updated file G:\projects\tank\proguard-project.txt

可以通过android-sdk\tools下的android.bat列出不同版本平台的对应id编号

命令1::android.bat list targets

命令2:android list

2.2、android update 更新现有项目

对已经存在的android工程,我们可以update下(修改平台的版本),这样会自动添加build.xml 等ant 的配置文件

示例1

C:\Documents and Settings\Administrator>android update project --name Tank -t 11  -p F:\tank

示例2

G:\temp>android update project --name Test -t 15  -p D:\workspace\test

Updated project.properties

Updated local.properties

Updated file D:\workspace\test\build.xml

2.3、打包

在Android工程中,我们可以使用ant release或ant debug来打包apk。

实例2

D:\workspace\test>ant release

Buildfile: D:\workspace\test\build.xml

在使用ant release或ant debug打apk包时,默认使用当前目录的build.xml配置来进行打包。

当然我们可以使用-buildfile选项来制定build.xml配置文件。

实例3

call ant release -buildfile test\build.xml

实例4

文件1

config.bat

set out_dir=.\out

set out_file_name=Appstore5_Phone

set NO=%Date:~0,4%%Date:~5,2%%Date:~8,2%

set t=%Time%

if "%t:~0,1%" ==" " (

set t=0%t:~1%

)

set NO=%Date:~0,4%%Date:~5,2%%Date:~8,2%%t:~0,2%%t:~3,2%%t:~6,2%

set out_file_name=%out_file_name%_%NO%.apk

文件2

build.bat

call config.bat

pushd dependency

call build.bat

popd

call android update project -p Appstore5_Utils -t android-8

call ant release -buildfile Appstore5_Utils\build.xml

call android update project -p Appstore5_Download_Install -t android-8

call ant release -buildfile Appstore5_Download_Install\build.xml

call android update project -p Appstore5_Common -t android-8

call ant release -buildfile Appstore5_Common\build.xml

call android update project -p Appstore5_Phone -t android-9

call ant release -buildfile Appstore5_Phone\build.xml

if not exist %out_dir%\ mkdir %out_dir%
if exist %out_dir%\%out_file_name% del %out_dir%\%out_file_name% /q
copy /y Appstore5_Phone\bin\Loft-release.apk %out_dir%\%out_file_name%
pause

文件3

dependency\build.bat

call android update project -p lepay_Res -t android-8

call ant release -buildfile lepay_Res\build.xml

call android update project -p lepush_Res -t android-8

call ant release -buildfile lepush_Res\build.xml

call android update project -p leuser_Res -t android-8

call ant release -buildfile leuser_Res\build.xml

三、签名

只要在Android工程的project.properties进行示例3类似的配置,在使用Ant打包时,Ant就会对生成的apk文件进行签名.

示例3

文件project.properties中

has.keystore=true

has.password=true

key.store=debug.keystore

key.alias=androiddebugkey

key.store.password=android

key.alias.password=android

这里的数字签名文件debug.keystore和project.properties处于同一目录。

关于请签名参考《Android应用程序签名简介

四、混淆打包

关于使用Ant混淆打包的知识请参考《Android的代码混淆

、引用第三方库

对于引用第三方库,可以直接把jar文件放在Android工程的libs目录中。

这样ant就能找到它们了。

还有一种就是在把${sdk.dir}/tools/ant/build.xml拷贝到的Android工程目录做如下修改project.all.classes.path来添加jar文件就行了:

<property name="jar.libs2.dir" value="./../libs" />

<property name="jar.libs2.absolute.dir" location="${jar.libs2.dir}" />

<path id="libs2.jars.path">

<fileset dir="${jar.libs2.absolute.dir}">

<include name="*.jar" />

</fileset>

</path>

<path id="project.all.classes.path">

<path refid="project.all.classes.path" />

<path refid="libs2.jars.path" />

</path>

对于只是编译,不需求打入包的可以采用这种方式。

第一处

<property name="jar.libs.dir" value="libs" />

<property name="jar.libs.absolute.dir" location="${jar.libs.dir}" />

<property name="jar.libs2.dir" value="./../libs" />

<property name="jar.libs2.absolute.dir" location="${jar.libs2.dir}" />

<path id="libs2.classpath">

<path path="${jar.libs2.absolute.dir}/alipay_msp.jar" />

<path path="${jar.libs2.absolute.dir}/Android_Location_V1.0.5.jar" />

<path path="${jar.libs2.absolute.dir}/Android_Map_2.1.4.jar" />

<path path="${jar.libs2.absolute.dir}/Android_Services_2.1.4.jar" />

<path path="${jar.libs2.absolute.dir}/android-async-http-1.4.4.jar" />

</path>

第二处

<path id="project.javac.classpath">

<path refid="project.all.jars.path" />

<path refid="tested.project.classpath" />

<path path="${java.compiler.classpath}" />

<path refid="libs2.classpath" />

</path>

<javac encoding="${java.encoding}"

source="${java.source}" target="${java.target}"

debug="true" extdirs="" includeantruntime="false"

destdir="${out.classes.absolute.dir}"

bootclasspathref="project.target.class.path"

verbose="${verbose}"

classpathref="project.javac.classpath"

fork="${need.javac.fork}">

<src path="${source.absolute.dir}" />

<src path="${gen.absolute.dir}" />

<compilerarg line="${java.compilerargs}" />

</javac>

六、其他

* install:安装调试构建的包到运行着的模拟器或者设备;

* reinstall

* uninstall

时间: 2024-10-22 16:55:17

Android中使用Ant编译打包的相关文章

Ant编译打包Android工程流程

一.Ant编译打包android工程步骤 二.Ant apk签名 1.keystore签名    定义自己的签名文件 生成keystore文件:keytool -genkey -alias android.keystore -keyalg RSA - validity 20000 -keystore android.keystore 对应的java命令:jarsigner -verbose -keystore android.keystore -signedjar android_signed.

Android中利用ant进行多渠道循环批量打包

公司负责Android开发的小伙伴学习能力稍微偏弱,交代给他的自动化打包的任务,弄了好久依然没有成效.无奈只好亲自出手. 没有想到过程很顺利,我完全按照如下文章的步骤进行: 主要参考: Android中利用ant进行多渠道循环批量打包(一) Android中利用ant进行多渠道循环批量打包(二) 次要参考:?? Mac中用Ant实现Android的批量打包碰到的一些问题以及解决方法 Android Ant 批量多渠道打包实例.md [Android分享]?最新的Android Sdk 使用Ant

ANT编译打包&WIFI调试& adb shell常用命令

ANT编译打包 1:用ADT工具自带的打包:    1:切换到项目目录: 运行,android update project -p . android update project -p ./ --library ../com.example.plugin1.ifs 2:刷新:多了两个目录, 3:local.properties配置: sdk.dir=E:\\samy\\adt-huixin_x86-20140321\\sdk  key.store=./keystore/**** key.sto

Android中如何修改编译的资源ID值(默认值是0x7F...可以随意改成0x02~0x7E)

一.技术准备 今天我们来看一下如何修改Android中编译时的资源Id的值,在讲解这内容之前,我们需要先了解一下Android中的资源编译之后的结构和编译过程,这里就不多说了,具体可以查看这篇文章: http://blog.csdn.net/jiangwei0910410003/article/details/50628894 这篇文章中,介绍了如何解析Android中编译之后的resource.arsc文件,这里就介绍了Android中资源文件编译之后的类型和格式,其实Android中资源编译

Android中使用databinding编译时出现的error:Execution failed for task &#39;:app:dataBindingProcessLayoutsDebug&#39;

Windows环境下使用svn对AndroidStudio更新代码时,总会在源文件中出现一堆乱码,尤其是xml文件中的乱码,不仅找起来费劲,改起来更费劲. 最近从svn更新代码之后,编译时出现了下面这个提示,而且AS中没有错误提示,这可真是捉急了. databinding error:Execution failed for task ':app:dataBindingProcessLayoutsDebug' 后来,多亏这篇帖子提示,自己写了段代码来尝试下,http://stackoverflo

Android系列之Android 命令行手动编译打包详解

http://www.qdmm.com/BookReader/1222701,54263720.aspxhttp://www.qdmm.com/BookReader/1222701,54263869.aspxhttp://www.qdmm.com/BookReader/1222701,54263871.aspxhttp://www.qdmm.com/BookReader/1222701,54263876.aspxhttp://www.qdmm.com/BookReader/1222701,542

Android项目使用Ant多渠道打包(最新sdk)

参考文章: http://blog.csdn.net/liuhe688/article/details/6679879 http://www.eoeandroid.com/thread-323111-1-1.html http://yangguangfu.iteye.com/blog/723182 http://blog.csdn.net/cen616899547/article/details/22225947 一.Android使用Ant的打包流程 使用ANT来对应用打包,一般会经过以下几个

android的ant编译打包

Android本身是支持ant打包项目的,并且SDK中自带一个build.xml文件. 通过该文件,可以对文件进行编译.打包.安装等.并且支持多种方式打包,如debug或者release. 一般的,可以按照如下方法进行操作: 首先创建一个Android工程. 工程创建好后,需要为工程添加ant支持,即创建相应的build.xml文件. 这个文件不需要用户自己创建,只需要执行如下命令即可: <sdk>/tools/android update project -p <project>

使用ant编译打包、部署简单的javaweb项目 --02

和上一次的并没胡什么不同,也就是多了一个使用ant初始化mysql数据库 目录结构: D:\code\kongee\ant_web_three λ tree /f 卷 软件 的文件夹 PATH 列表 卷序列号为 000D-CD8E D:. │ .classpath │ .project │ build.xml │ studentbak.sql │ ├─.settings │ .jsdtscope │ org.eclipse.jdt.core.prefs │ org.eclipse.wst.com