免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 925 | 回复: 0
打印 上一主题 下一主题

J2ME手机游戏开发 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-10 10:03 |只看该作者 |倒序浏览

  首先了解一下相关内容:
   J2SE/J2EE/J2ME
  J2SE(JAVA2 Standart Edition)
JAVA2标准版 支持所有JAVA标准规范中所定义的核心类函数库和所有的JAVA基本类别。J2SE定位在客户端程序的应用上。

   J2EE(JAVA2 Enterprise Edition)
JAVA2企业版 在J2SE的基础上增加了企业内部扩展类函数库的支持,比如支持Servlet/JSP的javax.servletr.*和Enterprise Java Bean的javax.ejb.*的类函数库。J2EE定位在服务器端程序的应用上。

   J2ME(JAVA 2 Micro Edition)
JAVA2的微型版本 只支持JAVA标准规范中所定义的核心类函数库的子集。比如,J2ME CLDC的规范之中,只支持java.lang.*,java.io.*,以及java.util.*的类函数库。并加入了一些支持嵌入式系统的扩展类函数库,如:javax.meicroedition.io.*类函数库。但是并不支持所有的JAVA基本类。J2ME定位于嵌入式系统的应用上,掌上终端(PDA、手机)、电视机顶盒。
   
  SMART CARD JAVA
  智能卡JAVA 只支持核心类函数库中的java.lang.*。但有自己专用的扩展类函数库,如:javacard.*,javacardx.*。只支持boolean与byte两种JAVA基本类。定位在智能卡的应用上。
   
  KVM(K Virtual Machine)
  J2ME的虚拟机 用来执行Spotlet或者MIDlet。不同版本的JAVA有不同的虚拟机来运行Java Applet,Java Servlet或者Java Application。而且虚拟机不只SUN一家,比如IBM的J9 VM。
   
  配置(Configuration)
  Configuration是一个规范,它定义了基本的J2ME运行环境,包括虚拟机和一组源自J2SE的核心类子集。每一个Configuration都对应于一组具有类似能力的设备。例如,某一Configuration可能被定义为针对内存比较富裕而且有网络连接的嵌入设备,其虚拟机可能是一个完整的JVM,API可能是J2SE中API的一个比较大的子集;而另一个Configuration可能被定义为针对内存较少且只有简单网络连接的设备,其虚拟机可能是JVM的一个子集,其API可能为J2SE中API的一个最小子集再加上其他少量特定API。

   
  概要(Profile)
  Profile是建立在某个Configuration之上的特定API集合。一个Configuration只定义虚拟机和基本的API集合,不定义建立应用程序的细节。而Profile是对Configuration的扩展,提供基本Configuration所缺少的功能,包括应用程序生命周期、用户界面、网络连接、存储、安全等。一个Profile既可直接建立在Configuration上,也可建立在另一个Profile之上。

   
  可选包(Optional Package)
  为了在不改动Profile的前提下增加设备的功能,J2ME在Profile之外又提供了可选包,您可将它们看成Profile的扩展,每个可选包为某个或某些Profile增加特定的功能。当需要为某个Profile增加一个新的API时,你必须首先将它定义为可选包。如果随着时间的推移该可选包被广泛采用,它则可能成为某个或某些Profile的一部分。

   
  CLDC:
   Connected Limited Device Configuration 连接限制设备配置。配置的作用是决定环境所使用的JVM J2ME使用的是KVM  
   
  MIDP:
  Mobile Information Devices Profile 移动信息设备简表。J2ME有两种简表MIDP和KJava 手机上的开发使用的是MIDP。
   
  OTA(Over-the-Air Technology)空中下载技术:
  是通过移动通信(GSM或CDMA)的空中接口对SIM卡数据及应用进行远程管理的技术。空中接口可以采用WAP、GPRS、CDMA1X及短消息技术。OTA技术的应用,使得移动通信不仅可以提供语音和数据服务,而且还能提供新业务下载。这样,应用及内容服务商可以不受平台的局限,不断开发出更具个性化的贴近用户需求的服务,如信息点播、互动娱乐、位置服务以及银行交易等。通过OTA空中下载技术,手机用户只要进行简单操作,就可以按照个人喜好把网络所提供的各种业务菜单利用OTA机制下载到手机中,并且还可以根据自己的意愿定制具体业务。
   
  1G/2G/2.5G/3G
  1G(first generation)表示第一代移动通讯技术。如现在以淘汰的模拟移动网。
   2G(second generation)表示第二代移动通讯技术。代表为GSM。以数字语音传 输技术为核心。

   2.5G是基于2G与3G之间的过渡类型。代表为GPRS。比2G在速度、带宽上有所提高 。可使现有GSM网络轻易地实现与高速数据分组的简便接入。

   3G(third generation)表示第三代移动通讯技术。面向高速、宽带数据传输。 国际电信联盟(ITU)称其为IMT-2000(International Mobile Telecom- munication)。最高可提供2Mbp/s的数据传输速率。主流技术为CDMA技术代表有WCDMA(欧,日)、CDMA2000(美)和TD-SCDMA(中)。

   
  GSM
  全球移动通讯系统(Global system for Mobile communications)的英文缩写。2G的主流技术,数据速率为9.6kb/s。
   
  GPRS
  通用分组无线业务(General Packet Radio Service)的英文缩写。是一种基于GSM系统的无线分组交换技术。是2.5G的主流技术。理论最高数据速率为171.2kb/s 。
   
  CDMA(注:这里指3G的CDMA)
  (注:这里指3G的CDMA)码分多址的英文缩写,是目前公认的3G主流技术。目前存在3种3G的主流CDMA标准,分别是WCDMA、CDMA2000和TD-SCDMA。前两者分别由欧洲和美国提出,TD-SCDMA由中国提出(大唐电信),已被ITU和3GPP所接受。其中,WCDMA和CDMA2000是FDD模式,而TD-SCDMA是TDD模式(注:FDD-频分双工,需用两个频段进行收发;TDD-时分双工,采用同一个频段,但以不同的时隙进行。)
   
   WAP和WML  
  WAP是无线应用协议(Wireless Application Protocal)的英文缩写。它是无线互联网上的一系列协议的组合。面向移动电话等小型、窄带的移动设备。WAP能够运行于各种无线网络之上,如GSM、GPRS、CDMA等。
WML是无线注标语言(Wireless Makeup language)的英文缩写。支持WAP技术的手

机能浏览由WML描述的Internet内容。

   
  蓝牙(BlueTooth)
   蓝牙是一种支持设备短距离通信(一般是10m之内)的无线电技术。能在包括移动电话、PDA、无线耳机、笔记本电脑、相关外设等众多设备之间进行无线信息交换。它的标准是IEEE802.15。工作在 2.4GHz 频带。带宽为1Mb/s(注:蓝牙这名字很有意思,来自公元10世纪统一丹麦和瑞典的斯堪的纳维亚国王的名字。)
   
  VoiceXML
   VoiceXML(Voice eXtensible Markup Language)是W3C定义的可扩展标记语言(XML)的一种扩展,根据播放的提示信息、口述的命令、语音或按键音输入,实现人机交互。VoiceXML的标准化将简化Web上具有语音响应服务的个性化界面的创建,使人们能够通过语音和电话访问网站上的信息和服务。

请问,KJava编程和普通编程有什么不同,在编写程序中都应该注意些什么?
  1.只用到了j2se中lang,io,lang等有限个数的包
   2.扩展了针对手持设备的javax.microedition包
   3.Motorola还在其上有进一步的扩展
   4.部分代码可以运行在模拟器的环境中
   5.有一个本地数据库,等等。
   
  什么是J2ME的配置
  配置将基本运行时环境定义为一套核心类和一个运行在特定类型设备上的特定的 JVM。CLDC 和 CDC是J2ME的两种配置类型,它们分别适用于两种类型的设备:(1)有128-512K可用内存(2)有本质区别512K或更多的内存.运行在性能差一些的设备上的软件可以运行在性能好的设备上。
   
  什么是J2ME简表
  一个简表定义了受支持设备的类型。例如,移动信息设备简表 (MIDP),定义了蜂窝电话的类。KJava 和 MIDP是J2ME定义的两个简表,它们都构

建在 CLDC 之上。KJava 和 MIDP 都和 CLDC 及小型设备相关联。 某个简表是与某种特定的配置相关联的。  
   
  什么是J2ME无线开发包
  J2ME无线开发包是一组工具集,它为程序员提供相关的文档,示例和模拟环境,让他们可以开发出运行在手机和低端PDA上的基于JAVA技术的应用程序.J2ME开发包一般都和主流的开发环境相互集成.在J2ME无线开发包的网站上,有两种版本的开发包.
J2ME无线开发包 2.0 Beta版. 它支持MIDP2.0规范J2ME无线开发包1.0.4. 它支持MIDP 1.0.3规范
   
  MIDP的标准是怎么制定出来的
  MIDP 2.0 规范是有大约50个公司的专家组成的专家团按照Java协会的流程共同制定的.这些公司在设备制造,手机生产,软件开发等行业都起着领头羊的作用.摩托罗拉是规范的主要领导者,而Sun提供兼容性测试.
   
  在哪里可以找到MIDP更多的信息
  您可以访问http://java.sun.com/products/midp,那里有很多MIDP详细的介绍.MIDP 2.0的规范在http://jcp.org/jsr/detail/118.jsp 可以找到.
   
  J2ME MIDP API 是否支持 JDBC 和数据库连接?
  不能直接支持.可以使用HTTP和代理服务器(可能Java Servlet或JSP)建立连接,代理服务器再使用JDBC和数据库相连接。MIDP通过HTTP连接支持HTTP,实现了J2ME CLDC类的连接框架。如果想了解MIDP更多的信息,请点击java.sun.com/products/midp。
   
  png图形文件问题我在装入png图形文件时,运行时出现如下Exception:image cannot be loaded or decoded。可是png文件在看图软件下显示很正常。应该如何正确显示呢?
  先要用图形处理软件生成PNG文件,然后把它转换成字节数组,内容要一一对应。PNG的颜色应该为2bit或1bit,因为硬件设备只支持4级灰度显示。创建图的语句应该是如下格式:Image.createImage(byte[] imagedata, int imageoffset, int imagelength),其中,imagedata 的格式为:{(byte)0x89, (byte)0x50, (byte)0x4E, (byte)0x47, (byte)0x0D,....  
   
  仿真器问题:我在运行编译好的程序时,仿真器出现 Exception: java.lang.NoClassDefFoundError。请问是怎么回事?可能性有两个:首先,要注意Package路径,例如,对于package com.mot.j2me.midlets.test,您的类一定是在以下路径:%ClassPath%\com\mot\j2me\midlets\test\。其次,要注意大小写,例如,test.class和Test.class是两个不同的类。  
   
  数据同步的中文问题,我的同步过程是这样的,服务器从数据库中抓数据,
通过http链接发送到手机,手机上进行xml解析(kxml1.0 mini version)
然后再保存到rms,再进行xml解析的时候中文变成?而且不好解决,请问有没有
什么建议?
  您的数据同步的问题分为三个方面,1)数据通过Http传送进来,在作为xml parser的输入时是否考虑了编码问题,传输支持byte和UTF两种方式。2) kxml 2支持中文处理3) 在和rms交互时是否正确使用了读写操作.
   
  手机端有可以进行xml解析的程序包吗?
  在kxml.enhydra.org网站上可以下载kxml实现手机上xml解析。
   
  显示内容超过手机屏幕后,没有上下滑动条,如何产生。
  滚动条是自动产生的,如果没出现请改变屏幕的一些组件看看问题在哪
   
  中文乱码:通过HTTP请求一个URL得到应答,
应答中有中文,中文在模拟器手机中显示为乱码,但在模拟器上运行时控制台下显示的是正确的中文
  在手机端使用ReadUTF/WriteUTF可以实现中文信息的收发,同样,服务器端也要用相应的UTF编码进行交互。
   
  利用388c开发无线通信程序,服务器端程序开发应用什么软件,服务器应具备什么条件,应如何配置,是否应该建立自已的网站?
  服务器端必须有自己的IP地址,最好是Java web服务器如Tomcat等。388c通过http连接就可以了,它是通过http的client/server结构。
   
  中文显示乱码问题请专家指教,有一个含有中文的字符串(变量String型),用System.out.println()在控制台上能够正确输出中文,但用Graphics.drawString()输出到手机屏幕上时出现了乱码,,字符串常量没有问题,这是为什么,请指教!!
  单纯的字符串在手机上用Graphics的drawString应该没有问题,我们也是这么用的。
   
  在第三方只提供了.class文件的情况下如何使用这个类库 :
  把文件包含到编译环境的classpath中,使编译可以顺利通过,然后在打包时把第三方class文件一同打入包中即可。
   
  数据类型转换:我要在388上开发一段程序,需要在数值型和字符串型之间相互转换。可moto的JDK好像不支持Integer类和Double类。请问是不是这个原因。不是的话,要怎样实现类型的转换?

  出于性能的考虑,388c不支持很强的数值运算,如果要在数值和字符串之间转换的话,只能自己编写相应的程序了。
   


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/16082/showart_138562.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP