首页 > 其他分享 >J2ME学习笔记

J2ME学习笔记

时间:2023-07-31 22:06:46浏览次数:37  
标签:Profile java 笔记 学习 Java 手机 J2ME MIDP


一、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系统,登陆时某些用户名不能用如:陈世康,陈字,窦孝解,解字。

    原因: 

标签:Profile,java,笔记,学习,Java,手机,J2ME,MIDP
From: https://blog.51cto.com/u_3124497/6913716

相关文章

  • 字符编码笔记:ASCII,Unicode和UT…
    字符编码笔记:ASCII,Unicode和UTF-8作者:阮一峰今天中午,我突然想搞清楚Unicode和UTF-8之间的关系,于是就开始在网上查资料。结果,这个问题比我想象的复杂,从午饭后一直看到晚上9点,才算初步搞清楚。下面就是我的笔记,主要用来整理自己的思路。但是,我尽量试图写得通俗易懂,希望能对......
  • j2me 判断手机文件系统大小
    j2me项目判断手机文件系统大小现象:在项目中需要下载资源到机文件系统.当手机文件系统空间写满时下载进度会一直停留在那不动。解决办法:在写资源到手机文件系统时先进行手机文件系统剩余空间大小判断.并给出提示.程序:j2me判断手机文件系统空间大小代码publicstaticlongg......
  • 开发适应中国网络的J2ME连网程序
    开发适应中国网络的J2ME连网程序随着中国移动,联通,电信的先后获得3G牌照,移动软件开发必定会热起来,无论是现在热火朝天的J2ME版的UCWEB,QQ,还是移动的飞信等都是必须连网的,因此掌握J2ME的网络编程是我们程序员的一门绝技,而通用连接框架则是网络编程的基础。这篇文章主要介绍1.通......
  • android listView控件学习之一
    androidlistView控件学习之一1.基本应用:1>res/layout/main.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"......
  • android学习之TransitionDrawable …
    Drawable的例子,体现出Drawable的强大功能。AndroidSDK中说明了Drawable主要的作用是:在XML中定义各种动画,然后把XML当作Drawable资源来读取,通过Drawable显示动画。下面举个使用TransitionDrawable的例子,创建一个Android工程,然后再这个工程的基础上修改,修改过程如下:1、去掉layout......
  • 【学习笔记-CS144 计算机网络】传输层
    概述主要任务:对接端口连接管理分割和重组上下数据差错和纠错功能流量控制传输层协议TCP特点:可靠性高端到端,面向连接基于字节速度慢向下传递操作步骤:接受来自应用层的8位字节的数据流,并根据MTU分段。封装上队头标记,打包成数据包将......
  • 【腾讯云Cloud Studio实战训练营】Cloud Studio 快速搭建学习分享
    零、前言最近接触到了一款开发神器,云端IDE,相比于传统的IDE,云端IDE可以更大程度的提升用户工作的效率。带大家一起了解CloudStudio的神奇之处。一、CloudStudio1.1、CloudStudio是什么云IDECloudStudio作为腾讯云出品的一款在线云端开发工具,它可以帮助用户减少安装IDE......
  • Mybatis学习(1)——mybatis介绍 & 入门案例 & 全局配置文件详解 & 增删改查 + mybatis事
    Mybatis学习(1)——mybatis介绍&入门案例&全局配置文件详解&增删改查+mybatis事务&mapper.xml文件#{}和${}&动态SQL入门原文链接:https://blog.csdn.net/Pireley/article/details/131520252目录引出一、mybatis是啥1.官网&ORM(ObjectRelationMapping)对象关......
  • 关于Python的学习记录(二十_文件的基本操作)
    实际开发中常常会遇到对数据进行持久化的场景,所谓持久化是指将数据从无法长久保存数据的存储介质(通常是内存)转移到可以长久保存数据的存储介质(通常是硬盘)中。实现数据持久化最直接简单的方式就是通过文件系统将数据保存到文件中。计算机的文件系统是一种存储和组织计算机数据的方法......
  • 学习Java的第10天
    变量变量是什么:就是可以变化的量!Java是一种强类型语言,每一个变量都必须声明其类型。Java变量是程序中最基本的存储单元,其要素包括变量名,变量类型和作用域。typevarName[=value][{,varName[=value]}];//数据类型变量名=值;;可以使用逗号隔开来声明多个同类型变量注......