【问题标题】:Bulk Publishing of Android Apps批量发布 Android 应用程序
【发布时间】:2011-01-19 20:27:10
【问题描述】:

我们有几个应用程序在布局和代码上非常相似。唯一的区别是我们将切换图形元素,并对单个常量文件和字符串文件进行更改。当然,这有几个问题——第一个是命名空间。拥有相同命名空间的应用会覆盖任何其他应用。

对此有什么建议? 目前我们的命名空间是: com.company.appname 我想我可以这样做: com.company.appname.appversion

我已经看到有关 ant 脚本的帖子对此有所帮助,但我想知道现在是否有更流畅的解决方案。

【问题讨论】:

  • 不要质疑您的应用程序的设计,因为我不知道它的目的是什么,但似乎可以通过拥有一个具有多个主题的应用程序来简化这一点?
  • 如果你不想使用库,我在这里发布了一个解决方案:stackoverflow.com/questions/3711967/…

标签: android android-manifest android-build


【解决方案1】:

我建议调查Android Library Projects 来帮助解决这个问题。

我将这种方法用于我的一个应用的精简版和免费版。我有一个库项目,其中包含应用程序的所有源代码和大部分资源,然后是 2 个使用第一个作为库项目的项目,一个用于 Lite,一个用于完整版。

这两个依赖项目都有自己的资源和清单,允许命名空间不同,我可以根据版本交换不同的字符串、可绘制对象等。

我尝试了 Ant 方法,但它似乎比 Library 项目方法更麻烦。希望对您有所帮助。

【讨论】:

  • 所以,我很难弄清楚如何做到这一点。我将主应用程序作为库,但现在当我尝试覆盖常量文件时,它会引发错误。我想这应该是预期的,因为这就是 Java 的工作方式,但是我不确定我应该如何做到这一点。是否需要在主项目中导入一个不存在的常量文件?
  • 您是说您已经在 java 类中定义了常量,并且您希望在每个项目中都有相同的类,并且每个版本的应用程序具有不同的值?命名空间冲突不允许这样做。我认为您需要考虑将您的值移出到资源中,以便它们可以存在于主/库项目中,但随后被依赖项目中的同名资源覆盖。查看上面 Android 文档链接中讨论资源如何在 lib 项目中合并的部分。
  • 我采用了这种方法,现在我正在努力从免费版顺利升级到付费版,因为我知道two applications cannot offer the same contentprovider
  • @mmeyer 这是否意味着我必须在 google play 上管理 2 个具有不同应用 ID 和包名称的不同应用?
猜你喜欢
  • 2019-01-06
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多