您的位置:首页 > 移动开发 > Android开发

android 用 ant 打包编译

2013-01-21 13:36 106 查看
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/下面去,这样将会覆盖掉之前在
[b]com.example.anttest 包下面建立的Config.java文件。同时会 将 @CONFIG.FOO@; 替换成 在ant.properties下的config.foo下面的所表示的值。这样就会在程序运行时,动态的去去的ant.properties 下所配置的值了。[/b]

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


就可以了。

如有问题,欢迎大家留言!!!!

4. 参考资料

Using Ant to Automate Building Android Applications

Building and Running from the Command Line
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: