利用 ant 脚本修改项目包名

本文介绍如何在Windows7环境下,通过安装JDK和Ant,配置环境变量,并使用自定义脚本,实现自动化更新Android应用项目的包名、资源及功能定制。包括详细步骤和XML配置示例,助您轻松应对不同OEM下的项目需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发android应用项目的时候,经常会有这样的需求,一个应用项目,要求在不同的OEM下有不同的包名,不同的资源,不同的功能点什么的。尽管可以利用eclipse adt自带的功能来做这件事,但是,当按照这样的需求来定制的越来越多的时候,手动去修改就开始变得力不从心起来。这个时候,一个良好的自动化脚本呼之欲出,你完全可以利用perl/python/Makefile来做,不过这里如果直接使用ant来做的话,似乎很多事情变得简单起来。毕竟,ant提供给我们良好的接口,而隐藏那些实现细节。
废话少说,先搭建一个这样的环境吧。
首先还是简述一下我的工作环境Windows 7

1. 下载安装jdk, 一定是jdk, 如果只安装jre的话,在运行ant时会报错,说找不到tools.jar这个文件。
安装完毕后在系统环境变量下设置JAVA_HOME=C:\Program Files\Java\jdk1.6.0_25(这个换成自己的安装路径)

2. 下载安装ant
其实就是解压到某目录下,解压完毕后在系统环境变量下设置ANT_HOME=D:\apache-ant-1.8.2(这个换成自己的安装路径)
并添加运行路径Path=%Path%;%ANT_HOME%\bin

3. 更新project

android.bat update project --path .

4. 使用ant
ant release (或者是debug)

5. 定制自己的脚本来完成修改项目包名等内容

    1. 准备config.xml
      <?xml version="1.0" encoding="UTF-8"?>
      <!-- www.Ulrich-Scheller.de - use this script/project for whatever you want on your own risk -->

      <project name="myproject" default="myproject" basedir=".">
      <description> Build project for different partner </description>

      <!--partner.dir, pkg.name, ver.code, ver.name are input from command line when execute 'ant' -->

      <!-- set global properties for this build -->
      <property name="build.bin" location="bin"/>
      <property name="build.gen" location="gen"/>
      <property name="src" location="src"/>
      <property name="res" location="res"/>

      <target name="preparefiles" description="Prepare files for different partner" >
      <delete dir="${build.bin}" />
      <delete dir="${build.gen}" />

      <copy todir="${res}" overwrite="true" />
      <fileset dir="${partner.dir}/res" /> 
      </copy>

      <!-- change the import in all Java source files -->
      <replaceregexp file="AndroidManifest.xml"
      match='android.versionCode="(.*)"'
      replace='android.versionCode="${ver.code}"'
      byline="false">

      <replaceregexp file="AndroidManifest.xml"
      match='android.versionName="(.*)"'
      replace='android.versionName="${ver.name}"'
      byline="false">

      <replaceregexp file="AndroidManifest.xml"
      match='package="(.*)"'
      replace='package="${pkg.name}"'
      byline="false">

      <!-- change the package name in AndroidManifest -->
      <replaceregexp flags="g" byline="false">
      <regexp pattern="import(.*)com.myproject.com.R;" /> 
      <substitution expression="import com.${pkg.name}.R;" />
      <fileset dir="${src}" includes="**/*.java" /> 
      </replaceregexp>

      <replaceregexp flags="g" byline="false">
      <regexp pattern="(package com.myproject.com;)" /> 
      <substitution expression="\1&#10;import com.${pkg.name}.R;" />
      <fileset dir="${src}" includes="**/*.java" /> 
      </replaceregexp>
      </target>

      </project>
    2. 运行定制脚本
      $ ant -f config.xml -Dpartner.dir="xxx" -Dpkg.name="xxx" -Dver.code="xxx" -Dver.name="xxx" preparefiles
    3. 编译
      $ ant debug
      或者
      $ ant release
    具体的定制细节可以参考上面的脚本和如下链接里提到的内容
http://blogold.chinaunix.net/u/9577/showart_1828754.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值