5

我知道关于免费/付费版本的多个 Android 版本存在很多问题,但这可能会有所不同。

我的应用目前使用 AdMob 进行广告宣传,它已在 Android Market 和 Samsung App Store 上发布。不幸的是,三星商店将来会要求每个人都迁移到自己的广告网络,三星 AdHub。AdMob 和 AdHub 都有自己的库和 SDK。

我正在寻找一种解决方案来构建 2 个不同的版本,一个包括 AdMob,另一个包括 AdHub(以及所有必要的代码)。当需要发布新版本时,我有什么解决方案可以轻松构建 2 个版本而没有太多麻烦?

许多解决方案建议将主项目移动到库项目中,然后构建包括库项目(基础项目)的其他 2 个应用程序。但我不太喜欢这种解决方案(如果可能,我更喜欢将我的应用程序保留在一个项目中),我正在尝试寻找替代方案,然后决定哪一个更适合我的需求。

4

4 回答 4

1

我认为您应该使用策略设计模式在您的代码中实现这一点。它非常适合,可以在您喜欢的任何触发器上切换(即使在运行时)。如果您为每个 jar 文件创建一个外观,您将能够在构建时更改依赖项,并拥有相同的源代码。

此方法的其他选项只是在您的应用程序中进行一些配置,以确定使用哪个库。

于 2012-01-06T16:15:19.283 回答
1

可以在这里找到一些有趣的解决方案:

https://groups.google.com/d/topic/android-developers/8pRugcnzR_E/discussion

于 2012-08-18T22:10:45.753 回答
1

现在要走的路是使用 Android Studio 并为每个应用程序使用不同的 Gradle 风格。因此,如果您修复了核心功能,您可以快速为每个应用商店构建自己的广告网络。

于 2014-10-25T11:17:53.907 回答
0

图书馆项目是要走的路。创建一个基础项目,在其中实现所有通用内容,然后创建两个单独的项目,将通用项目用作“库”。然后只需实现使应用程序行为不同所需的其余部分。

于 2012-01-06T16:16:12.493 回答