跨平台Java?Android和桌面

18

我们有一个桌面/Web Java 应用程序,并且也在进入 Android 开发。

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

据我们所知,普通的Java应用程序无法在Android上运行。但不知道是否可以反过来呢?也就是说,在桌面上轻松地运行Android应用程序(而无需用户安装SDK或Android模拟器)。

在完美的世界中,我们希望只有一个应用程序适用于两个平台。但实际上,似乎我们将不得不使用具有两个前端的一个应用程序?

8个回答

19

基本上,你需要将你的应用程序分成至少三个项目...一个Android项目专门处理Android相关的内容,一个桌面Java项目专门处理桌面特定的内容,然后还有一个Java库项目,用于处理共同的功能(在这里大部分的实际工作都应该完成)。然后你可以在Android和桌面项目中重复使用库项目。

在Android环境中有一些可用性方面的差异,因此你需要留意这一点,但是凭借一些良好的设计,你应该可以在这些项目之间分享相当多的代码而不会遇到太多问题。

祝你好运。


5

1
你从哪里听说的?
Android 的主要开发语言是 Java,尽管他们使用 Dalvik VM 而不是 Java VM。你需要重新编译你的 .java 代码,并且有些 Java 库的部分在 Android 上不可用,反之亦然,你显然需要编写一个单独的 GUI 前端;但这就是它了,你可以拥有基本相同的代码库在两个平台上运行。

1
我尝试了以下方法:编写一个桌面浏览器的包装库,暴露与android.graphics包相同的类,但在底层使用SWT。
我组合了一个简陋的、快速而肮脏的原型来演示这种方法: https://github.com/davidair/android-swt-demo 它允许将UI代码编写一次(在我的例子中是自定义视图),然后为两个不同的平台编译两次。不确定这个想法能推到多远...

0

有一些跨平台的GUI工具可供使用。例如,Codename,看起来得到了很好的支持,并且是开源的。


0

你说得对,你不能直接拿你的标准类文件在安卓上运行。Dalvik虚拟机生成的字节码与JVM生成的字节码是不同的。然而,你的大部分代码仍然可以重用,并且通过良好的设计,你可以大大减少这个问题。


0

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


3
安卓不等于智能手机。有很多运行安卓系统且分辨率为WVGA或更高的10英寸平板电脑,因此在该分辨率上拥有触摸屏界面并希望它在多个支持触摸的平台(安卓和桌面Java)上运行并不一定是个坏主意。 - Ben Voigt

0

你可以将任务分成两个项目。一个是业务相关的,其中你应该处理除了与用户交互之外的所有工作。另一个是与用户交互和显示数据的部分。后者最好准备使用HTML5,这样许多客户端都可以无缝地看到GUI,并且你不需要为不同的客户端平台编写不同的代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接