2010-10-08 93 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,似乎得到很好的支持,並且是開源的。