一、J2ME介绍:

  

        

            

        

  

  

作用。

1.Configuration最下层的开始说起,它是J2ME规定嵌入式设备能够执行Java程序的规范,J2ME把运算功能有限,电力有限这类的嵌入式设备叫做Connected Limited Device,规定这些设备如果能执行JAVA程序,则必须遵守哪些规范,而这些规范就定义在Connected

Limited Device Configuration里面,简称CLDC,类似有个可连接,资源相对来说无限的设备则被称为Connected Device,同样有个CDC规范。

我们平时所使用的手机属于Connected Limited Device范畴,支持J2ME的手机必须支持支持CLDC规范。就目前来看 CLDC有1.0和1.1两种,

两者最大的不同则是后者支持浮点运算,而前者不支持,CDC1.0和CDC1.1的核心类库(java.lang.*,java.io.*,java.util.*)和J2SE几乎

没什么区别,CLDC1.0则差别较大,CLDC1.1相对来说增强了CLDC1.0的功能,最小内存数量也从160K提升到 192K。CLDC加入的支持扩展类库

为有javax.microedition.io.*等。

  

     

     

     


2.Profile,既然Profile构建在Configuration之上,其所规范的配备需求自然不会比Configuration低,而我们通常所提到的Profile有Mobile Information Device Profile(简称MIDP),针对的是手机和寻呼机,等移动设备。还有一种常见的Profile,Information Module Profile,是针对没有屏幕的移动设备所设计的。

    

    

时环境使用。

    

    

    

    

  

   

厂商可以通过Optioanl Packages规范来为实现某些产品的特殊功能制定相应的API。

   

   

   

   


总结:

sony ericsson P908 手机上运行J2ME程序 CLDC1.0,MIDP2.0.


二、运行J2ME 程序的三种方式:

1.命令行

   

PATH = D:\Java\jdk1.5.0_05\bin;D:\Java\j2me_cldc\bin;D:\Java\midp2.0fcs\bin
    CLASSPATH = D:\Java\jdk1.5.0_\lib;D:\Java\midp2.0fcs\lib;D:\Java\midp2.0fcs\classes
    MIDP_HOME = D:\Java\midp2.0fcs
   
   
   
    2>MIDP http://java.sun.com/products/midp   3> JDK1.3 
2.J2ME Wireless ToolKit
3.Eclipse + WTK2.5

    配置Eclipse + WTK

    eclipse3.1 + wtk2.5 + eclipseme1.0.0 


三、j2me用户界面编程

 

1.MIDP2.0触摸屏的实现方法模拟器上可以正常使用首先 

 

的文件中有一行touch_screen=false,把它改成true就可以了。

2.Spacer 

专门用来在Formshang加空白间隔的。

Display display;

StringItem si=new StringItem("test","content",Item.PLAIN);

f.append(si);

f.append(new Sacer(50,50));

display.setCurrent(f);

3.如何接受数据是跟数据如何发送过来相关的

例如在client端writeUTF(message);writeInt(4);writeBoolean(true),

那么接受就应该readUTF();readInt();readBoolean();如果发送过来数据长度是可用的,

那么我们可以建立一个适当的数组来接受,如果不可用我们就要一个适当容量的数组来接受。


4.编码问题

http://www.regexlab.com/zh/encoding.htm




 


  概念描述 举例

  字符         

  字节       

  ANSI字符串 

  UNICODE字符串 

  

 

 

5.关于J2ME与C#通过HTTP进行通信时的乱码问题(源码)!


时间: 2006-07-14 来自:every12555

      

解决办法!将C#项目中Web.config中的编码设定为utf-8(默认就是utf-8)。

下面是J2ME的源码:

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;
import javax.microedition.io.*;
import java.io.*;
import java.lang.String;;
public class HttpTest extends MIDlet
{

private Display display;

public HttpTest()
{

}

protected void startApp() throws MIDletStateChangeException
{

 
 
 

 
 
 
 
 
 
 
 



 
 

}


protected void pauseApp()
{


protected void destroyApp(boolean arg0) throws MIDletStateChangeException
{
}
}


6. J2ME编程中的三种低级用户界面事件处理技术比较


作者:陈跃峰


出自:



怎么才能学好J2ME?从初学到上手工作要多久? 6.

具备良好的java语言基础,不要还没有学习java语言就拿起一本J2ME的书来看。这样效果并不好,相反如果你有良好的java语言基础的话,J2ME就显得比较容易掌握!


如果你决定开始学习J2ME了,那么首先你应该清楚J2ME的体系结构是什么样的。当你真正清楚了Configuration和Profile的关系、了解了CDC和CLDC的区别后,那么你可以开始编写自己的HelloWorldMIDlet了


选择优秀的开发环境,J2ME的开发环境比较灵活。我推荐使用Eclipse和EclipseME插件。因为Eclipse的插件非常丰富且灵活,当你开发联网应用程序的时候安装Lomboz就可以了。当然你也可以选择Jbuilder等IDE,但是不推荐记事本!


在编写代码之前,应该多读一下好的代码。毕竟MIDlet的写法和一般的java Application不是很一样。推荐WTK中的Demo程序。


MIDP的API doc比较少,每个类的方法也很少。如果有时间的话,每天看个4-5个。这会对你帮助很大。毕竟它的API和J2SE的并不一样,只是它的子集,不应该想当然的使用。


清楚MIDP中高级UI和低级UI类的使用和区别,在你做用户界面的之前,思考好什么符合你的要求,推荐使用高级UI,这样更简单、可移植性更好。但是需要使用Canvas的时候不要犹豫,大胆使用!清楚高级事件和低级事件处理的机制。


在开发应用程序的时候尽量使用MVC模式,这样扩展性出色。


彻底掌握Record Management System,这是MIDP的一个重要子集。实现数据持久性存储不可缺少的系统。善于使用RecordFilter和RecordEnumeration来简化RMS的操作,在我的blog里面有一系列的关于RMS的文章,有时间就看看吧!


重视线程,如果你还不真正清楚线程的时候的话,那么赶快找资料看看吧。在J2ME的开发中,这非常的重要。具备了联网的能力则给你的应用程序插上了翅膀,而联网的时候为了避免堵塞一定要使用多线程技术。


时刻关注最新的技术,比如PIM,BlueTooth等都在慢慢的得到支持。你可以使用WTK2.2开发相关的程序了。


掌握Java中文问题,在J2ME中这个问题更加突出。你应该把你的应用程序放到手机上去测试这个问题而不是在模拟器上。


IO不用我说你也必须清楚,在J2ME中提供的IO包中,类比较少你更应该注意。


不要因为听说手机资源受限,在写程序的时候就顾虑重重,不要牺牲代码的可读性和可维护性,但是也不能乱用。这个时候你的java语言的基础起到了重要的作用!


如果想开发游戏,那么你应该多读相关的书籍。我这里一本J2ME游戏开发的书籍(电子版).想看的话可以email联系我,http://javap2p.nease.net/book/j2me_gamingbook_pdf.zip


如果有些问题想了很久都没有明白的话,可以到论坛上去问问,但是不要一有问题就问,自己思考后得到正确答案效果更好。或者把问题放下几天,也许自然而然就明白了!不是胡说。


多写代码!多多总结!简单的八个字,非常重要:)


7.在J2ME中获得手机IMEI的方法

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

  下面是在J2ME中获得IMEI的方法:

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

         

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

         


8.j2me学习URL :http://www.blogjava.net/lf0206/


9.深入理解MIDP的界面类体系 

四、j2me开发中遇到问题及解决办法

问题1. 写第一个程序在sony ericsson p908, 多普达 LGkG90手机上运行时,用Eclipse打包Cdlc1.1 ,midp2.0在模拟器上正常运行。放到手机后无法安装。

   


问题2 手机程序需要进行XML格式文档解析时,Eclipsse的Libraries中加第三方软件包KXML.JAR后,程序无法找到

    


问题3 多普达手机696上运行J2ME程序时 直接安装无法正常运行。

    


问题4 多普达830手机运行能在多普达696,LG K900,sony Ericson上正常运行的自贡手机OA系统时出现内空不能加载问题.

   


问题5 多普达手机830 运行自贡手机OA系统,从网络中获取在线调查图片时,不能显示问题。

    传过来的url地址问题,http://192.168.1.1/resultimage\00001.png. 

在一个线程中不能调用另一个线程。


问题6 多普达830手机运行自贡手机OA系统,登陆时某些用户名不能用如:陈世康,陈字,窦孝解,解字。

    原因: