我正在为移动设备开发应用程序。我从未为OSGi开发过,现在我正在考虑开始使用它。
我已经阅读了很多关于在手机上使用OSGi的内容,据说可以在J2ME,Symbian,Windows Mobile,Android上运行......但对我来说,似乎没有人在那里使用它。
我真的想利用OSGi的许多好处,但我知道我可以不用它。我不想排除那些无法在手机上使用OSGi或者必须经历复杂的设置过程的用户,让他们的手机为OSGi做好准备。
而我无法相信大多数便宜的J2ME手机都可以运行像OSGi那样复杂的东西。不是说'1000美元的智能手机,而是关于你可以从中获得的消费者设备。索尼爱立信100美元(或公平200美元)。
移动OSGi现在是一个真正的替代品,还是只是一个很好的视角以供将来使用?
修改 到目前为止,只有一个答案,它表明我们远离使用移动OSGi。但对我来说,一个答案是很少有人做出重要的决定,所以我希望赏金会吸引更多的读者。
如果没有更多答案到达,那么这表明没有人有移动OSGi的经验,然后我会得出结论我不想成为第一个探索它的人。通常情况下,我喜欢尝试新技术,但这次选择错误的马是至关重要的。
答案 0 :(得分:3)
你可能没有得到答案的原因可能是因为OSGi Mobile还没有为现实世界做好准备。更糟糕的是,由于这是在3年多前宣布的,并且它还没有赶上,似乎每个人都忘记了。这与MIDP 3.0类似,但每个人都在等待。
根据我的理解,OSGi承诺向移动设备提供CDC配置,允许他们使用像Swing这样的丰富框架。它还将解除MIDP配置文件施加的一些限制,最重要的是,它将允许用户通过无线下载和安装插件。
您现在需要考虑所有这些如何适应市场的现状。我们现在有一堆智能手机平台(iPhone,Windows Mobile,Symbian)。这些都是关键参与者,当然他们希望人们更喜欢原生应用而不是Java应用。事实上,苹果公司迄今为止已禁止使用iPhone或任何其他VM应用程序。但即使制造商还没有这样做,我也不认为客户本身更喜欢Java应用程序,而不是更丰富和强大的本地应用程序。 Java移动应用程序在几年前就有了一些意义,但现在它们似乎已成为过去。
当然有人会争辩说,Sun不会放弃移动Java,后者部署在数十亿台设备中并会做一些事情来复活它。那么他们实际上做了一些事情,这是JavaFX mobile。
所以在我看来,OSGi手机现在和将来都被排除在外。
答案 1 :(得分:3)
没有理由不应该这样做。 OSGi作为一个框架,bundle定义和依赖管理相对紧凑。那么重要的是OSGi标准定义的标准服务。但是,框架无需正常运行。
即使OSGi手机可能还没有,但没有理由不使用专门为小型设备设计的OSGi平台。一个例子是来自http://www.buglabs.net/的BUG。他们使用专门为小型设备(http://concierge.sourceforge.net/)设计的礼宾OSGi实现。
根据礼宾项目页面:“Concierge是一种优化的OSGi R3框架实现,文件占用空间约为80 kBytes。这使其成为移动或嵌入式设备的理想选择。”礼宾项目页面还提供了经过测试的平台列表,请参阅:http://concierge.sourceforge.net/platforms/index.html
在我看来,它现在已经是一种替代品。
答案 2 :(得分:0)
我们还远在那里,但我完全同意它需要被添加到各地的手机中。
未来的移动虚拟机至少会这样。
所以,现在:没办法。 未来:没有人能说出来,但是这样做很好,实际上很有道理。
答案 3 :(得分:0)
抱歉,我不知道这个论坛,所以我之前没有看到这个问题。移动OSGi是活生生的,并且已经由Sprint在其winmobile devies上发布,并且很快将用于sprint产品组合中的其他设备。 Sprint还为任何winmobile 6.0手机发布了Open eval版本,即使它不在sprint网络上。移动OSGi提供的功能在移动领域无处可用。您可以在OSGi中运行完全可管理的Java Web / App服务器(来javaone并查看演示)。并且可以创建富Internet应用程序,这些应用程序使用连接到设备上服务器的设备上的浏览器,我们称之为富网络模式。与android不同,它完全可以远程管理。并且完全打开,不像iPhone。它确实需要移动功能强大的Java CDC VM作为基础,因此它不会一直运行到低端设备,但在中段和上段都可以正常运行。它也是唯一可以在OS上运行的应用程序框架。它是完整的OSGi r4 meg堆栈,它将与glassfish,oracle服务器,websphere,泉源等中使用的OSGi相同的功能带到了移动设备上。这是唯一的移动解决方案,这不是一些独特的移动黑客,而是从玻璃屋服务器到云边缘的相同技术。看看developer.sprint.com/titan 乔恩博斯特罗姆 MobiNoir总裁咨询 移动Java之父
答案 4 :(得分:0)
坏消息:作为应用程序开发人员,您可以使用世界上没有任何技术来开发可在任何地方运行的应用程序,因此您要么将自己限制在一个平台上,要么多次重新编写应用程序。
好消息:OSGi已经可用于4个平台(Win Mobile,Android,Nokia,Brew),其他平台为您提供的覆盖范围?
关于为什么需要OSGi的精彩文章:http://www.pikesoft.com/blog/index.php?itemid=220
就市场渗透而言,是的,它尚未普遍部署,我理解对于应用程序开发人员(通常不希望将平台与他的应用程序一起部署),这是一个限制。然而,正如乔恩所说,大规模部署今年开始在美国起飞,其他人则纷纷效仿。坚持这项技术!