基于 Android 个项目创建桌面应用程序

Creating desktop application based on Android project

我创建了一个 Android 应用程序,它通常针对平板电脑。它的主要业务逻辑是纯 java,它包含大约 10-15 个活动、SQLite 数据库、执行 HTTP 事务、将信息导出为不同格式等。 我的客户现在(突然之间)想要在 Windows 7 或 8 上拥有完全相同的应用程序 运行。 创建这样一个应用程序的最简单和最直接的方法是什么(我不考虑使用模拟器)? 我以前从未为 Java-应用程序创建过 GUI。

Gradle 个子项目

由于您可能已经在使用 gradle,您可以将您的业务模型与平台分离,将它们移动到另一个项目,您的 android 和桌面项目将依赖于该项目:

  --Main Project
    |-- core
    |-- android
    |-- desktop

https://docs.gradle.org/current/userguide/multi_project_builds.html

平台无关框架

如果您的应用正在使用像 retrofit 这样的框架,这些框架既适用于 Android 也适用于常见的 java 项目,您可以将其使用移至核心项目。

桌面项目的 GUI

This question 很好地涵盖了您可以从中选择的不同 GUI 框架。

保持你的 MVC

以这种方式解耦你的项目并不是一件容易的事。您需要仔细考虑您的核心项目将如何与其他项目交互(即一些内部 API)。基本上,您将继续使用 MVC 类架构,但现在您的 android 项目将成为一个视图,而您的桌面将成为另一个。


类似问题:java desktop and android application at the same time - shared packages


(有点题外话,但可能对你有帮助)

虽然多项目方法看起来像是对现有代码的一种很好的重用,但根据您当前项目的结构,它可能会变得更难。

另一种方法是使用类似 Electron with Polymer and/or AngularJS 的方法。 如果您熟悉网络技术,那么创建这样的桌面应用程序会容易很多。而且您还有一个优势:浏览器应用程序只是领先一步。 此外,Polymer 在您的桌面应用程序上保留 material 设计,使您的设计在平台之间更加一致,这可能很难使用原生 java 桌面框架实现。