J2ME开发和本机API

时间:2009-06-04 11:44:54

标签: java-me symbian

是否可以使用J2ME编写移动应用程序,并且只要我们想要实现J2ME调用本机移动API不提供的功能? (有点像.NET所做的,无论什么时候需要没有提供的东西,你只需从.NET平台调用Win32 API。)

4 个答案:

答案 0 :(得分:3)

没有。这对Java ME来说是不可能的。

答案 1 :(得分:3)

虽然J2ME中没有正式支持JNI,但J2ME的Symbian实现显然使用了非常相似的东西。

由于大多数J2ME API都有相应的Symbian OS C ++ API,因此Symbian所做的(很多)是在2之间开发适配层。

在它与IBM J9虚拟机的新模块化架构之间(从Series60第3版功能包2开始),技术上可以向虚拟机添加新API,而无需实际重新编译大多数手机固件

然而,如果没有手机制造商的大量帮助,第三方开发商根本不允许这样做。

环回套接字连接是人们为了跨语言障碍传输数据而精心实施的解决方案。但是,大规模部署并不是最简单的任务,因为您在技术上需要在设备上安装2个应用程序。一旦你理解了Symbian J2ME实现的线程模型,你就会意识到它是多么丑陋和低效。

当你遇到这种问题时,是时候学习Symbian OS C ++并做好了。

答案 2 :(得分:2)

只有那种。实际上它是可能的,但不是直接的。您可以编写侦听本地套接字的本机服务器,并从Java MIDlet向其发送请求。有人甚至发布了一个名为MIDP-JNI的框架(而不是真正的JNI)。显然,解决方案的形式对你可以用它做什么有一些限制,但实际上并不是不可能的。

请注意,使用此方法可能会使您的应用程序调试变得更加复杂。

答案 3 :(得分:1)

如果您特别关注诺基亚/ Symbian,那么APIBridge http://wiki.forum.nokia.com/index.php/J2ME_API_Bridge_Interface可能是一个解决方案。通常情况下,它是“本地套接字上的本机服务器”的“官方”版本。 APIBridge是“可扩展的”&你可以编写自己的'插件'来完成适合的“低级”任务。