`

ant 加快eclipse下android项目编译速度

 
阅读更多

本文主要介绍通过ant和一些eclipse配置加快eclipse下android项目编译速度。

主要包括两部分ant提高效率eclipse配置项提高效率。关于eclipse中android项目的编译过程分析见上一篇博客

Ps:本文中编译过程输出都是以真机(htc g7)作为avd,api level为8。

 

用eclipse进行android开发的朋友都会发现,无论是java文件还是一个资源文件的修改,在build的时候都会有一个重新编译的过程,而这个过程及其缓慢,导致项目开发效率极其低下。

 

1、ant配置提高效率

这个部分主要介绍ant可以为android开发做什么,如何生成ant项目,为已存在的项目生成ant的build xml,如何利用ant生成配置。

相应java开发对ant都有一定熟悉,关于下载安装、配置及使用不多介绍,具体可见apache ant

1.1 ant可以为android开发做什么

a. 添加自定义生成步骤

b. 使用自动生成系统

c. 使用生成配置

d. 一个命令build项目

 

1.2 生成ant项目

使用如下命令

android create project --name YourProjectName --path C:\dev\YourProject --target android-3 --package com.company.testproject --activity MainActivity

相当于eclipse -> new -> other -> android project,参数相当于dialog中需要填写的信息

 

1.3 为已存在的项目生成ant的build xml

运行命令行到当前项目根目录下,运行如下命令:

android update project --path .

结果如下:

Updated local.properties
Added file C:\dev\blog\antbuild\build.xml

表示增加成功,可以使用ant命令查看相关信息和帮助,如下:

>ant
Buildfile: C:\dev\blog\antbuild\build.xml
    [setup] Android SDK Tools Revision 6
    [setup] Project Target: Android 1.5
    [setup] API level: 3
    [setup] WARNING: No minSdkVersion value set. Application will install on all Android versions.
    [setup] Importing rules file: platforms\android-3\ant\ant_rules_r2.xml

help:
     [echo] Android Ant Build. Available targets:
     [echo]    help:      Displays this help.
     [echo]    clean:     Removes output files created by other targets.
     [echo]    compile:   Compiles project's .java files into .class files.
     [echo]    debug:     Builds the application and signs it with a debug key.
     [echo]    release:   Builds the application. The generated apk file must be
     [echo]               signed before it is published.
     [echo]    install:   Installs/reinstalls the debug package onto a running
     [echo]               emulator or device.
     [echo]               If the application was previously installed, the
     [echo]               signatures must match.
     [echo]    uninstall: Uninstalls the application from a running emulator or
     [echo]               device.

BUILD SUCCESSFUL
 

1.4 如何利用ant生成配置

项目中经常需要对一些字符串或是日志级别进行设置,这里我们可以通过ant的配置项完成

新建build.properties文件,内容为

# Turn on or off logging.
config.logging=true

调用地方如下使用

public class Config {
    /** Whether or not to include logging statements in the application. */
    public final static boolean LOGGING = @CONFIG.LOGGING@;
}  

需要在build.xml中添加如下部分

   <!-- Copy Config.java to our source tree, replacing custom tokens with values in build.properties. The configuration depends on "clean" because otherwise the build system will not detect changes in the configuration. -->
  <target name="config">

	  <property name="config-target-path" value="${source.dir}/com/androidengineer/antbuild"/>

	  <!-- Copy the configuration file, replacing tokens in the file. -->
	  <copy file="config/Config.java" todir="${config-target-path}"
			overwrite="true" encoding="utf-8">
	   <filterset>
		<filter token="CONFIG.LOGGING" value="${config.logging}"/>
	   </filterset>
	  </copy>
	  
	  <!-- Now set it to read-only, as we don't want people accidentally
		   editing the wrong one. NOTE: This step is unnecessary, but I do
		   it so the developers remember that this is not the original file. -->
	  <chmod file="${config-target-path}/Config.java" perm="-w"/>
	  <attrib file="${config-target-path}/Config.java" readonly="true"/>

 </target>
具体可以参考 http://www.androidengineer.com/2010/06/using-ant-to-automate-building-android.html

 

2、eclipse配置项提高效率

右击项目选择Properties -> Builders,取消勾选所有的Builders

原因尚不明,但很有效果,修改文件后保存,编译极快。

 

3、修改sdk依赖版本,据悉在api level 8之前编译速度良好。

未降级api进行测试

 

参考:

http://oae9.wordpress.com/2011/03/22/android-workaround-for-slow-building-workspace-problem-in-eclipse/

 

http://liuqzan.iteye.com/blog/951995

分享到:
评论

相关推荐

    非常强大的eclipse中android ndk开发环境的配置说明

    详细介绍了在eclipse中android项目下c/c++代码的自动编译,和在eclipse中用ant生成ndk需要的jni头文件,加速ndk的开发,因为是原创,费了不少心力和时间,所以设了6分,有人反映太贵了,现在调成3分,这下大家满意了...

    疯狂Android讲义光盘第三部分(共三部分)

    其中HRSystem是IDE平台无关的项目,使用Ant来编译即可;而HRSystem_Eclipse是该项 目在Eclipse IDE工具中的项目文件。 (3) 本书的绝大部分项目都是Eclipse项目,因此项目文件夹下包含.classpath、 .project等...

    疯狂android讲义光盘源码第一部分(全部三部分)

    其中HRSystem是IDE平台无关的项目,使用Ant来编译即可;而HRSystem_Eclipse是该项 目在Eclipse IDE工具中的项目文件。 (3) 本书的绝大部分项目都是Eclipse项目,因此项目文件夹下包含.classpath、 .project等...

    新版Android开发教程.rar

    � 采用了对有限内存、电池和 CPU 优化过的虚拟机 Dalvik , Android 的运行速度比想象的要快很多。 � 运营商(中国移动等)的大力支持,产业链条的热捧。 � 良好的盈利模式( 3/7 开),产业链条的各方:运营商、...

    疯狂Android讲义光盘第二部分(全三部分)

    其中HRSystem是IDE平台无关的项目,使用Ant来编译即可;而HRSystem_Eclipse是该项 目在Eclipse IDE工具中的项目文件。 (3) 本书的绝大部分项目都是Eclipse项目,因此项目文件夹下包含.classpath、 .project等...

    中文版Android程序员入门

    为Eclipse配置Android Plugin - 第三章(3) 12 第四章 浏览Android SDK 14 浏览Android SDK - 第四章(1) 14 Android SDK是什么 - 第四章(2) 14 Android 文档 - 第四章(3) 15 Android示例 - 第四章(4) 15 ...

    Android程序员入门(中文版).doc

    为Eclipse配置Android Plugin - 第三章(3) 12 第四章 浏览Android SDK 14 浏览Android SDK - 第四章(1) 14 Android SDK是什么 - 第四章(2) 14 Android 文档 - 第四章(3) 15 Android示例 - 第四章(4) 15 ...

    Android插件框架Android-Plugin-Framework.zip

    此工程下有用来编译插件的ant脚本。 宿主程序工程可以通过ant编译或者导入eclipse后直接点击Run菜单进行安装。 插件Demo工程需要通过插件ant脚本编译。编译命令为 “ant clean debug” 原因是Demo中引用...

    android开发指南

    为Eclipse配置Android Plugin - 第三章(3) 10 第四章 浏览Android SDK 11 浏览Android SDK - 第四章(1) 11 Android SDK是什么 - 第四章(2) 12 Android 文档 - 第四章(3) 12 Android示例 - 第四章(4) 13 ...

    moai-build-android:基于 Lua 的构建系统,用于创建和编译 Moai Android 项目

    他们将创建一个工作 Eclipse 项目,使用 Ant 构建它,并在连接的设备上安装/运行。 但混合中存在问题: 几乎没有多项目支持的概念。 很少有自动化。 编写脚本来运行脚本很快就会变老。 脚本是用 bash 编写的。 我们...

    androidjava源码下载-appgame:清单合并:-----------------您的项目使用提供清单的库,而Eclipse项目没有

    清单合并:-----------------您的项目使用提供清单的库,而Eclipse项目没有显式打开清单合并。 在Android Gradle项目中,清单始终会合并(这意味着库清单中的内容将被合并到应用清单中。如果您已将库清单中的内容...

    carteggio:Android的对应移动消息应用程序

    介绍 Carteggio是具有针对交互对话进行了优化的UI的移动电子邮件客户端。 有关更多信息,请参见: : ... 您可以使用ant和可从获得的Android开发套件来编译项目。 在本地克隆项目: git clone 更新项目

    GravityShake:随手机倾斜程度变化(重力加速度感应)而摆动的小图标

    本项目开发工具为Eclipse,你可以将source文件夹下的项目导入到eclipse中编译并运行。 如果你使用ant来编译构建项目,你需要在 source/GravityShake 文件夹下建立一个local.properties文件,该文件的内容为 sdk.dir=...

    java7源码-AndroidDailyDevelopCode:Android日常开发代码集合,包括:新技术demo、技术尝试、日常项目;

    有两种流行的结构:老的Ant&Eclipse ADT工程结构,和新的Gradle&Android Studio工程结构,你应该选择新的工程结构,如果你的工程还在使用老的结构,考虑放弃吧,将工程移植到新的结构。 老的结构: old-structure ├...

    网狐荣耀版开发使用常见问题解答

    第二,右键项目,选择export,进入下图界面,选择android,然后再选择Export Android Application,然后选择下一步,这里默认,再进行下一步。 第三步,这里选择Create new keystore,Location选择存储路径,...

Global site tag (gtag.js) - Google Analytics