我正在开发一个应用程序,该应用程序将提供给许多不同的潜在客户。我们的想法是创建一个核心应用程序,它具有所有功能和活动,但并不孤立。
另一个项目将是一个包装器项目,它将具有一个配置JSON字符串和最终apk将具有的样式。没有功能。
核心应用程序将是包装器应用程序中的依赖项。
这是一个由其他人在Eclipse中开发的现有应用程序,其设计与描述完全相同。我应该在Android Studio中再次构建它,并使用最新趋势对UI进行现代化。
我的问题是:核心应用应该是什么?它应该是一个'图书馆'吗?一个模块?一个正常的应用项目可能?如果它是一个普通的应用程序,是否可以将它附加到包装应用程序,这也是一个没有活动的应用程序项目?
答案 0 :(得分:1)
我已经构建了两种类型的应用程序 - 共享和需要核心库的应用程序,但具有不同的UI实现和内置所有核心功能的应用程序,然后单独的应用程序修改"外观和感觉"核心应用程序。在这两种情况下,所有活动都在"核心" app和none都不在#34;包装器中#34;或帮助应用程序。
这里最大的问题是"依赖"在核心应用程序上。你想维护和推广核心应用程序吗?作为旗舰产品,而其他"应用程序"真的只是"主题"对于核心应用程序?或者您是否想要维护和营销一套应用程序,而不是真正拥有核心或旗舰应用程序?
如果您创建核心" app"作为一个图书馆,你必须记住图书馆项目有一些限制。例如,您不能使用" CASE"陈述如果它使用" R.java"资源,因为R.java
文件是在编译时构建的,并且case
语句不能在后续' R.java dependencies. (You can convert to
if-else`中很容易构建,但在大多数情况下。)您可能会发现转换具有您无法避免的限制并导致缺陷,但通常重新设计实现将避免任何此类问题。换句话说,你必须努力完成它,但你应该能够做到。
编辑:
如果您创建了一个项目库,那么您对该库所做的任何更改都将反映在"包装器"应用程序下次构建它们时。这很棒,因为它可以轻松更新所有应用程序" - 但回归测试很糟糕。换句话说,在对库进行任何更新之后,您可能需要测试每个应用程序(这很无聊),因为其中任何一个都可能存在异常。但是,严格遵守设计和编码有助于减少或消除这种情况。我刚刚发现实际测试每个应用程序是避免问题的唯一方法,除非"包装"应用程序非常简单且定义明确,这种情况非常罕见。
答案 1 :(得分:0)
我建议将大部分应用程序放入库项目中。然后原始应用程序和新应用程序将是依赖于库的新项目,并将定义自己的应用程序特定资源。