最近在做一个JavaME的项目,发现JavaME也不过如此,至少在手机应用程序方面的开发不是很优越,自从看了Android的API之后,发现Android可以实现更多的技术,可以更注重业务的实现,确实的来说,JavaME搞游戏开发还有点市场,应用软件的开发,JavaME根本比不上Android,还有其他平台。下面有提到JavaME的基本知识。从长远的方面来看,我觉得学Android挺不错的。有了Java的基础,学起来不难。如果大家学过了JavaSE之后,可以直接去学Android,很容易上手。大家出来讨论一下JavaME的前景怎样。。。。

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的下载地址?
1、Nokia
Nokia不愧为手机行业的老大,对于j2me的支持也是一流的,有专门的网站提供SDK和各种文档说明。
网址是:http://forum.nokia.com.cn/sch/index.html
2、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
3、SonyEricsson
SonyEricsson SDK以及自己的模拟器,下载地址为:
http://developer.sonyericsson.com/site/global/docstools/java/p_java.jsp
http://mobilityworld.ericsson.com.cn/development/download_hit.asp
4、Motorola
Motorola提供了专门的SDK,内部包含模拟器,下载地址为:
http://www.motocoder.com/motorola/pcsHome.jsp
5、SamSung
SamSung也提供了专门的SDK和模拟器,下载地址为:
http://developer.samsungmobile.com/eng/front_zone/bbs/bbs_main.jsp?p_menu_id=1500
6、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方法显示显示当前界面。

更多相关文章

  1. Windows平台下如何使用Android(安卓)NDK
  2. Android使用Intent Filter来响应隐式Intent
  3. 【Based Android】让你的android应用使用可爱的iphone备忘录字体
  4. 【Android(安卓)P】 JobScheduler服务源码解析(三)—— 使用Job需
  5. Android(安卓)4.0 Space和Gridlayout
  6. 【Android资料】Android软键盘显示模式总结
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. 福特汽车向 iOS/Android 开发者开放 Appl
  2. Handler原理
  3. Android中使用定制系统的签名文件给应用
  4. Android任务管理终极发布AndTask 3.1(安
  5. 采用wifi进行android真机调试(不用数据线
  6. android HTTP 通信, XML 解析, 通过 Hand
  7. Android开发之Android开发规范(初)
  8. “快的打车”创始人陈伟星的新项目招人啦
  9. Android Excel 解析 xls 和 xlsx,方法也可
  10. Android P (4)一种绕过Android P上非SDK