2010-10-08 49 views
14

我们有一个桌面/网络Java应用程序,也正在进入Android开发。跨平台的Java? Android和桌面

理想情况下,我们希望在桌面和Android上运行一个应用程序。

从我们所知道的,在android上运行普通java应用程序并不是很有可能。但想知道它是否能以另一种方式做到这一点?也就是说,在桌面上轻松运行android应用程序(无需用户安装sdk或android模拟器)?

在一个知识界,我们希望为这两个平台提供一个应用程序。实际上,虽然看起来我们将不得不拥有两个前端的应用程序?

回答

18

基本上你会把你的应用分成至少三个项目......一个用于Android特定的东西的Android项目,一个用于桌面特定的东西的桌面Java项目,然后是一个用于常见功能的Java库项目大部分的实际工作都应该完成)。然后,您可以在Android和桌面项目中重复使用该库项目。

Android环境中有什么不同,所以您需要密切关注,但有了一些好的设计,您不应该在项目之间共享相当多的代码。

祝你好运。

1

你从哪里听说过这个消息?

Android的主要开发语言是Java,尽管他们使用Dalvik VM而不是Java VM。您需要重新编译.java代码,并且有一些Java库的某些部分在Android中不可用,反之亦然,您显然需要编写一个单独的GUI前端;但就是这样,您可以在两个平台上运行相同的代码库。

0

你是正确的,你将无法把你的标准类文件,并让他们在Android上运行。由dalvik vm生成的字节码与从jvm生成的字节码不同。然而,你的许多代码都是可重用的,而且设计良好的话你可以大大减少这个问题。

0

在智能手机和桌面系统上使用相同的GUI并不是一个好主意。您需要完全使用其他使用概念。对于你的商业逻辑来说,像cjstehno这样的3个项目的分裂可能是一个好主意。

+3

android!=智能手机。有许多运行Android的WVGA或更高分辨率的10英寸平板电脑,因此在该分辨率下使用触摸屏界面并且希望它在多触摸平台(Android和桌面Java)上运行并不是一个好主意。 – 2010-11-18 19:06:36

0

您可以将您的任务分解为两个项目。一个是用于商业的东西,除了与用户交互之外,你应该处理所有的工作。另一个是与用户交互并显示数据。后一部分理想情况下应该用HTML5编写,这样很多客户端都可以完美地看到gui,并且不需要为不同的客户端平台编写不同的代码。

1

我尝试了以下方法:编写一个包装库桌面,公开与android.graphics包相同的类,但在底层使用SWT。

我已经把粗,快速和肮脏的原型来演示方法: https://github.com/davidair/android-swt-demo

它允许编写一次UI代码(在我的例子,自定义视图),并对其进行编译两次为两个不同的平台。不知道这个想法可以推多远,但...

0

有一些用于GUI的跨平台工具。例如,Codename,似乎得到很好的支持,并且是开源的。