打印

有一个关于java游戏的问题要问jinni

不好意思,这是一个关于手机java游戏的问题,本来不该在这个区贴的,可是你不去wap区。是myhyli叫我来找你的。你看完后可将这个帖子转到wap区。
手机的java游戏不是都是在j2ME下开发的吗?为什么还有手机的区别,为什么nokia的手机游戏不能在三星上玩?
如果方便的话请你留个联系方式,谢谢
sorry,最近忙着学校的事情,很少来论坛

虽说都叫Java手机游戏,但也有着不同的实现标准
例如日本的DoCoMo就不是使用J2ME规范
而在国内,中国移动的百宝箱采用的是标准的J2ME,
联通则推出了自己的UniJava规范,
我没有开发UniJava程序的经验,无法详细解释,
你可以去查阅相关资料

即便都使用标准的J2ME,也存在着不兼容的问题,为什么呢?
因为各个厂商对设备的实现有很多差异,J2ME为了做到跨平台性
只提供了一个“可预见的最大公分母”,即由J2ME专家组认定所有手机上都应该具备的功能
可想而知,这些功能一定是十分基础的,为了弥补这一不足
又在这个基础上提出了很多可选包(OP),它包含了一些部分手机具备的能力
例如对于篮牙的支持等等,如果你的手机程序使用了某些可选包
那么它就无法在没有该可选包支持的手机上正常运行

此外,手机厂商针对不同的手机也推出了自己的扩展包,用来提供一些底层功能
例如Nokia的UI API,索爱的SE API,
尤其是Motorola,提供了大量的扩展API,极大丰富的手机的功能
且提供了Java一些系统级访问的能力
但是,显而易见,使用这些API会让你开发的程序无法在不同厂商的手机上运行

如果我开发的程序既没有使用J2ME OP,也没有用厂商提供的扩展API
就可以做到跨平台了吗?也不是。
刚才提到J2ME提供了一个基础,但这个"基础"也有不同的版本
分别是CLDC1.0和CLDC1.1,MIDP1.0和MIDP2.0
它们是无法向上兼容的,这意味着MIDP2.0开发的程序无法在只支持MIDP1.0的手机上运行

除了上面种种,我还没有说到手机屏幕、内存等硬件基础上的差异性
你想想,一个176*208的手机定制的游戏,它该怎么运行在128*128分辨率的手机上?
(尽管J2ME专家组正在制定SVG规范,但我想它的作用也很有限)

所以,Sun承诺的CORA在移动领域还远远没有达到
(所以现在Sun已经把口号改成了“Java无处不在”)
当然,我认为这不完全是Sun的问题
比如手机内存限制,我们在开发桌面或企业级应用程序时
只会提出一个建议内存大小,如果用户的内存不够,可以去扩充
然而手机不同,它的内存从出厂就定死了
现在Java手机的堆内存从200K到3M甚至是动态分配
即使J2ME规范制定的再完美,也无法让一个需要300K内存的程序运行在只有200K内存的设备上。

但是,我想J2ME仍然是可以信赖的,毕竟它已经开了个好头
目前支持Java的手机有几亿部,尽管支持程度参差不齐
但至少它们使用同一种语言
比起在Symbian和Mobile操作系统上开发的差异性来说
Java仍然是跨平台的首选工具
(对于将来广泛应用的手机网络应用程序,跨平台的重要性可想而知,毕竟手机操作系统不是哪一家的天下,就算是,也不会是M$

一口气写了这么多,希望对你有所帮助

把无知当武器?
http://byjog.com/blog重新开张啦
真是非常感谢,浪费了你不少的时间,写得很好
你是用什么软件开发的呢?用什么模拟器?
我只找到了nokia的模拟器
开发IDE可以用JBuilder或Eclipse
不过最初的时候最好用Ant,否则难以了解真正的开发细节(IDE帮你做了)

模拟器可以去各大手机厂商的门户网站下载
通常都有一个Developer园地~

另外就是Sun官方的WTK,目前版本是2.2Beta,去java.sun.com下载

如果真的要学的话,最好买一部真机做测试
因为很多模拟器上运行正常的程序,在手机上也可能出问题
把无知当武器?
http://byjog.com/blog重新开张啦

TOP

还在为头像烦恼?还在为不能关注好友动态烦忧?快来蓝色理想家园吧!