ant 官方网址如:http://ant.apache.org/manual/index.html 在这里你可以获取到ant的更多的资料。
1. 下载并安装ant 工具 ,并配置好环境变量。
(1).终端敲入以下命令:fql@fql-System-Product-Name:~/桌面$ gedit ~/.bashrc
(2).修改bashrc文件 ,将其添加到path 及 classpath中
export ANT_HOME=~/fql_zlyy/tools/apache-ant-1.8.3
export PATH=$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools:$JAVA_HOME/bin:$ANT_HOME/bin:$PATH
export CLASSPATH=$ANDROID_SDK/platform-tools/lib:$ANDROID_SDK/tools/lib:$JAVA_HOME/lib:$ANT_HOME/lib:$CLASSPATH
(3).在终端进行测试 ,是否安装成功 ,我安装的是1.8.3的版本
fql@fql-System-Product-Name:~/桌面$ ant -version
Apache Ant(TM) version 1.8.3 compiled on February 26 2012
2. 编译android项目
(1).打开终端,进入项目目录,输入如下命令 $ android update project -p AntTest -t android-17
-p 指定项目的路径, -t 指定项目使用的 Android SDK api level
AntTest 此处可以填写项目的具体路径,如果在当前项目的父路径下,则直接填写AntTest
(2).编辑项目目录下生成的 build.xml ,把 project 元素的 name 属性修改为项目的名字,这个名字会影响生成的 APK 文件名。例如:TestAntBuild。
(3).编译各种类型的版本
编译 debug 版本,输入命令 $ ant debug (编译成功之后, bin/ 目录下会生成 TestAntBuild-debug.apk)
编译 release 版本需要的 keystore and alias,编辑项目目录下的 ant.properties 文件(如果没有请自行创建),
例如: key.store=/home/fql_zlyy/opt/fql.key
key.alias=fql_release
key.store.password=fql
key.alias.password=fql
由于 ant.properties 中配置的路径跟开发环境相关,因此请不要把 ant.properties 加入版本管理系统。
编译 release 版本,输入命令 $ ant release 编译成功之后, bin/ 目录下会生成 TestAntBuild-release.apk
3.自定义的编辑android项目
通常在开发android应用程序的时候,开发人员会写大量的log用来调试(Log.v Log.i Log.d Log.e Log.w),但是在发布产品的时候,我们仅仅希望
将Log.e的日志信息显示出来,而其他的log信息都不予显示,这样有助于提高程序的性能。
(1). 新建项目AntTest ,并建立 相应的类 如下代码: //Slog类可以不用管 只是针对Log进行了一些包装而已
package com.example.anttest;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Slog.setTag("MainActivity");
for (int i = 0; i < 10; i++) {
Slog.i("the hope is everyever");
}
Slog.e("Error Test Successfully");
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}
package com.example.anttest;
public class Config
{
public final static boolean SHOW_ALL_LOG = false;
}
(2).在AntTest目录下建立一个文件夹config,该文件夹下面建立类Config.java ,代码如下:
package com.example.anttest;
public class Config
{
public final static boolean SHOW_ALL_LOG = @CONFIG.FOO@;
}
注
意一下此处的token,同时注意 其他地方
跟(1)所建立的Config类完全一样。
(3).修改build.xml文件
提示: 在 上述 步骤2. 编译android项目 的第一步,我们可以生成build.xml文件
<property file="ant.properties" />
<target name="-pre-compile">
<copy file="config/Config.java" todir="${source.dir}/com/example/anttest" overwrite="true" encoding="utf-8">
<filterset>
<filter token="CONFIG.FOO" value="${config.foo}"/>
</filterset>
</copy>
</target>
在
<property file="ant.properties" /> 下添加以上代码: 主要意思是:将拷贝java模板类(提示:该类是在以上步骤 (2).在AntTest目录下建立一个文件夹config,该文件夹下面建立类Config.java 所建立的java文件)到 AntTest/src/com.example.anttest/下面去,这样将会覆盖掉之前在
com.example.anttest 包下面建立的Config.java文件。同时会 将 @CONFIG.FOO@; 替换成 在ant.properties下的config.foo下面的所表示的值。这样就会在程序运行时,动态的去去的ant.properties 下所配置的值了。
ant.properties的内容如下:
key.store=/home/fql/fql_zlyy/fql_key.key
key.alias=fql_release
key.store.password=fql
key.alias.password=fql
config.foo=false
(4).配置完成之后,直接敲入命令 :
fql@fql-System-Product-Name:~/桌面$ ant release
就可以了。