首页 > (转)[Android] 利用 ant 脚本修改项目包名

(转)[Android] 利用 ant 脚本修改项目包名

[Android] 利用 ant 脚本修改项目包名在开发android应用项目的时候,经常会有这样的需求,一个应用项目,要求

房价上半年下行 下半年或回暖

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

废话少说,先搭建一个这样的环境吧。
首先还是简述一下我的工作环境Windows 7
1. 下载安装jdk, 一定是jdk, 如果只安装jre的话,在运行ant时会报错,说找不到tools.jar这个文件。
安装完毕后在系统环境变量下设置JAVA_HOME=C:Program FilesJavajdk1.6.0_25(这个换成自己的安装路径)
2. 下载安装ant
其实就是解压到某目录下,解压完毕后在系统环境变量下设置ANT_HOME=D:apache-ant-1.8.2(这个换成自己的安装路径)
并添加运行路径Path=%Path%;%ANT_HOME%in
3. 更新project
android.bat update project --path .
4. 使用ant
ant release (或者是debug)
5. 定制自己的脚本来完成修改项目包名等内容
    1. 准备config.xml


      encoding="UTF-8"?>






      name="myproject" default="myproject" basedir=".">



      Build project for different partner



















      location="src"/>


      location="res"/>




      description="Prepare files for different partner" >


      dir="${build.bin}" />


      />




















      match='android.versionCode="(.*)"'



      replace='android.versionCode="${ver.code}"'



      byline="false">




      file="AndroidManifest.xml"



      match='android.versionName="(.*)"'



      replace='android.versionName="${ver.name}"'



      byline="false">




      file="AndroidManifest.xml"

      match='package="(.*)"'



      replace='package="${pkg.name}"'

      byline="false">












      pattern="import(.*)com.myproject.com.R;" />


      expression="import com.${pkg.name}.R;" />


      dir="${src}" includes="***.java" />









    2. 运行定制脚本

      $ ant -f config.xml -Dpartner.dir="xxx" -Dpkg.name="xxx"

      -Dver.code="xxx" -Dver.name="xxx" preparefiles
    3. 编译

      $ ant debug

      或者

      $ ant release
    具体www.hc3600.comwww.dgdaming.com的定制细节可以参考上面的脚本和如下链接里提到的内容
http://blogold.chinaunix.net/u/9577/showart_1828754.html
http://www.ulrich-scheller.de/?p=4
http://java.dzone.com/articles/building-two-versions-same

转载于:https://www.cnblogs.com/greywolf/archive/2013/04/23/3037231.html

更多相关:

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 这是第三部分,完成效果如下 图1 建图和导航 三、使用RTAB-Map进行建图和导航 1. rtab...

  • 引言 在这个-SLAM建图和导航仿真实例-项目中,主要分为三个部分,分别是 (一)模型构建(二)根据已知地图进行定位和导航(三)使用RTAB-MAP进行建图和导航 该项目的slam_bot已经上传我的Github。 由于之前的虚拟机性能限制,我在这个项目中使用了新的ubantu 16.04环境,虚拟机配置 内存 8GCPU...

  • [{name:1},{name:2}].forEach((v,i,ar) => {console.log(v,i,ar)});//基础遍历[{name:1},{name:2}].map((v) => v.name);//[1,2]返回对象数组中指定字段值的一位数组(不改变原始数组)[{name:1},{name:2},{name:3}...

  • 体验内容 使用gmapping方法利用turtlebot底盘移动信息和激光雷达数据进行建图。 1. 安装一些依赖包 sudo apt-get install ros-melodic-move-base* sudo apt-get install ros-melodic-map-server* sudo apt-get insta...

  • 前言 我们知道Java/Python这种语言能够很好得 支持反射。反射机制 就是一种用户输入的字符串到对应实现方法的映射,比如http接口中 用户传入了url,我们需要调用该url对应的方法/函数对象 从而做出对应的操作。 而C++ 并没有友好得支持这样的操作,而最近工作中需要通过C++实现http接口,这个过程想要代码实现得优雅...

  • 如果你想在自己的IPhone上安装一个ipa文件,你的手机是无法正常安装的,(越狱,企业证书分发除外)但是我们可以通过以下步骤来实现,前提要有自己的开发者账号。接下来就看一下具体的步骤:第一步:用Xcode新建一个工程Bundle identifier不要和手机中已有的的APP重复,然后用自己的证书打包出ipa文件。第二步:获取mob...

  • 刚接触,啥子都不会,按着教程走需求:识别图片中的文字信息环境:windows系统开发语言:python3.5使用工具类:1.pyocr2.PIL3.tesseract-ocr步骤:1.pyocr网络通直接使用命令:pip install pyocr网络不通,转至https://pypi.python.org/pypi/pyocr/0....

  • 1、前言程序设计好以后会生成若干可执行文件和依赖文件。为了方便程序被更好地使用,需要将程序封装为一个安装程序。2、平台和环境Windows系统安装NSIS下载地址:https://nsis.sourceforge.io/DownloadNSIS(Nullsoft Scriptable Install System)是一个开源的 Win...

  • 展开全部 f=open('xxx','r',encoding='utf-8') file=f.readlines() f.close() f=open('xxx','w',encoding='utf-8') for i in len(file): ----file[i]=file[i].split(',') ----file[i][1...

  • PIL(Python Imaging Library)是Python中一个强大的图像处理库,但目前其只支持到Python2.7 pillow是PIL的一个分支,虽是分支但是其与PIL同样也具有很强的图像处理库。 Python3.7.0 如何安装pillow 此安装方法在windows7环境下完成: >>>win+r调出运行窗口,键入c...