2

我们经常会看到两个版本的 Android 应用程序:付费版本和免费版本。我还在开发一个想要发布两个版本的应用程序。做这个的最好方式是什么?在我看来,创建两个项目并在其间复制文件似乎不是最好的方法。

4

5 回答 5

6

使用Library Project,正如官方开发指南所建议的那样:

如果您拥有多个 Android 项目共有的源代码和资源,您可以将它们移动到库项目中,以便更轻松地跨应用程序和版本进行维护。以下是您可以使用库项目的一些常见场景:

  • 如果您正在开发使用某些相同组件的多个相关应用程序,您可以将冗余组件从它们各自的应用程序项目中移出,并在库项目中创建一组可重复使用的相同组件。

  • 如果您正在创建一个同时存在免费和付费版本的应用程序。您将两个版本共有的应用程序部分移动到库项目中。两个依赖项目,具有不同的包名称,将引用库项目并仅提供两个应用程序版本之间的差异。

于 2012-06-17T23:55:31.173 回答
3

更新:这种方法实际上只适用于用 Eclipse 编译,因为 Android Studio 支持可以实现这一点的构建风格。


虽然@yorkw 和@Nate 的答案都很好,但由于其简单性,这是我使用的方法。来自文章:

  • com.example.myapp - Android 项目库 - 这是我的整个应用程序所在的位置。FULL 和 LITE 版本的所有功能。
  • com.example.myapp.full - Android 应用程序项目 - 这是一个外壳,其中包含仅完整版所需的图形和资源。基本上它是一个超轻的外壳。
  • com.example.myapp.lite - Android 应用程序项目 - 这是另一个 shell,只包含 lite 版本所需的图形和资源。同样,它是一个超轻的外壳。

我还在应用程序启动时设置的库类中保留了一个静态变量IS_PRO。这应该只用于通知、警报等(例如要求用户升级到专业版)。

但是,这种方法有一个缺点:在库或其资源被修改时,您必须随时清理和重建。还请务必阅读这篇关于在项目和图书馆之间共享资源的帖子。

于 2012-06-18T00:25:35.207 回答
1

我将其称为开发中的 FORK。开始一个新的应用程序开发,但让您的通用代码来自一个通用文件位置。对分叉的代码进行免费的编辑,并尽最大努力使该代码完全独立。

我实际上是在基于 iPhone 的应用程序上做到这一点的,我有一个免费版本和 2 个不同的付费版本(仅限单人游戏和多人游戏)。我会在 Android 上做同样的事情。

于 2012-06-17T23:53:10.270 回答
1

例如,你可以使用 git。

创建分支“app_with_ads”,master 将是您的“付费”版本。在 master 中开发并定期合并到另一个。

在发布之前,您可能必须更改应用程序包或 Android\Manifest.xml 中的其他内容

于 2012-06-17T23:57:37.033 回答
1

这是一个关于这样做的小博客教程。

基本上是构建同一应用程序的完整版和精简版的方法,使用库项目来完成两个版本之间的代码重用。

于 2012-06-18T00:12:42.460 回答