学习【android-sdk-linux根目录】/tools/ant/build.xml,觉得如下几点很有用,记录之

1)ant脚本中属性值是于前置定义优化的原则,即属性发生重复定义时,前面定义的值不会被后面定义的覆盖;

2)需要注意javac的交叉编译参数(-bootclasspath <路径>        覆盖引导类文件的位置),注意到它可能很容易理解在J2SE平台下编译android平台的类文件是怎么做到的;

这里有介绍该参数的文章:http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/javac.html#options

3)可利用ant -debug的参数来研究android的build.xml(这个强烈推荐使用),可以查看更多的日志输出,于便查看target运行时的参数;

使用事列:ant -debug release

如下为部份log

-compile:
Adding reference: project.javac.classpath
fileset: Setup scanner in dir /home/luogw/dev-tool/sdk/android-sdk-linux/tools/helloworld/src with patternSet{ includes: [] excludes: [] }
[javac] com/luo/HelloWorldActivity.java added as com/luo/HelloWorldActivity.class doesn't exist.
fileset: Setup scanner in dir /home/luogw/dev-tool/sdk/android-sdk-linux/tools/helloworld/gen with patternSet{ includes: [] excludes: [] }
[javac] /home/luogw/dev-tool/sdk/android-sdk-linux/tools/helloworld/gen/R.java.d skipped - don't know how to handle it
[javac] com/luo/BuildConfig.java added as com/luo/BuildConfig.class doesn't exist.
[javac] com/luo/R.java added as com/luo/R.class doesn't exist.
[javac] Compiling 3 source files to /home/luogw/dev-tool/sdk/android-sdk-linux/tools/helloworld/bin/classes
[javac] Using modern compiler
[javac] Compilation arguments:
[javac] '-d'
[javac] '/home/luogw/dev-tool/sdk/android-sdk-linux/tools/helloworld/bin/classes'
[javac] '-classpath'
[javac] '/home/luogw/dev-tool/sdk/android-sdk-linux/tools/helloworld/bin/classes:/home/luogw/dev-tool/sdk/android-sdk-linux/tools/support/annotations.jar'
[javac] '-sourcepath'
[javac] '/home/luogw/dev-tool/sdk/android-sdk-linux/tools/helloworld/src:/home/luogw/dev-tool/sdk/android-sdk-linux/tools/helloworld/gen'
[javac] '-target'
[javac] '1.5'
[javac] '-bootclasspath'
[javac] '/home/luogw/dev-tool/sdk/android-sdk-linux/platforms/android-10/android.jar'
[javac] '-encoding'
[javac] 'UTF-8'
[javac] '-g'
[javac] '-source'
[javac] '1.5'
[javac]
[javac] The ' characters around the executable and arguments are
[javac] not part of the command.
[javac] Files to be compiled:
[javac] /home/luogw/dev-tool/sdk/android-sdk-linux/tools/helloworld/src/com/luo/HelloWorldActivity.java
[javac] /home/luogw/dev-tool/sdk/android-sdk-linux/tools/helloworld/gen/com/luo/BuildConfig.java
[javac] /home/luogw/dev-tool/sdk/android-sdk-linux/tools/helloworld/gen/com/luo/R.java

4)//TODO

注:目前我有个需求:想替换build.xml脚本中的-bootclasspath的值

但它不是一个属性值,不能通过前置定义的方式替换,暂时没有想到解决方案

有关android工程的构建脚本(build.xml)的学习的更多相关文章

  1. 【ANT】构建文件build.xml

    运行ant: ant 使用当前目录下的build.xml运行ant,指定缺省的target; ant –buildfile mybuild.xml 使用当前目录下的mybuild.xml运行ant,并 ...

  2. Android Studio Gradle构建脚本

    Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言. 构建工具就是对你的项目进行 ...

  3. msbuild 编译指定工程时构建脚本的配置

    有时候 ,我们编译windows的exe时,我们不需要编译所以的工程,我们只需要指定某个工程就好了,此时我们使用/t:工程名:Rebuild(如果要编译全部工程就把工程名去掉,即/t:Rebuild) ...

  4. 【转】Android项目使用Ant打包,生成build.xml

    记不住,于是原帖转过来,请看原帖:http://blog.csdn.net/ms03001620/article/details/8490238 一.生成build.xml Eclipse中使用Ant ...

  5. Ant之build.xml详解---可用

    Ant的概念 :在Eclipse中使用Ant Ant是Java平台下非常棒的批处理命令执行程序,能非常方便地自动完成编译,测试,打包,部署等等一系列任务,大大提高开发效率. Ant和make命令很像. ...

  6. Ant_的最完整build.xml解释

    Ant的概念 Make命令是一个项目管理工具,而Ant所实现功能与此类似.像make,gnumake和nmake这些编译工具都有一定的缺陷,但是Ant却克服了这些工具的缺陷.最初Ant开发者在开发跨平 ...

  7. 通过java程序调用ant build.xml配置文件中指定的target

    一.概述 通过ant实现项目的自动化部署,jar包生成,替换,tomcat关停.启动,查看项目日志: 通过java程序调用已编辑好的ant脚本build.xml配置文件中指定的target: 文中文件 ...

  8. Gradle构建脚本基础

    Gradle构建脚本,内部是基于 Groovy 的 DSL(领域特点语言),而Maven是基于XML的,Groovy相比XML更加简洁.灵活和强大. Groovy 因为给 Java 开发人员提供了最大 ...

  9. 【转载】Gradle学习 第六章:构建脚本基础

    转载地址:http://ask.android-studio.org/?/article/11 6.1. Projects and tasks 项目和任务Everything in Gradle si ...

随机推荐

  1. 菜鸟初识UML

    首当其冲的就是:什么是UML呢? 首先,UML 是一种可视化的面向对象的建模语言.它是一个支持模型化和软件系统开发的图形化语言,为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造 ...

  2. Web APIs 基于令牌TOKEN验证的实现

    Web APIs 基于令牌TOKEN验证的实现 概述: ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.但 ...

  3. Qt configure 参数不完全说明

    只需要加个 -fast参数就ok了.其他参数视自己情况而定,比如你不需要qt3支持可以添加-no-qt3support,或者不需要webkit插件 -no-webkit配置参数选项: 前面是*号的表示 ...

  4. jxl读写excel, poi读写excel,word, 读取Excel数据到MySQL

    这篇blog是介绍: 1. java中的poi技术读取Excel数据,然后保存到MySQL数据中. 2. jxl读写excel 你也可以在 : java的poi技术读取和导入Excel了解到写入Exc ...

  5. 数据结构——二叉树(Binary Trees)

    非线性数据结构 二叉搜索树(Binary Search Tree) 树的密度=结点数/高度 二叉树类 #pragma once class stnode { public: int nodeValue ...

  6. Threejs 官网 - Three.js 的图形用户界面工具(GUI Tools with Three.js)

    Threejs 官网 - Three.js 的图形用户界面工具(GUI Tools with Three.js) 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) ...

  7. HDU 3060 多边形面积并

    Area2 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Subm ...

  8. android自定义控件 onMeasure() 测量尺寸

    上次讲的自定义控件刷新点屏幕的任意地方都会刷新,而且在xml里自定义控件下面放一个textview的话,这个TextView是显示不出来的,不只这个,以前的几个自定义控件都是 为什么呢?今天来讲下on ...

  9. 我写的一个 Qt 显示图片的控件

    Qt 中没有专门显示图片的控件.通常我们会使用QLabel来显示图片.可是QLabel 显示图片的能力还是有点弱.比方不支持图像的缩放一类的功能.使用起来不是非常方便. 因此我就自己写了个简单的类. ...

  10. javascript实现贪吃蛇

    <html> <head> <style> body { background:#444; } .rect { border:1px solid #94F; wid ...