- 积分
- 29
- 实力分
- 点
- 金钱数
- 两
- 技术分
- 分
- 贡献分
- 分
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
作为一名有十年编程经验的程序员,在科技迅速发展的今天,程序究竟有什么用有时候我自己心里也没个底。
确实,中国软件的发展是迅速的,虽然目前还欠缺了许多因素,但前景却是非常不错的!
目前中国软件业涌现出一批高水准的移动游戏开发公司,已经为中国软件业带来了些许生机。
下面切入正题,
既然是介绍java游戏(特别的是大S平台上的midp1.0),首先应该来总览一下移动游戏的开发平台。
这里我只概括大家耳熟能详的产品,当然本文主要是介绍java手机平台,大家了解其他平台也是有好处的(如
Symbian专用的sis格式平台产品):
1.sis格式应用程序——Symbian系统专用程序
作为一个占有率达到60%的手机智能操作系统来说,Symbian系统和时下的主流应用需求是极其吻合的——
更好的图形界面,高扩展性等都是它成功的关键。
这里只简单介绍一下sis格式的应用程序。众所周知,sis格式是一个专为Symbian平台设计的zlib压缩包标准,
通过它可以实现诸如安装,卸载等类似于PC操作系统(windows,linux)一样的强扩展性。
一个sis文件可以使用C++ SDK或者VB生成,当然业界大都将C++作为开发工具来使用,完整的sis应用程序应该
包括所有程序资源和一个用来描述安装/卸载过程的PKG文件并通过makesis工具来压缩为sis文件包的,其最主
要的优点就是安装/卸载简便,运行速度快(相比java来说),而缺点也显而易见——因为可以无约束的调用使用本
地API使得病毒的滋生地蔓延到了手机端,即我们常说的手机病毒。
2.jar文件格式——java平台应用
java作为一个优秀的编程工具,其作用已经从仅仅一个面向对象可移植的开发工具上升到了一个行业理念的
级别,即跨平台特性。
作为手机端的java平台,真正的普及也只是近几年的事,还记得大一的时候我们几个同学抢着一部NOKIA的机
子玩java游戏那个兴奋的劲儿,一直到现在偶尔看到优秀的java游戏也会废寝忘食..
回顾历史,当java的平台地位在程序界根深蒂固之后,随着java的不断开发,sun公司(java平台的开发公司)将java
转化为三个版本,即J2SE(Java 2 Standard Edition,标准版),J2EE(Java 2 Enterprise Edition,企业版,当然,目前被sun叫做
JEE,都是一回事),和J2ME(Java 2 Micro Edition,微型版)。
本人是作为一名J2EE程序员(或者应该说架构师)开始接触Java的,可能受手机java的影响才兼学J2ME版本。
J2ME概述
曾经看到大S论坛中有那么一个补丁,就是midp2.0的运行补丁,起初真以为有那么某某个强人将midp2.0平台完
全了移植过来,后来才明白原来只是一个换汤不换药的摆设(汗一个..)。
这里介绍一下J2ME的版本问题,首先,我们要了解一下移动平台的局限性:
1).屏幕分辨率——通常移动平台只拥有非常低的屏幕分辨率(x55的我就不说了,连128*128都达不到);
2).有限的CPU频率——移动平台的CPU频率通常都非常低,仅仅处理手机平台固件信息已经很难了,更别说运
行大性能要求量的数据处理;
3).有限的电力——这里假设我们的平台处理能力足够,但是另一个不可忽视的缺点却是电量的问题。
综上所述,J2ME将要解决的问题很多,例如如何实现在有限的条件下实现尽可能好的用户体验。
在此,J2ME提供了一个叫做CLDC的解决方案,即连接限制设备配置(Connected Limited Device Configuration),通过
它的约定可以实现在平台的性能之内开发应用程序的要求,当然这是远远不够的,CLDC只是解决了一个笼统的,
片面的约束定义,其规定的设备包括从PocketPC、电视机顶盒一直到手机等性能差异非常之大的所有“移动设
备”。
那么,如何平衡这些设备间的不协调呢?
针对手机平台的解决方案就是MIDP(Mobile Information Device Profile,移动信息设备配置文件)——它是CLDC的
补充说明和扩展,规定了所有手机平台上应当遵循的开发标准。
目前MIDP分为三个版本:
·MIDP 1.0 ——即大S上的版本,有机油反映为什么大S不是2.0版本,据本人猜测当初西门子公司没有使用M
IDP 2.0版本的主要原因一方面是是为了保持和QD等的软件兼容性,另一方面也是因为在Symbian 1st版本系
统上集成MIDP2.0存在很大的技术难度。
·MIDP 2.0 ——X65/X75等等机子上的版本,也包括大部分主流的手机游戏java平台和1.0最大的区别就是增
加了几个包使游戏性加强;
·MIDP 3.0 ——针对目前比较高端的java游戏平台。
MIDP平台的优点:
1.平台无关性
实现了MIDP标准的java程序(学名应该叫做Midlet)也实现了sun所承诺的"Write once, run
anywhere"(一次编译,到处运行),真正的java程序在编写之后应该可以在同种类机子上都完美运行,如我在
M65机子上写的东西到NOKIA上也能使用,等等..
2.安全性
和sis文件最大的区别就是java的安全性,这也是为什么我先介绍sis的原因,上面说过,sis可以调用本
地API,使病毒可以通过蓝牙来传播;但是,Sun公司在最初就已经为Java提供了一个安全策略,我们称之为Sa-
nd Box(沙箱),当然这里涉及到Java虚拟机的工作原理(为了广大机油的脑袋着想,我只介绍一下基本安全
策略,对内部运行机制感兴趣的话可以跟帖我会详细讲解的):
java的安全机制可以实现的方面:
(1).本地资源访问受限
一个Midlet被创建后,所访问的资源被仅仅限制在一个称之为包(package)的jar文件中,即所
访问的API必须是Java虚拟机自带的、安全的java API而不能访问本地API,两者的结合使Java的安全
机制得到完善和保证。
(2).严格的控制机制
同样的,一个病毒程序的另外一种破坏症状就是不断的吞噬内存,直到手机资源耗光,通过虚
拟机,也可以很好的控制这一点,虚拟机本身提供了错误捕捉机制,在进程试图做破坏动作(不断创建
对象)时可以抛出(throw)异常(EXception)并且立即中断当前运行程序。
(3).自动的垃圾回收
在我们运行应用程序的时候,java虚拟机要通过不断创建对象,载入图形,音频等来满足程序要求的,
如果创建的对象不被清理,那么在正常运行一个大应用程序的时候也有可能发生第2点所述问题,导致
非法退出,在这里java虚拟机再一次提供了一个自动的垃圾收集机制,它可以将当前已经不再使用的
废对象从内存中清理掉,从而使应用程序正常运行。
3.解释性
这一个不知道算优点还是缺点,因为Java本身是通过虚拟机解释字节码来实现平台无关性和安全性的,
和sis格式相对比,速度慢了许多,这也是大多机油对java程序反感的主要原因,但是既然我们获得了安全
性的同时,应该考虑到要牺牲某些,也是没办法的。
小结
在此本人只是凭借自己的经验为大家阐明一些基础的,必要的MIDP方面知识,以后的文章中会涉及到更多,
如游戏源码分析,甚至游戏移植等,敬请期待!
[mobile.0110.cn会员tym1193原创]转帖请注明出处,谢谢!
再次声明,大S上的MIDP版本是1.0,根据平台依赖性,将MIDP2.0移植到大S上几乎是不可能的,除非重写系统,这涉及到了手机的嵌入式开发,已经达到了手机生产厂商的级别,请各机油牢记! |
评分
-
查看全部评分
|