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
- android 用 ant 打包编译
- Ant编译打包Android项目
- Android Eclipse Ant 编译打包
- android ant 编译打包 和批量打包
- android 下用ant编译脚本执行批量渠道打包
- Android ant 命令行手动编译打包详解
- 通过ant脚本,编译打包android工程
- Android中使用Ant编译打包
- 通过ant脚本,编译打包android工程
- 通过ant脚本编译打包android工程
- Ant自动编译打包android项目
- 通过ant脚本编译打包android工程
- Ant自动编译打包&发布 android项目
- 通过ant脚本编译打包android工程
- android使用ant重新编译打包apk
- Android中使用Ant编译打包
- Ant自动编译打包&发布 android项目
- Ant自动编译打包&发布 android项目
- 单链表的基本操作
- Scalable Web Architecture and Distributed Systems
- 国内CVPR和图像处理领域的公司和研究机构
- 安卓手机模拟器的安装
- 请考虑更改其中一个程序集的“嵌入互操作类型”属性
- android 用 ant 打包编译
- 把一个字段一次性遍历给指定的多个控件
- XML学习之Xml Schema:二、Xml Schema与命名空间
- Java之正则表达式学习总结
- ping: unknown host 解决办法
- 测试
- 3-2 JSP中的请求、响应、Cookie、会话HttpSession
- 一个Socket连接管理器
- OUI-1058:The OUI Inventory on this system does exits o is not writable