积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 嵌入式软件 >> JAVA
  相关分类: LINUX | WINCE | UC/OS | Bootloader | 下载 | VXWORKS | 网络协议 | JAVA | 汇编 | 驱动设计 | Symbian | XP Embedded | Nucleus | 新产品 | 相关文章 | 综合技术 |
手机J2ME程序开发初步认识
 
作者:未知   来源:本站原创    点击数:692   更新时间:2007-11-21
您可以添加到网摘 让更多人关注此文章:

    

前言
         JAVA的一个重要特性就是跨平台,它允许程序设计师仅需撰写一次程序代码,便可以在各种不同的平台上执行(例如: windows, linux…),这样的特性所带来的好处是不言可喻的。而这种跨平台的特性对于手机上的应用程序开发更是重要,试着想想,每一家手机厂商都有其自己的作业平台,若是有一家软件公司想要在手机上开发应用程序,那么便需要针对各家手机平台来开发可以在上面执行的应用程序,其工程之浩大可想而知,再加上手机平台不断的推陈出新,若是每次有新的手机出来,软件厂商都必须再为其重新开发一次应用程序,那么便显得有些不切实际。因此,J2ME就在这样的情况下诞生了,手机厂商只要在其作业平台上提供可以执行J2ME的JAVA虚拟机器,便可以执行利用J2ME所开发出来的应用程序,这提高了软件厂商在手机上开发应用程序的意愿。

何谓J2ME
         J2ME (Java 2 Platform, Micro Edition)是Sun Microsystems所发展出来针对一般的消费性小型设备进行程序开发的工具,由于这些设备的种类繁多,并且之间的特性又大不相同,针对这个问题J2ME引入了二种新的概念,分别是Configuration以及Profile,Configuration主要的目的是针对消费性电子产品的网络连结能力、处里器速度,内存容量等特性为之分类。Configuration针对所使用的装置,定义了一些较基本的核心类别函式库,凡是属于该Configuration的装置,其上所附的JAVA虚拟机器应该要支持Configuration中所定义的类别函式。目前J2ME已定义了二种Configuration:

1.

CDC (Connected Device Configuration)
适用于较高文件的消费性电子产品,例如:交互式电视机上盒、网络电话。

2.

CLDC (Connected, Limited Device Configuration)
适用于较低文件的消费性电子产品,例如:手机、PDA。


         另一方面,虽然Configuration已经将消费性电子产品做了简单的分类,但是毕竟各种装置的特性仍然有许多的不同点,例如CLDC虽然包含了手机与PDA,但是手机和PDA的显示能力却不完全相同,PDA的显示屏幕比起手机大的多。因此,J2ME利用Profile再针对各个不同的装置在做更细部的分类,Profile可以说是在Configuration之上定义另一组额外的类别函式。以手机来说,J2ME便为其定义了MIDP (Mobile Information Device Profile),MIDP针对手机定义了适用于手机的类别函式,例如简讯的传送,声音的处理等。

         在本文中,我们讨论的是手机上的J2ME程序开发,因此我们将使用CLDC及MIDP,然而因篇幅有限,我们无法将CLDC与MIDP所定义的函式库一一的作说明,更详细的MIDP的版本及所支持的函式库,读者可以参考J2ME的官方网站:
http://java.sun.com/j2me/

第一个J2ME程序
下载并安装J2ME Wireless Toolkit
         虽然,目前有许多开发程序可以用来开发J2ME的应用程序,但是对于初学者来说,J2ME Wireless Toolkit应该可以算是其中最容易取得的工具(从Sun Microsystems网站上便可以直接下载),因此本文将以J2ME Wireless Toolkit为主。

         在安装J2ME Wireless Toolkit之前必须先安装J2SE,若读者没有安装J2SE,可以自行从Sun Microsystems网站上下载,并依照其指示安装J2SE,若已经安装过J2SE,则可以省略此步骤。

下载J2SE网址
http://java.sun.com/j2se/

         在安装好J2SE之后,便可以安装J2ME Wireless Toolkit,一样从Sun Microsystems下载,在撰写这篇文章时,最新版本为J2ME Wireless Toolkit 2.1,所以本文中将以此为操作版本,然而,本文中所提到的程序代码,亦可正常于之前的版本中执行,只是操作画面会有些许不同,其过程仍是大同小异。

下载J2ME网址
http://java.sun.com/j2me/

         在下载完毕后便可以开始进行安装,首先我们必须指定J2SE的所在路径,本文中的例子,我们将J2SE安装在C:\j2sdk1.4.2_04。

接下来设定J2ME Wireless Toolkit的安装位置,若不想更动则直接使用默认值,直接按Next即可。

接着设定J2ME Wireless Toolkit,在程序集中的名称。


最后,安装程序会将刚刚使用者所设定的参数显示在画面中,若一切正确无误,则按Next。

安装完成

关于中文化
         在Sun Microsystems的网站上有提供J2ME Wireless Toolkit的中文化套件,但是笔者在一次的程序撰写经验中发现,中文化后的J2ME Wireless Toolkit在有些讯息的显示上不太正确(讯息有被截断的情况),因此笔者认为,若非绝对必要,否则不一定要更新中文化套件,没有更新中文套件并不会影响中文程序的撰写。

第一次激活J2ME Wireless Toolkit
         我们可以在程序集中找到刚刚所安装的J2ME Wireless Toolkit,要激活J2ME Wireless Toolkit请执行 ”程序集->J2ME Wireless Toolkit 2.1->KToolbar”。 KToolbar是J2ME Wireless Toolkit最常使用的工具,它可以用来建立项目、编译项目、以及激活仿真器来执行我们所撰写的应用程序。

在J2ME Wireless Toolkit中内建四种可供选择的仿真器

仿真器的操作

简单的J2ME范例程式
建立项目
         在安装好J2ME Wireless Toolkit之后,我们将撰写一个简单的范例程式,以示范如何利用J2ME Wireless Toolkit来撰写手机上的Java程序。

         首先我们建立一个新项目,激活KToolBar,按下New Project(建立新项目)之后,会出现下面的画面,我们必须指定项目的名称以及MIDlet Class的名称,在这里我们要建立的项目名称为MyFirstProject,而MIDlet Class为HelloWorld,当指定完毕之后便可以按下Create Project建立项目。

在按下”Create Project”(建立项目)之后,会出现一个项目设定画面,我们可以针对我们的项目做一些细部的设定。在这里我们使用默认值及即可,所以直接按”OK”。

然后我们会看到主控台出现了一些讯息,其主要的内容是告诉我们,刚刚我们所建立的项目,被放置在什么位置。

以文中所建立的项目为例,J2ME Wireless Toolkit为我们建立的相关目录如表中所示:

 项目目录位于

 C:\WTK21\apps\MyFirstProject

 Java原始档

 C:\WTK21\apps\MyFirstProject\src

 应用程序资源

 C:\WTK21\apps\MyFirstProject\res

 应用程序函式库

 C:\WTK21\apps\MyFirstProject\lib


程序代码撰写
        
J2ME Wireless Toolkit已经为我们建立好项目所需的相关档案及目录,接下来我们便可以利用任何我们所喜欢的编辑器来帮助我们编辑程序代码,我在刚刚建立项目时指定了HelloWorld为我们要建立的MIDlet,所以现在我们撰写一个HelloWorld.java,并将它放置在C:\WTK21\apps\MyFirstProject\srca目录中。

HelloWorld.java程序代码内容如下

import javax.microedition.midlet.*;
import javax.microedition.lcdui.*;

public class HelloWorld extends MIDlet implements CommandListener {

TextBox text;
private Command enterCommand; // 确定钮
private Command exitCommand; // 离开钮
private Display display; // display代表手机上可显示的装置

/*
HelloWorld的建构子
*/
public HelloWorld() {
display = Display.getDisplay(this);
text = new TextBox("请输入您的大名", "", 256, 0);
enterCommand = new Command("确定", Command.SCREEN, 1);
exitCommand = new Command("离开", Command.SCREEN, 2);
}

/*
程序的起始点,其中设定了二个按钮以及一个用来显示文字的TextBox
*/
public void startApp() {
text.addCommand(enterCommand);
text.addCommand(exitCommand);
text.setCommandListener(this);
display.setCurrent(text);
}

/*
当应用程序被暂停时,此方法会被呼叫
*/
public void pauseApp() {
}

/*
当应用程序被关闭时,此方法会被呼叫
*/
public void destroyApp(boolean unconditional) {
}

/*
当使用者按下确定按钮,或离开按钮时,此方法被呼叫,其中cmd 会
传入是哪一个按钮被使用者按下。确定钮被按下时,程序将显示欢迎
讯息。离开纽被按下时,程序将被关闭。
*/
public void commandAction(Command cmd, Displayable s) {
if (cmd == enterCommand) {
text.setTitle("欢迎来到J2ME的世界");
text.setString("Hi, "+text.getString() +". 很高兴认识你.");
}else if (cmd == exitCommand) {
destroyApp(false);
notifyDestroyed();
}
}
}


编译项目
        
存盘之后,我们便可以利用J2ME Wireless Toolkit帮我们编译刚刚所撰写的程序,按下Build将刚刚所编辑的应用程序利用J2ME Wireless Toolkit编译,若是没有出现错误讯息则表示编译成功。若是编译的过程中出现错误,则会在主控台中显示相关的错误讯息,使用者必须重新检查并修正程序中的错误,然后重新编译一次。

执行
        
若是编译成功,则可以直接按下Run以执行我们所建立的应用程序,此时J2ME Wireless Toolkit会自动开启所选择的仿真器来执行我们刚刚所写的程序。

执行结果
        
以下我们秀出程序的执行结果
 

步骤一
程序一执行,便出现要求使用者输入姓名的画面。

步骤二
输入姓名之后,按下Menu会出现确定、离开二个选项,利用上下键可以在选单中做选择,这时候请先按下确定。

步骤三
接着会出现欢迎讯息。

步骤四
接着使用者欲结束程序,可按下Menu并选择离开,于是程序便会结束掉。

结语
         本文中简单的介绍了J2ME以及实际下载开发工具并撰写了一个简单的范例程式,希望读这在阅读了这篇文章之后,能够对J2ME在手机上的程序开发有初步的认识,若是文章内容有错误的地方,或是对文章内容有任何疑问,欢迎来信指教或讨论,谢谢。

 



相关文章
· 利用实时Java设计数字音频系统[183]
· 无论谁主宰Java标准 Java明天会更好![360]
· 教您在Java开发过程中如何应对异常处理[630]
· 深入浅出:什么是基于Java的责任链模式[295]
· 如何利用DES加密的算法保护Java源代码[319]
热门评论排行
·VHDL设计中电路简化问题的
·ARM嵌入式系统基础教程(N
·江苏嵌入式Linux教育培训
·ARM处理器应用开发4步骤
·锐极LINUX驱动培训班定于

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
新兴半导体技术催生绿色节能的大学校园
电子系统创新促进汽车走向环保与节能
意法CEO携新品巡游中国 
未来3年新余需要8万光伏产业人才
看好中国未来发展:瑞萨提升在华芯片产
中国LED发展神速将成为未来照明产业
剖析联发科技2009年五大产品策略
突破四大障碍 蓝牙立体声耳
瑞萨向德国企业出售当地半导体前工序工
产业紧缩 PCB业或将提前
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
[转]教你如何进行电磁兼容设计...
[转]汽车和专业音响原厂设计原...
诺基亚,三星手机原厂图纸和PC...
电子元器件可靠性和失效分析经典...
[建议]FPGA设计技巧与实例...
Xilinx FPGA设计快速...
基于CPLD的各种设计实例和分...
教你如何学会MSP430单片机...
凌阳单片机教程(共8章)非常详...
[建议]学习PIC系列单片机的...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网