爱技术

 找回密码
 注册会员

QQ登录

只需一步,快速开始

微信登录

微信扫一扫,快速登录

搜索
查看: 881|回复: 18
收起左侧

[分享] [程序背后]Java游戏平台详解之一——概述

[复制链接]
发表于 2007-6-21 16:07:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册会员 微信登录

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上几乎是不可能的,除非重写系统,这涉及到了手机的嵌入式开发,已经达到了手机生产厂商的级别,请各机油牢记!

评分

参与人数 1实力分 +1 金钱数 +20 技术分 +2 收起 理由
segalgx + 1 + 20 + 2 奖励:感谢-你和大家分享心得!

查看全部评分

 楼主| 发表于 2007-6-21 16:08:42 | 显示全部楼层
写了那么多不容易,自己坐个沙发..
回复 支持 反对

使用道具 举报

发表于 2007-6-21 16:22:39 | 显示全部楼层
支持一个,程序高手啊~
论坛有兄弟java很厉害的~
faterpan 的趴趴歌词秀

[ 本帖最后由 segalgx 于 2007-6-21 16:34 编辑 ]
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-21 16:30:11 | 显示全部楼层
还好  编程好多年了  虽然一直的目标都是架构师那些分析类的职业  可最喜欢的还是编程

趴趴歌词秀可是好东西 我在X65混的时候最欣赏的就是这个了

[ 本帖最后由 tym1193 于 2007-6-21 16:38 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2007-6-21 16:40:13 | 显示全部楼层
支持原创,很早以前就想自己动手编个手机的java游戏,但是……呵呵
回复 支持 反对

使用道具 举报

发表于 2007-6-21 17:01:35 | 显示全部楼层
CLDC还有分版本的吗?看到有MIDP-2.0 CLDC-1.0/CLDC-1.1
回复 支持 反对

使用道具 举报

发表于 2007-6-21 17:06:05 | 显示全部楼层
学习,学习。再学习。
回复 支持 反对

使用道具 举报

发表于 2007-6-21 18:22:16 | 显示全部楼层
学习啊,不可多得的好东西
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-22 01:38:01 | 显示全部楼层

像我之前说过的,CLDC是一个最小级别的功能集合,它根据所有移动设备的内存大小和处理能力来决定这个集合的大小,涉及到编程语言的功能子集、虚拟机的功能子集、核心的API和一切硬件要求(如分辨率,处理器频率)等,CLDC小版本差异大都是关于性能方面的限制改进,比如1.0版规定的平台最小内存为160kb,16位处理器,低耗电能力,网络传输速率等等,CLDC2.0(这是我见过的)版本则提供一个更高的性能要求来适应更高端的手机平台。也就是说,我们不用操心,平台相关性,改不了的(总之是一个架子,和游戏性没本质联系的)


[ 本帖最后由 tym1193 于 2007-6-22 15:01 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2007-6-22 05:38:33 | 显示全部楼层
我也是搞这个的,同行~~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-22 15:01:28 | 显示全部楼层
幸会幸会..
回复 支持 反对

使用道具 举报

发表于 2007-6-22 16:53:10 | 显示全部楼层
学习了。。。
回复 支持 反对

使用道具 举报

发表于 2007-6-22 21:58:44 | 显示全部楼层
楼主,别的不说了,可以称得上资深了
将要做这个了~~~~~~~
以后有问题还望楼主指教~~~~~~~
回复 支持 反对

使用道具 举报

发表于 2007-6-22 22:54:45 | 显示全部楼层
还是希望能把一些Mid2.0的弄成1.0的,大s才能运行.....
回复 支持 反对

使用道具 举报

发表于 2007-6-23 11:21:32 | 显示全部楼层
想玩QQ游戏,但大S不能,楼主可以帮忙移植吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-23 12:38:21 | 显示全部楼层
原帖由 geliner 于 2007-6-22 22:54 发表
还是希望能把一些Mid2.0的弄成1.0的,大s才能运行.....

这个有想法  可以实现的 不过2.0和1.0有好多差异 移植游戏其实和制作游戏没太大区别了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-23 12:39:40 | 显示全部楼层
原帖由 sixday 于 2007-6-22 21:58 发表
楼主,别的不说了,可以称得上资深了
将要做这个了~~~~~~~
以后有问题还望楼主指教~~~~~~~

有问题的话大家可以一起交流 说不定以后有机会去唐图那类公司工作嘞..
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-23 12:41:45 | 显示全部楼层
原帖由 qimaguohai 于 2007-6-23 11:21 发表
想玩QQ游戏,但大S不能,楼主可以帮忙移植吗?

因为最近都一直比较忙(经常在帮人家编程) 我可以抽空帮忙的。
回复 支持 反对

使用道具 举报

发表于 2007-7-5 08:57:28 | 显示全部楼层
太高深不懂。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员 微信登录

本版积分规则

小黑屋|Archiver|手机版|爱技术 ( 沪ICP备08115260号-3 )

GMT+8, 2024-5-22 03:50

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表