java - 编写适用于桌面和 Android 的代码

标签 java android cross-platform

我正在用 Java 开发一个项目,该项目将来很可能会支持 Android。但据我所知,Android 具有与默认 Java 不同的类/API(例如,我不认为 android 具有所有 AWT 的东西)。所以我想知道的是,我如何编写我的代码,如果它在 Android 上运行,它将使用 android API,如果它在桌面上,它使用标准的 Java API。我研究过条件导入,但与 C++ 不同的是,它在 Java 中不存在。那么Java中是如何解决这种事情的。

这是我希望能够做的一个例子:

int[] i;
if(onAnroid)
{
    i = androidFoo.bar();
} else {
    i = javaFoo.bar();
}

编辑: 我想到的一件事是使用 Common 类,这样我就不会直接调用 API。但是我想弄清楚的是如何在编译器不提示这些类不存在的情况下调用它们不一定存在的那些类。

最佳答案

您可以创建与任何特定用户界面工具包无关的架构层。如果这些需要与用户界面交互,他们可以通过界面类型来实现。

在这些层之上,您可以使用不同的工具包创建多个表示层。

将软件移植到新的用户界面很常见。从一开始就将架构层分开可能花费很少。之后对整体进行梳理可能会很昂贵,有时会达到公司在经济上不可行的程度。无论移植需求是确定的、可能的还是未知的,尽早分离架构层都是一个很好的做法。

关于java - 编写适用于桌面和 Android 的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16699611/

相关文章:

android - 我想在 android 中获取 Twitter 关注者和关注列表但是获取 NullPointer

android - 接受自签名证书安全吗?

java - 将字节转换为位图

android - Flutter(Dart) 中方法的默认返回类型是什么?

c# - XAML 共享资源

java - 整个应用程序的静态方法内的连接静态变量的范围?

java - 输出差异 - Java

c# - 如何根据外部资源有条件地以 64 位或 32 位模式运行我的程序?

java - 排除外部依赖项中所需的库

java - [JAVA]如何创建排名系统并将其保存到.txt 文件?