定制的Android清单的部分(Customizing parts of Android Manif

2019-07-31 06:12发布

我开发我想船在市场上不同的语言几种不同的APK(每种语言包括一个巨大的文件包,我想避免与所有语言包创建一个巨大的APK),Android应用程序。

所以,我需要的是定制位每种语言的清单文件:例如应用程序的包,可能的应用程序版本等。我知道我可以在模板清单,以便我可以手动插入在某些点上我的价值观文件(参见这篇文章 )。 问题是,我使用ant准备我的生产的APK,但除此之外,我开发使用Eclipse的,所以我需要我的项目在IDE中工作过。 Eclipse的要求完整清单文件,也不会明白,我将使用蚂蚁模板的,据我所知构建(请别人证明我错了)。

我的问题是,我想避免维持两个能在很大程度上(一个模板,一个完整的Eclipse)相同的清单文件。 目前我能想到的两种可能的方法,但我不知道如何去实现它们:

  • 使用某种类型的定义注入的清单文件:如果我能够注入一定的XML文件中AndroidManifest文件的身体,我可以保持相同的部分在一个XML部件和定制唯一不同的点
  • 如果有可能配置Eclipse使用Ant任务序列的一些建设项目的Android,而不是预生成程序我也许能我建立我的生产的APK在IDE的方式进行整合。

如有的人谁知道如何完成上述任何两个,或有任何其他想法,我怎么能解决我的问题:救命!

Answer 1:

以蚂蚁替换任务来看一看:

<replace file="${build.out}/src/config.prop" token="@@@" value="${build.version}-${build.type}"/>

但同样,你应该小心,他们是唯一的值。

你也可以用产生的舱单代替你的Eclipse清单echoxml任务。

或者你可以重用这个漂亮的任务有关XML操作。



Answer 2:

在我工作的公司,我们几乎使用由欧根给出的方法来自动执行,例如应该简单地通过交换部分资产,样式,字符串和配置不同品牌的应用程序的构建过程。 我们倾向于建立项目和编译过程如下:

  1. 创建Android项目,并设置它,使得它适用于一个特定的品牌。 这将确保你仍然可以建立,并从Eclipse中运行。 假设该代码库不打上不同版本之间的变化,这应该是罚款。
  2. 创建一个Ant构建配置是:
    1. 副本的任何文件,这些文件将被改变为一个备份目录
    2. 根据配置文件修改项目文件(见下文)
    3. 编译项目源,并释放键的标志(如果做一个发布版本)
    4. 副本从步骤1备份文件,覆盖任何变化,该项目返回其原始状态
  3. 创建你的情况下,每个“品牌”,或语言特定版本的配置文件。

基本上,这些步骤将允许您创建品牌/合作伙伴/语言特定的建立只需提供与Ant构建命令适当的配置。 在我们的情况下,它看起来有点像这样:

ant partner-release -Dpartner=stackoverflow

其中,“计算器”将指向具有相同名称的配置。 在我们的情况下,这些配置文件是包含所有将被替换为特定生成的参数小的XML文件。 它可以包含字符串,但还不如指向应该被复制到资产/资源的其他文件(如标志图像)。 例如:

<config>
    <version_name>1.00</version_name>
    <version_code>1</version_code>
    ...
</config>

一些更多的指针:

  • 我们使用xmltask修改项目中的任何XML文件; 如清单和资源。
  • 由于上述的任务是很容易使用,我们构建配置文件也被设置为XML文件,如上图所示。 这是相当人类可读,并且简单易懂改变。
  • 您还可以使用replaceReplaceRegExp任务改变几乎任何文件配置相关的变量。 后者可以使构建时更改源代码特别方便。


文章来源: Customizing parts of Android Manifest