2

我们正在尝试将现有的 java 应用程序移植到 android,并想知道管理源代码的最佳实践是什么。

我们已经将我们的大项目分解为几个不可知的项目,但我们仍然有一个大的单体项目。对于那些小框架,我们不应该做太多工作,但大框架需要一些重写。

目前,一位开发人员正在将我们的应用程序移植到 Android,但其他开发人员继续在非 Android 项目上开发新功能。移植完成后,我们将不得不将所有修改重新合并到 android 代码库中,这将是一个真正的痛苦。所以我的问题是:我们应该如何管理我们的代码源?我们应该为每个平台创建一个特定的存储库吗?我们是否应该将两个代码库保留在同一个存储库中但指向不同的分支以便更容易合并?

4

2 回答 2

3

这可能不是源管理问题。尝试创建一个抽象的移植层。它应该抽象出使您的应用程序运行所需的所有 API。然后在 SWT 下使用 SWT API 实现该移植层,在 Android 下使用 Android API 实现相同的层。

可以想象:

public interface ISoundEngine {
void startSound();
void stopSoud();
}

应用程序的其余部分使用 startSound/stopSound 来操作引擎。

那么在windows下你实现

public WindowsSoundEngine implements ISoundEngine {
...
}

在你实现的 Android 下

public AndroidSoundEngine implements ISoundEngine {
...
}

在每种情况下都使用特定于 Windows 和特定于 Android 的低级 API。

于 2012-11-26T08:27:34.467 回答
0

我看到的唯一好的解决方案是将所有常用代码移至库,您可以独立开发。然后为 Swing UI、Android UI 等创建项目。如果您的逻辑仍然需要一些特定于平台的服务(用于数据存储、通知,即),请使用 Alex 的方法在客户端调用公共库时传递正确的库。

于 2012-11-26T09:08:26.923 回答