Android in Hudson (2) 了解Android默认的build.xml内容

Android in Hudson (2) 了解Android默认的build.xml内容


当我们把上一篇所产生的build.xml打开来看时,把注解都删掉的话,你会发现内容相当精简如下:


	

  
  
  
  
  
        
        
        
        
        
   

   
 
  

不过....把注解删掉略过不看绝对是错误的行为,这里我只是不想占版面罢了,当然还是要解释一下,

  1. *.properties档都是key/Value的形式,简单来说就是定义变量的文件
  2. ${sdk.dir}是Ant中存取property的方式(其实就是*.properties里的那些变量),当然你也可以直接用
    
    			

    有相同效果,我自己是直接就写在build.xml里,省的要多维护一个文件
  3. path/pathelement/taskdef都是Ant定义的tag,就不多说明,我自己是把那一段想成定义了一个task为setup,执行的对象是com.android.ant.SetUpTask,参考的位置是android.antlibs所指定包含的档
  4. 最后就是执行setup这个task,如果刚刚在删掉注解前,你有稍微看一下的话就会发现到,执行setup时,除了会将一些properties设定好之外,还会import其默认的rule file (其实就是ant build file),借此即可使用一些rule内预先定义好的target(如:debug, release等),但假设你比较搞怪,不爱垂手可得的东西,热爱打造专属自己的target话,别以为就可以不执行setup,毕竟设定那些 properties是很重要的,请使用

如果你不是个爱搞怪的人,其是要透过ant去build Android程序,你只需要把sdk.dir这个变量设定好,接着就下ant debug就会自动编译成debug版本,老实说是很简单,但是我们放到hudson上绝对不会只是想compile而已,那就太无聊啦,因此对默认 build.xml做一些加工是在所难免。

然而,修改默认build.xml之前,我认为还是要了解那些import进来的文件是什么,我强烈建议大家还是可以去看一下那些rule file,他们通常会在 ${sdk.dir}/tools/ant/ 而且很机车的是还有版本,你可能会看到ant_rules_r1.xml/ant_rules_r2.xml/ant_rules_r3.xml,基本上他都是会用最新的,也有ant_test_rule系列,当你build test project时就会用到的,如果你已经对Ant有些许的认识,那么rule file内容绝对不会难倒你,如果你跟Android很熟的话,就更会发现他做的动作其实都是你可能已经很熟悉的command,请大胆的去了解它们