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

J2ME开发基础全接触:从入门到精通 本文还有配套的精品资源,点击获取 简介:Java 2 Micro Edition (J2ME) 是Java平台的一个子集,专为嵌入式系统和移动设备等物联网应用设计。本教程全面覆盖J2ME开发的基础知识,包括架构、开发环境、核心组件、用户界面、数据存储、网络编程、设备特性和性能优化等关键内容。开发者将学习如何利用MIDP和CLDC等技术,创建具有丰富功能的移动应用程序。本教程... 阅读详情

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

来源:http://tech.163.com/05/1121/10/232V2Q100009159T.html



 一、J2ME中需要的Java基础知识

  现在有大部分人,都是从零开始学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.youkuaiyun.com/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方法显示显示当前界面。
基于J2ME的Java手机软件开发 基于J2ME的Java手机软件开发.pdf。基于J2ME的Java手机软件开发.pdf 立即下载

相关推荐

我的第一个J2ME程序(计算器)

我的第一个J2ME程序(计算器)<br><br>在的我W600C上测试使用

MVC设计模式及其工作原理

MVC设计模式及其工作原理

m0_67542258的博客 1688

J2ME中文教程(包含代码)

作者:sss 发表时间:2006 主要内容:关于如何利用J2ME进行手机应用开发(包含代码)

J2ME开发入门(老java游戏)

一.文件下载 链接:https://pan.baidu.com/s/1JLTE8UagTVYNVNanQmhysA 提取码:iarr 1.WTK2.5.2,32位的 2.eclipse,老版本的,新版不知道什么问题,不能新建J2ME项目 3.eclipseme,J2ME插件 4.jdk1.8,32位,因为WTK只有32位 二.安装 1.jdk直接安装就行 2.WTK也能直接安装 3.eclipse直接解压出来就能运行 4.eclipseme 点击help - install new software 点

u011727804的博客 4700

J2ME手机软件开发之我的设计源代码1

J2ME手机软件开发之我的设计源代码

基于N32G003的PMBus从机协议栈设计与STM32F103模拟I2C主机通信实战

本文详细介绍了基于N32G003微控制器设计PMBus从机协议栈,并与STM32F103模拟I2C主机进行通信的实战方案。重点阐述了中断驱动架构、命令解析、CRC8优化及超时恢复机制,实现了在70kHz速率下稳定可靠的工业电源管理通信,适用于服务器电源、通信基站等成本敏感应用场景。

numpy6sculptor的博客 919

J2ME开发教程(转)

J2ME开发教程——MIDlet 开发起步 原文 Jonathan Knudsen and Dana NourieFebruary 12, 2002Download: HelloMIDlet.java 翻译 Ding(wu_yi...

cuankuangzhong6373的博客 710

SQL2000在Win10上安装完整指南:兼容模式、SP4补丁与远程连接配置

数据库兼容性是老系统迁移与运维中绕不开的难题。当历史遗留的SQL Server 2000遭遇全新的Windows 10环境,安装程序常因系统版本检测失败而拒绝运行,这背后是旧版安装程序与NT内核版本间的识别错位。通过兼容模式模拟旧系统环境、以管理员身份运行安装程序,并处理注册表挂起与杀毒软件干扰,即可突破基础安装障碍。安装后的SP4补丁与TCP/IP端口配置,则是保障服务稳定与远程连接的关键。这一技术路径广泛适用于制造企业MES、进销存系统及医院HIS等仍依赖老旧数据库的场景,为IT运维与数据迁移测试提供了

weixin_29266679的博客 439

MVC框架

MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。 外文名 ...

weixin_30762087的博客 636

RoboMaster新手必看:用STM32 HAL库搞定大疆M3508电机正反转(附完整代码)

本文详细介绍了如何使用STM32 HAL库驱动大疆M3508电机实现正反转控制,包括硬件准备、PWM配置、电机校准及完整代码实现。特别针对RoboMaster新手常见问题提供了解决方案,如电机抖动、不转等故障排查,并分享了缓启动、DMA更新等进阶技巧,帮助开发者快速掌握电机控制核心技术。

weixin_42519985的博客 226

Windows打印体系结构之Windows内置打印驱动程序

时间是一种很残酷的东西,它只会冲淡能够冲淡的,但也会洗尽铅华帮你留下该留下的。1.3.4、Windows内置打印驱动程序现在的Windows下的打印机驱动程序通常分为V4打印机驱动程序(V4 Printer Driver)、XPS打印机驱动程序(XPSDrv)、微软通用打印机驱动程序(Microsoft UniversalPrinter Driver)、微软PostScri...

weixin_34309435的博客 2253

SSM源码解密-第1章 MVC原理阅读理解

第1章 MVC原理 这里首先介绍经典的MVC体系结构,通过对比MVC体系结构和Web MVC体系结构的区别,来深入理解Web MVC的背景、由来和特点。 1.1 MVC体系结构 首先,我们来学习MVC的体系结构。MVC是软件工程中的一种软件设计模式,也称为前端控制器模式,它把软件系统分为三个基本部分:模型,视图和控制器, 图1-1 MVC体系结构是一种灵...

dekan6117的博客 493

2025年度工业级3D全景相机技术解析选型参考:国产品牌的技术突围与市场格局

本文分析了工业级3D相机在智慧城市和建筑数字化中的应用。通过对比国内外主流设备的技术参数和应用场景,发现国产品牌如众趣科技在性价比和本地化服务方面具有优势,尤其适合大型空间扫描项目;而国际品牌如Faro、Leica则在精度和可靠性上保持领先。建议根据项目需求(如测距范围、精度要求、预算)进行设备选型,综合考虑扫描效率、数据处理能力和系统兼容性。国产品牌已在国内大型基建项目中展现出竞争力,国际品牌则更适合高精度逆向工程和国际化项目。

gxdtgsy的博客 1072

MVC与设计模式的关系及MVC的实现原理和设计原理

1 MVC介绍 众所周知MVC不是设计模式,是一个比设计模式更大一点的模式,称作设计模式不合理,应该说MVC它是一种软件开发架构模式,它包含了很多的设计模式,最为密切是以下三种:Observer (观察者模式), Composite(组合模式)和Strategy(策略模式)。所以说MVC模式又称复合模式。MVC(Model-View-Controller) 模式的基本思想是数据,显示和处理相分离...

weixin_33933118的博客 1823

Autosar Dcm配置-App到Boot的跳转及1002回复配置及实现-基于ETAS软件

在软件刷写流程中,上位机(诊断仪)发送1002后,APP检查允许跳转boot后,在特定的ram(软复位不清除)写入指定置后通过触发软件复位来跳转到boot的。在APP跳转到Bootloader时,1002的回复有两种方式,一种是APP直接回复,然后跳转,另一种是APP回复NRC78,然后跳转,在Boot中回复。本文介绍这两种方式的实现。如果是在APP中回复,可以少发一个0x78,整体跳转时间可能会少一些。但是如果诊断在收到5002之后立马请求其他的服务,可能出现boot正在初始化而未正常接收到报文。

赞的博客 1556

dify upload存在SSRF漏洞

Dify 是一个用于构建 AI 应用程序的开源平台。

nnn2188185的博客 1479

J2ME技术入门之一——J2ME程序的开发过程

       在进行J2ME开发以前,必须首先了解J2ME程序的开发过程,只有熟悉了开发过程以后才可以了解如何进行J2ME程序的开发。由于运行环境以及针对平台的不同,J2ME的开发过程和J2SE的开发过程不一样,要比J2SE的开发过程麻烦不少。      J2ME开发的大致过程是这样的:       1、编写Java源代码,在编辑器里面编写代码,你即可以在一般的文本编辑器里面编写,也可以在集成开发

爪哇米工作室陈跃峰的移动开发博客 3428

使用MATLAB和Simulink来设计并仿真一个智能家居多传感器数据融合系统

智能家居多传感器数据融合系统旨在通过集成来自多种不同类型的传感器的数据,以提供更精确和可靠的环境信息或用户状态监测。例如,将温度、湿度、光照强度、运动检测等多种传感器的数据结合起来,可以更好地了解家庭内部的状态,并做出相应的调整或响应。在这个教程中,我们将使用MATLAB和Simulink来设计并仿真一个智能家居多传感器数据融合系统。

amy_mhd的博客 189

J2ME开发的一般步骤

最近一段时间发现身边有一本买了一年多的J2ME的书没看,于是抱起来大概看了一下,我的E72是Symbian系统,支持J2ME,所以做了几个简单的小玩意。在学习J2ME开发的过程中有一些简单的心得和体会,现在写下来备忘,如果有朋友也正在学习J2ME开发,觉得有帮助的话,那是最好不过的事情了。 1.开发环境安装配置 目前开发J2ME应用的环境有多种,有基于NetBean的,不过仍以Eclipse为

周公(周金桥)的专栏 8834

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

J2ME应用程序开发指南

J2ME应用程序开发指南  本文并不是介绍使用Java编写Palm程序的教程--因为每种我们将要讨论的解决方案都有自己的要求和值得注意的地方--这是一篇向开发者概括介绍Palm OS应用程序开发工具的的文章,我们将纵观这一领域,找出在使用Java语言开发Palm OS应用程序时,你应该使用什么工具以及你又能够得到什么 ⊙简介  慨括介绍目前比较流行的各种Palm OS应用程序解决方案⊙J2ME之谜

Pinocchio 的专栏 945

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

freemarker报 java.io.FileNotFoundException:及TemplateLoader使用

使用过freemarker的肯定其见过如下情况: [code="java"] java.io.FileNotFoundException: Template xxx.ftl not found.[/code] 模板找不到。可能你会认为我明明指定了文件,并且文件存在,但是为什么就是说找不到呢? 经过研究官方的API,原来freemarker在加载模板时,建议使用TemplateLo...

七彩阳光java 856

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

我的第一个j2me程序

买了个moto E680i智能手机,linux系统,支持java。于是打算写个程序玩玩。用的是eclipse me,jdk1.42,很简单的一个程序。代码很简单,经典的helloworld程序。import javax.microedition.midlet.MIDlet;import javax.microedition.midlet.MIDletStateChangeException;i

soft_ice 1307

开发J2ME的软件安装

1.安装JDK1.6  (jdk-6u1-windows-i586-p)并配置path和classpath2.下载并安装WTK2.5.23.安装Eclipse4.下载elcipseme1.7.7并绑定到elcipse上5.绑定WtK到elcipse上

幽狼 572

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 228
下一篇: Google中国编程挑战赛专访李开复: 做终身程序员是一件好事情 2005.11.23
rewritable
博客等级 码龄22年 7粉丝 208原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值