2009-06-04 69 views
2

是否可以使用J2ME編寫移動應用程序,並且每當我們想要實現J2ME調用本機移動API所不提供的功能時? (就像.NET所做的一樣,只要你需要一些沒有提供的東西,你只需從.NET平臺調用Win32 API)。J2ME開發和本地API

回答

3

不,這不適用於Java ME。

+1

Java使用JNI調用本機代碼,但J2ME不支持這種方式。 – kgiannakakis 2009-06-04 11:53:54

2

只有排序。其實這是可能的,但不是直接的。您可以編寫一個本地服務器,該服務器在本地套接字上偵聽並從您的Java MIDlet發送請求。有人甚至發佈了一個框架來實現這個叫做MIDP-JNI(而不是真正的JNI)。顯然,解決方案的形式對你可以用它做什麼會施加一些限制,但它實際上並不是不可能的。

請注意,使用此方法可能會使您的應用程序更加複雜以進行調試。

3

儘管J2ME在J2ME中沒有正式支持,但J2ME的Symbian實現顯然使用了非常相似的東西。

由於大多數J2ME的API有一個相應的Symbian操作系統C++ API,什麼塞班做(很多)被開發2.

那和IBM J9虛擬機的新的模塊化架構之間適配層(從Series60第3版功能包2以後),在技術上可以向虛擬機添加新的API,而無需實際重新編譯大部分手機固件。

但是,第三方開發者根本不允許在沒有手機制造商的大量幫助的情況下進行。

環回套接字連接是人們最終實現的跨語言障礙傳輸數據的解決方案。但是,大規模部署並不是最簡單的任務,因爲您在技術上需要在設備上安裝2個應用程序。一旦你理解了Symbian J2ME實現的線程模型,你也會意識到它是如何醜陋和低效的。

當你遇到這樣的問題時,該學習Symbian OS C++並且做對了。