我們有一個桌面/網絡Java應用程序,也正在進入Android開發。跨平臺的Java? Android和桌面
理想情況下,我們希望在桌面和Android上運行一個應用程序。
從我們所知道的,在android上運行普通java應用程序並不是很有可能。但想知道它是否能以另一種方式做到這一點?也就是說,在桌面上輕鬆運行android應用程序(無需用戶安裝sdk或android模擬器)?
在一個知識界,我們希望爲這兩個平臺提供一個應用程序。實際上,雖然看起來我們將不得不擁有兩個前端的應用程序?
我們有一個桌面/網絡Java應用程序,也正在進入Android開發。跨平臺的Java? Android和桌面
理想情況下,我們希望在桌面和Android上運行一個應用程序。
從我們所知道的,在android上運行普通java應用程序並不是很有可能。但想知道它是否能以另一種方式做到這一點?也就是說,在桌面上輕鬆運行android應用程序(無需用戶安裝sdk或android模擬器)?
在一個知識界,我們希望爲這兩個平臺提供一個應用程序。實際上,雖然看起來我們將不得不擁有兩個前端的應用程序?
基本上你會把你的應用分成至少三個項目......一個用於Android特定的東西的Android項目,一個用於桌面特定的東西的桌面Java項目,然後是一個用於常見功能的Java庫項目大部分的實際工作都應該完成)。然後,您可以在Android和桌面項目中重複使用該庫項目。
Android環境中有什麼不同,所以您需要密切關注,但有了一些好的設計,您不應該在項目之間共享相當多的代碼。
祝你好運。
你從哪裏聽說過這個消息?
Android的主要開發語言是Java,儘管他們使用Dalvik VM而不是Java VM。您需要重新編譯.java代碼,並且有一些Java庫的某些部分在Android中不可用,反之亦然,您顯然需要編寫一個單獨的GUI前端;但就是這樣,您可以在兩個平臺上運行相同的代碼庫。
你是正確的,你將無法把你的標準類文件,並讓他們在Android上運行。由dalvik vm生成的字節碼與從jvm生成的字節碼不同。然而,你的許多代碼都是可重用的,而且設計良好的話你可以大大減少這個問題。
在智能手機和桌面系統上使用相同的GUI並不是一個好主意。您需要完全使用其他使用概念。對於你的商業邏輯來說,像cjstehno這樣的3個項目的分裂可能是一個好主意。
查看libgdx,它可能就是你正在尋找的。 http://code.google.com/p/libgdx/
您可以將您的任務分解爲兩個項目。一個是用於商業的東西,除了與用戶交互之外,你應該處理所有的工作。另一個是與用戶交互並顯示數據。後一部分理想情況下應該用HTML5編寫,這樣很多客戶端都可以完美地看到gui,並且不需要爲不同的客戶端平臺編寫不同的代碼。
我嘗試了以下方法:編寫一個包裝庫桌面,公開與android.graphics包相同的類,但在底層使用SWT。
我已經把粗,快速和骯髒的原型來演示方法: https://github.com/davidair/android-swt-demo
它允許編寫一次UI代碼(在我的例子,自定義視圖),並對其進行編譯兩次爲兩個不同的平臺。不知道這個想法可以推多遠,但...
有一些用於GUI的跨平臺工具。例如,Codename,似乎得到很好的支持,並且是開源的。
android!=智能手機。有許多運行Android的WVGA或更高分辨率的10英寸平板電腦,因此在該分辨率下使用觸摸屏界面並且希望它在多觸摸平臺(Android和桌面Java)上運行並不是一個好主意。 – 2010-11-18 19:06:36