Sul*_*han 12
问题提出2年后,我们现在可以说J2ME作为一个开发平台真的死了.
自从它首次出现以来我开发了J2ME,并且有很多原因导致平台从一开始就注定失败:
虚拟机实施中的错误每个制造商都实施了自己的虚拟机和API版本,并在几年内实现了改进.有些比其他人更成功,但我们可以说每个设备都有一些错误.从开发者的角度来看,一些非常流行的设备几乎无法使
自定义API MIDP 1平台几乎没有可用于实现游戏的实用库 - 没有声音,没有直接访问像素.制造商创建了自己的API(诺基亚推出了最好的API,后来实际上被三星设备采用).当MIDP 2来了,开发商已经在使用自定义的API和MIDP 2.0的集成和所有的新库(如声音MMAPI)过得很慢,再新的实现包含了很多错误.此外,官方API比原生API更抽象,因此有时性能更差.最后,开发人员需要支持本机API和新的MIDP2 API.
碎片地狱除了由原生API和不同设备上的官方API的不同支持造成的碎片之外,除了需要解决方法的许多实现错误之外,还有不同的屏幕尺寸,不同的声音格式支持,蓝牙库(需要用于多人游戏),键盘与触摸显示器,尺寸限制(例如,安装包装为60-150 kB,具体取决于设备).在2009年,我们有大约90个游戏版本来支持所有设备类.这确实增加了测试和支持的成本(同样,我们必须拥有许多设备来测试它们上的应用程序.随着许多新设备的发布,不再可能购买足够的新设备进行测试).您可能会问我们为什么不使用模拟器进行测试.模拟器的问题在于它们中的一些非常慢(每个应用程序部署需要完全重启,例如30秒到2分钟),有些基本上是具有皮肤的通用模拟器,因此它们不像真实设备那样.
低利润开发商销售J2ME应用程序的方式非常疯狂.您需要一个经销商,该经销商通常与世界各地的其他经销商签订合同,这些经销商与移动运营商签订了合同.您知道,大多数游戏都是通过移动运营商网站销售的,通过预付费计划或使用高级短信付费.从应用程序成本(可能从1美元到5美元),运营商占用了50%甚至更多.利润的另一部分是经销商.开发人员通常不到应用程序成本的10%.然而,真正打通分销网络进行销售,有设备的应用必须支持,因此开发商无法避免设备碎片,不得不支持所有的旧设备,太列表.
上述4个问题导致许多开发公司多年来结束,而分销商和运营商仍然赚了很多钱.该系统一直持续到苹果推出iOS,谷歌推出Android.虽然Android带有自己的碎片地狱,但它也带有自动系统更新,因此至少错误得到了缓慢修复.大多数J2ME游戏也可以轻松移植到Android.真正具有决定性的变化是iOS上的App Store和Android上的Play商店.而不是通过几个级别的分销商,花费90%的钱,通过商店销售应用程序,将给你70%是一个相当大的一步.开发应用程序再次获利,开发人员开始转向这两个平台.
J2ME世界试图反击一段时间 - 有Java Verified,它提供认证您的应用程序以处理设备类.不幸的是,这是昂贵的,我认为根本没有帮助减少碎片 - 这是需要验证的设备,而不是应用程序.
制造商也带来了他们自己的应用商店,例如诺基亚及其OVI商店,但为时已晚.
制造商慢慢意识到Android可以降低他们的开发费用 - 他们不再需要开发人员使用他们自己的本机固件,因此他们停止了战斗并采用了Android.这有两个结果 - 一个是J2ME的结束,因为Android上不需要J2ME,第二个是一些制造商的结束和新的增长.
我假设我们在这里谈论MIDP.
这取决于你对"死"的定义.
人们一直声称JavaME已经死了好几年了.然而,最近出售的一款流行的消息应用程序显示,其50%的用户使用的是JavaME客户端.
我认为JavaME肯定会死,因为没有新的设备(或者很少)支持JavaME.我不认为它已经死了,但它将在不久的将来.
诺基亚用他们的Asha设备做了最后的努力,引入了许多新的API.但它并没有为JavaME带来新生.
但JavaME也是其他的东西.例如,使用新的JavaME SDK,您可以创建蓝光光盘应用程序(BD-J).这也是JavaME.