android - 共享大约 90% 源代码的多个 Android 应用程序怎么办?

标签 android

我有一个适用于一个国家/地区的公共(public)交通应用程序,我想为另一个国家/地区创建一个单独的应用程序。大多数代码将被共享,但我需要一些类具有不同的实现,例如 TransitProvider。

是否可以使用 Android Library Project 共享代码?我可以执行以下操作吗?

  1. 有 TransitProvider(扩展 AbstractTransitProvider) 在 图书馆项目。该类有未实现的方法。
  2. 在应用程序项目 > AndroidManifest.xml 中,我的包名称与库 list 中的包名称不同。我在这个项目中也有 TransitProvider,它与图书馆的 TransitProvider 在同一个包中。
  3. 当我在库项目代码中使用 TP 时,应用程序的实现。应使用项目(即应用程序项目的 TP 覆盖库的 TP)。

最佳答案

Is it possible to share code using Android Library Project?

是的。这是图书馆项目的主要目的。如果不需要 Android 资源,也可以使用在单独项目中创建的普通 JAR。

Can I do the following?

如果我正确理解你建议的步骤,你不能在两个地方定义相同的类(在同一个包中)。

你应该:

  1. 在库项目或 JAR 中定义 AbstractTransitProvider
  2. 可选择在库项目或 JAR 中拥有一个或多个 AbstractTransitProvider 的具体实现,以便直接重用
  3. 除了使用库项目或 JAR 提供的任何具体实现之外,使用库项目或 JAR 的应用还可以在自己的 Java 包中拥有自己的 AbstractTransitProvider 具体实现

关于android - 共享大约 90% 源代码的多个 Android 应用程序怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3987736/

相关文章:

java - 突然之间,我无法在 Android Studio 中更改任何字符串

Android chrome 数据保护程序 - 它是如何工作的

android - LeetCode 错误 : Warning : Classpath entry points to a non-existent location:

android - 部署 Android 应用程序 Qt 5.1

Android:谷歌地图 - 在多个点之间绘制路径

java - 转换为十进制格式时出错

java - 从共享首选项将数组传递到 ArrayAdapter。安卓

安卓.view.InflateException : Binary XML file line #3: Error inflating class <unknown>

android - Scroller 不显示其余的 listView 内容

android - 在没有麦克风的情况下在Android中录制音频流