选择显示字体大小

j2me程序开发新手入门九大要点

  现在有大部分人,都是从零开始学j2me的,学习j2me的时候,总是从java基础开始学习,而且现在讲java基础的书籍中都是以j2se来讲基础,这就给学习造成了一些不必要的麻烦,下面将j2me中用到的和不需要的java基础知识做一个简单的说明。

  j2me中使用到的java基础知识:

   1、java语法基础:包括基本数据类型、关键字、运算符等等

   2、面向对象的思想:类和对象的概念,继承和多态等等。

   3、异常处理

   4、多线程

  j2me中没有用到的java基础知识:

   1、jdk中javac和java命令的使用

   2、java基础中的很多类在j2me中没有,或者类中的方法做了大量的精简。所以建议在j2me中熟悉类库。

   3、applet、awt、swing这些知识在j2me中根本使用不到。

  简单说这么多,希望学j2me的朋友们能少走一些弯路,不足之处希望大家积极指正和补充。

  二、j2me中暂时无法完成的功能

  列一些j2me中暂时无法完成的功能,希望大家能积极补充:

   1、在手机中不更改代码实现移植,主要指游戏

   2、动态修改按钮文字。

   3、在canvas上接受中文输入。

   4、操作本地资源、例如地址本、已收短信息等。

   5、制作破坏性的手机病毒。

   6、其他等待大家来补充。

  三、j2me的跨平台性

  j2me技术源于java,所以也具有jvm的优势,可以在支持java的平台上进行移植,但是现在的j2me技术在跨平台上却做的很糟糕,我们来简单看一下原因:

  1、手机的屏幕尺寸不一:

  这个主要在界面制作上。如果你使用的是高级用户界面,比如你做的是应用开发或者用户登陆、用户注册这样的通用功能时,一般没有什么问题。

  如果你使用的是低级用户界面,比如你做的是游戏,那么你就需要考虑这个问题了。

  2、厂商的扩展api不统一:

  例如nokia的扩展api类库ui系列,在别的手机上或者没有实现,或者包名不同等等。

  3、手机平台上实现的bug:

  例如nokia的7650在实现双缓冲上有bug,那么在这种机型上运行的软件就不能使用双缓冲。其他nokia上的一些bug,可以参看:http://blog.csdn.net/mailbomb/archive/2005/03/24/329123.aspx

  4、手机性能问题。

  不同手机的可用内存、最大jar文件都有要求,例如nokia s40的大部分手机支持的最大jar文件为64k,最大可用内容为210k。

  所以现在的手机软件,特别是游戏都提供支持的机型列表,也才有了手机游戏移植人员的存在。

  四、学习j2me可以从事的工作种类

  现在j2me技术可以说相当的火暴,这里介绍一些学好了j2me之后可以从事的工作的种类:

  1、j2me游戏开发人员

  根据游戏策划或者文档要求,在某种特定的机型(以nokia s40或s60居多)开发游戏程序。这是现在大部分j2me程序员从事的工作。

  需要熟练掌握:高级用户界面、低级用户界面、线程,如果是网络游戏,还需要熟练网络编程

  2、j2me应用开发人员

  现在的移动应用还不是很多,但是还是出现了一些,特别是移动定位以及移动商务相关的内容。需要熟练掌握:高级用户界面、线程网络编程

  3、j2me游戏移植人员

  参照源代码,将可以在一个平台上可以运行的游戏移植到其他平台上去。例如将nokia s40的游戏移植到s60上,或者索爱的t618等等。主要是控制屏幕坐标,有些可能需要替换一些api。

  需要熟悉各平台之间的差异以及相关的技术参数,比如屏幕大小、最大jar文件尺寸等等。

  五、j2me程序设计的几个原则

  1、使用面向对象编程。

  虽然使用面向过程编程可以减小文件的尺寸,但是为了以后维护的方便和利于扩展,还是要使用面向对象编程。

  2、使用mvc模式

  将模型、界面和控制分离。现在很多的程序将三者合一,但是如果你做的程序比较大的话,还是建议你进行分离。

  3、自动存储用户设定

  使用rms来存储用户的信息,例如存储用户上次输入的用户名、密码、用户对于系统的设定等,这样不仅可以减少用户的输入,而且对用户友好。很多程序甚至做了自动登陆等。

  4、一些系统设置允许用户关闭。如背景音乐、背景灯显示等。

  5、将低级用户界面的绘制动作放在一个独立的线程里面去。

  6、在需要大量时间才能完成的工作时,给用户一个等待界面。

  六、从模拟器到真机测试

  对于j2me开发者来说,模拟器给我们带来了很多方便,比如可以在模拟器中调试程序以及很方便的察看程序的效果,但是模拟器也给我们带来了一些问题,比如模拟器实现的bug等等,所以进行真机测试是必须的。

  1、为什么要进行真机测试

  因为模拟器程序可能存在bug,以及真机的性能有限,所以必须进行真机测试

  2、如何将程序传输到机器中?

  将程序传输到机器中有如下方式:

   a) ota下载

   b) 使用数据线传输

   c) 红外传输

   d) 蓝牙

  你可以根据条件,选择合适的方式。

  3、 真机测试主要测什么?

  真机测试的内容很多,主要测试以下几个方面:

   a) 程序的功能

   b) 程序的操作性,是否易操作

   c) 程序的大小,比如nokia s40系列的手机大部分接受的最大文件尺寸为64k

   d) 程序运行速度,速度是否可以忍受。

  七、从wtk到厂商sdk

  对于j2me爱好者来说,基本上大家都是从sun的wtk(j2me wireless toolkit)开始的,但是对于实际应用来说,仅仅使用wtk是远远不够的,所以在学习过程中,必须完成从wtk到sdk的跨越。

  1、厂商sdk的下载地址?

  ·nokia

  nokia不愧为手机行业的老大,对于j2me的支持也是一流的,有专门的网站提供sdk和各种文档说明。

  网址是:http://forum.nokia.com.cn/sch/index.html

  ·siemens

  siemens对于j2me的支持也不错,它提供了sdk,模拟器需要独立安装。下载地址如下:

  https://communication-market.siemens.de/portal/main.aspx?langid=0&mainmenuid=2&leftid=2&pid=1&cid=0&tid=3000&xid=0

  ·sonyericsson

  sonyericsson sdk以及自己的模拟器,下载地址为:

  http://developer.sonyericsson.com/site/global/docstools/java/p_java.jsp
  http://mobilityworld.ericsson.com.cn/development/download_hit.asp

  ·motorola

  motorola提供了专门的sdk,内部包含模拟器,下载地址为:

  http://www.motocoder.com/motorola/pcshome.jsp

  ·samsung

  samsung也提供了专门的sdk和模拟器,下载地址为:

  http://developer.samsungmobile.com/eng/front_zone/bbs/bbs_main.jsp?p_menu_id=1500

  ·nec:

  nec也提供了集成模拟器的sdk,下载地址为:

  http://www.nec-mfriend.com/cn

  2、厂商sdk和wtk有什么不同?

  厂商sdk最简单的理解就是在wtk的基础上增加了自己的模拟器和自己的扩展api。也就是说,你在使用厂商的sdk时,可以使用厂商的扩展类库,例如nokia的ui类库,和厂商自己的模拟器而已。每个厂商的扩展api都不多,而且不尽相同。

  3、如何使用?

  有些厂商sdk的使用都和wtk相同,例如samsung。nokia提供了独立的界面来开发,但是这个界面在实际开发中使用不多。

  4、厂商sdk的问题

  厂商sdk实现过程中,有一些bug,而且和真机实现不一致。例如nokia的混音播放问题等等。

  八、在j2me中获得手机imei的方法

  imei是internation mobile entity identification的简称,在手机中输入*#06#可以显示该数字,长度为15位,全球唯一,永远不会冲突,所以可以作为识别用户的一个标志。

  下面是在j2me中获得imei的方法:

  1、moto系列的手机可以通过读取系统的imei属性获得,代码如下:

   string imei = system.getproperty("imei");

  2、siemens系列的手机可以通过读取系统的com.siemens.imei属性获得,代码如下:

   string imei = system.getproperty("com.siemens.imei");

  九、j2me网络连接中显示问题的解决办法

  在网络编程中,有些时候会出现一些在没有接收到网络数据就显示界面的,造成界面显示不符合要求(例如公告显示,会先显示公告的背景图片再显示公告信息),这里提一个简单的解决办法给大家:

  解决这种情况的方法分成三个步骤:

  1、在需要显示的界面中,调用发送网络数据的方法。每次显示时调用该构造方法,不调用display的setcurrent方法显示。

  2、显示等待界面(例如进度条等),给用户提示,在进行网络连接。

  3、在处理网络反馈的数据完以后,调用display的setcurrent方法显示显示当前界面。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons