android 用 ant 打包编译

来源:互联网 发布:海绵城市模型软件 编辑:程序博客网 时间:2024/06/08 05:58


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.3export PATH=$ANDROID_SDK/platform-tools:$ANDROID_SDK/tools:$JAVA_HOME/bin:$ANT_HOME/bin:$PATHexport 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 -versionApache 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.keykey.alias=fql_releasekey.store.password=fqlkey.alias.password=fqlconfig.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

原创粉丝点击