我们有一个桌面/Web Java 应用程序,并且也在进入 Android 开发。
理想情况下,我们希望有一个应用程序可以在桌面和Android上运行。
据我们所知,普通的Java应用程序无法在Android上运行。但不知道是否可以反过来呢?也就是说,在桌面上轻松地运行Android应用程序(而无需用户安装SDK或Android模拟器)。
在完美的世界中,我们希望只有一个应用程序适用于两个平台。但实际上,似乎我们将不得不使用具有两个前端的一个应用程序?
基本上,你需要将你的应用程序分成至少三个项目...一个Android项目专门处理Android相关的内容,一个桌面Java项目专门处理桌面特定的内容,然后还有一个Java库项目,用于处理共同的功能(在这里大部分的实际工作都应该完成)。然后你可以在Android和桌面项目中重复使用库项目。
在Android环境中有一些可用性方面的差异,因此你需要留意这一点,但是凭借一些良好的设计,你应该可以在这些项目之间分享相当多的代码而不会遇到太多问题。
祝你好运。
你说得对,你不能直接拿你的标准类文件在安卓上运行。Dalvik虚拟机生成的字节码与JVM生成的字节码是不同的。然而,你的大部分代码仍然可以重用,并且通过良好的设计,你可以大大减少这个问题。
在智能手机和桌面系统上使用相同的GUI并不是一个好主意。您需要使用完全不同的使用概念。对于您的业务逻辑,像cjstehno一样将其分为3个项目可能是一个好主意。
你可以将任务分成两个项目。一个是业务相关的,其中你应该处理除了与用户交互之外的所有工作。另一个是与用户交互和显示数据的部分。后者最好准备使用HTML5,这样许多客户端都可以无缝地看到GUI,并且你不需要为不同的客户端平台编写不同的代码。