zoukankan      html  css  js  c++  java
  • (转)[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 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>
        </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
      具体www.hc3600.comwww.dgdaming.com的定制细节可以参考上面的脚本和如下链接里提到的内容
    http://blogold.chinaunix.net/u/9577/showart_1828754.html
  • 相关阅读:
    bzoj2669 [cqoi2012]局部极小值 状压DP+容斥
    bzoj2560 串珠子 状压DP
    bzoj2004 [Hnoi2010]Bus 公交线路 矩阵快速幂+状压DP
    「校内训练 2019-04-23」越野赛车问题 动态dp+树的直径
    bzoj5210 最大连通子块和 动态 DP + 堆
    动态 DP 学习笔记
    bzoj4987 Tree 树上背包
    bzoj1190 [HNOI2007]梦幻岛宝珠 背包
    bzoj1004 [HNOI2008]Cards Burnside 引理+背包
    bzoj4922 [Lydsy1706月赛]Karp-de-Chant Number 贪心+背包
  • 原文地址:https://www.cnblogs.com/greywolf/p/3037231.html
Copyright © 2011-2022 走看看