2012-06-21 46 views
0

有很多跨平臺庫,我有點失落,得到一個非常基本的java問題的答案。開發一個Java跨平臺庫(手機和網絡)

我有一個java庫,在Android上運行良好。它不使用任何Android特定的功能,也建立在標準的Java SDK上。該庫使用套接字(普通簡單套接字,ServerSocket類架構)在庫和託管服務器(可能位於ec2或某個虛擬公共服務器上)之間進行通信。

現在我的問題是,其他開發人員可以將我的java庫(使用java sdk構建)導入到使用HTML/CSS用戶界面的應用程序中,將所有這些打包到iPhone的移動應用程序中(使用本機iPhone打包,和一個WebView啓動)?我是否也可以發佈這個庫,以便其他軟件開發人員可以構建Web應用程序以在桌面上工作並跨瀏覽器?

在stackoverflow上的一些問題接近我正在尋找,但不是那裏。 Developing Mobile Apps for Multiple Platforms (without a cross-platform framework!)

  • 將Web服務器能夠使用我的圖書館連接到使用套接字服務器?
  • 並且連接到此Web服務器的每個客戶端是否都會創建我的庫的新實例?

回答

1

如果你的庫沒有在Android或任何其他庫上使用任何依賴項,另一個開發人員可以在任何他們想要的地方使用它。儘管請記住像EC2這樣的平臺可能有使用通信的首選方式。 (我不是EC2的專家,所以你必須看看他們使用什麼。)

所以我想最好是抽象出那個套接字的功能。

我不認爲你可以在iPhone中使用Java庫。 iOS使用條款清楚地表明,除了SDK中給出的設備和Safari中的webkit javaScript引擎之外,您不能在設備上使用編譯器或解釋器。所以你的Java代碼無法在iPhone上運行(沒有牢獄之災)。

我不明白關於webView的問題。您的意思是導航到由您的圖書館支持的網站嗎?如果是,那麼只要你把它放在Safari的邊界。 (無閃光燈,無Java小程序.etc。)

將Web服務器能夠使用我的圖書館連接到使用套接字服務器 ?

大部分是的。但正如我所說的,該平臺可能不允許原始連接,因此將其抽象出來很好。

並且每個連接到此Web服務器的客戶端都會創建一個新的我的庫的 實例嗎?

這取決於您的圖書館及其公共API的設計。

希望這會有所幫助。

+0

謝謝,我向前邁了一小步。是的,我已經把所有套接字的東西都抽象出來,比如AddUserDetails(name,address,phone_number)。現在,是否有可能使servlet進行AddUserDetails調用,該調用是從JSP調用的,該調用的int int是從html調用的?這樣我可以有一個html ui,點擊一個按鈕,發送名稱,地址和電話號碼到jsp-> servlet-> mylibrary-> socket?如果這在技術上是可行的,我已準備好發佈我的產品了,今天我將派對:)?希望我聽起來不太傻。 – Siddharth

+1

是的。這很有可能。雖然我不能保證不知道你的環境。只要你的圖書館支持插入網絡的一部分,它應該是很好的去。即使它失敗了,插入一個不同的實現。我認爲這就是'新'GoogleAPI客戶端庫的工作原理。 '寫入一次無處不在'它是。 – Madushan

+0

剛剛開發好你好世界。一旦上傳,我會發布hello世界的鏈接。 – Siddharth