手机JAVA编程技术
JAVA手机编程技术
|
林天峰
|
(温州职业技术学院 计算机系 浙江 温州 325000)
|
摘 要:简要介绍了SUN公司的J2ME规范,并通过具体例子说明了MIDP程序的设计方法及开发过程。 中图分类号:TP312JA 文献标识码:B 文章编号:1004-373X(2003)09-057-04 1 引 言 随着通讯技术的发展及手机的普及,人们正在不断地给手机增加新的功能,其中,使手机实现一般只有PC机才具有的功能--下载各种程序并运行,是目前手机发展的一个重要方向。为此,人们提出了各种各样的解决方案,其中基于JAVA的J2ME方案无疑是最引人注目的。 JAVA语言由于其平台无关、开放、网络功能强、面向对象、安全等特点,一经SUN公司提出,就随着Internet的发展而风靡全世界,在国外已成为软件开发人员的必修语言。特别是他的"一次编写、到处运行"的跨平台优点,对于手机领域来说更具有重要的意义。因为目前手机的种类繁多,各种厂商都有自己的标准,如何使他们能运行同一种标准的程序成为必须要解决的问题。采用JAVA语言后,各种手机只要实现JAVA虚拟机(JVM)就可以运行JAVA程序,这种方法可以说是目前情况下最为理想的一种解决方案。 J2ME(JAVA 2 Micro Edition)是用于嵌入式系统的JAVA,他是SUN公司对标准的JAVA版本J2SE做了最大程度的精简后得到的一种JAVA应用程序运行环境,在最简单的情况下他只有几十kB,特别适合在手机、PDA等设备中使用。手机厂商如果在自己的手机中实现了J2ME规范,就可以从网络下载并运行JAVA程序,从而大大扩展了手机的功能。鉴于JAVA在Internet上取得的巨大成功,我们有理由相信,J2ME能够把这种成功延伸到手持设备领域,为将来的手机和互联网融为一体提供有利的条件。 JAVA手机的出现也给软件行业提供了新的机遇,能否给JAVA手机提供足够多的软件资源是关系到其能否推广的重要因素之一。本文对J2ME构架做一个简单的介绍,并通过一个具体的程序例子来说明JAVA手机程序的特点及开发过程。 2 J2ME概述 J2ME是一种新的、非常小的JAVA应用程序运行环境,他所定义的构架主要用于在手持式设备上推广使用JAVA技术。SUN公司将为各种硬件规模的设备提供合适的配置,这些配置包括虚拟机、核心类库及API。目前,J2ME定制了2种配置:CLDC(Connected Limited Devices Configuration)和CDC(Connected Device Configuration)。其中,CLDC是为手机等CPU和内存资源远低于标准JAVA要求的设备所提供的一种配置,他是对JAVA标准版本做了最大程度的缩减后得到的,其虚拟机和核心类库多于100kB。CDC配置主要用于拥有更多资源的下一代设备。 CLDC配置给各种手持设备提供了能运行JAVA程序的一种环境,但开发者还很难在这种环境下开发程序,首先因为CLDC核心库提供的是低级API,不适合直接用于构建应用程序;其次,手持设备的系统结构千差万别,很难保证应用程序的图形界面、网络等功能的移植性。因此,为了进一步增强J2ME的功能,SUN公司允许设备供应商在实现CLDC的基础上再为自己的设备提供专门的高级API及程序管理方法,即PROFILE,以简化应用程序的开发,使程序有更好的移植性。同时,SUN公司还与50多家知名的移动设备制造商及软件开发商一起,制订了专门用于手机等移动信息设备的PROFILE--MIDP (MobileInformation Device PrOfile),由于MIDP提供了编写图形界面、网络程序的统一规范,并实现动态、安全的程序管理方法,因此得到了诺基亚、摩托罗拉、西门子等主要手机厂商的支持,纷纷推出了基于MIDP的JAVA手机。 与APPLET相似,MIDP程序也称为MIDlet,他必须要继承一个特定的类--MIDlet,这样MIDlet管理者才能控制他的运行。这个类包含了startApp,pauseApp,destoryApp三个用户可以重载的方法,分别在MIDlet进入运行状态、停止运行、退出时调用。 MIDP程序的图形接口相对于标准JAVA的AWT接口要简单得多,他分为低级API和高级API。低级图形API使开发者能更直接地控制屏幕显示和键盘输入,他基于抽象类Canvas,一般用于编写游戏程序,他的可移植性要由开发者自己保证。高级图形API能在不同设备之间有很好的可移植性,但开发者能调整的余地也相应地很小,他基于抽象类Screen,并有 MIDP程序一般要和各种资源文件一起压缩成一个jar文件。发布时,还需要有一个扩展名为jad的描述文件,他包含了MIDP程序的名称、版本、jar文件的位置及大小等信息。JAVA手机首先要访问的是描述文件,再根据描述文件的信息把MIDP程序安装到本手机,然后才能运行。 3 开发实例 MIDP程序真实的运行环境是JAVA手机,但他的开发却是在PC机上进行的,因此开发环境一般都提供仿真器对程序进行测试。各种手机厂商都有自己的开发、测试环境,下面介绍的例子程序,是在SUN公司的MIDP实现中调试通过的。 3.1 程序功能 本例子包含2个MIDP程序,第1个程序运行时要求用户输入姓名,并选择性别,然后程序根据性别和当前时间向用户输出一句问候语。第2个程序运行时让用户选择图片名称,然后把这幅图片在屏幕上显示出来。这2个MIDP程序由同一个描述文件描述。 3.2 程序源代码及注释 3.2.1 第1个MIDP程序(samplel.java) //任何MIDP程序都要继承MIDlet类, 为了处理按钮命令, 还要实现了CommandListener接口 public void startApp() //该方法在该MIDlet得到执行权时调用 3.2.2 第2个MIDP程序(sample2.java) import javax.microedition.midlet.MIDlet; } 3.2.3 描述文件内容(sample.jad) MIDlet-1;Hello,,samplel (1)从SUN公司的网站下载MIDP2.0版(http: va.sun.com/prOducts/midp),并解压到c:\midp2.0fcs (2)从SUN公司的网站下载JAVA标准版开发工具JDKl.3.1,安装在c:\jdkl.3 (3)建一工作目录,并把上述3个文件存人该目录 (4)另外再找3个图像文件,转化为png格式后以 tl.png,t2.png,t3.png的名字存入工作目录 (5)进入MS-DOS方式,转入工作目录,设置以下环境变量: set MIDP_HOME=c:/xmidp2.Ofcs set PATH=c:/jdkl.3\bin;c:/midp2.Ofcs\bin set classpath=c:/midp2.Ofcs\classes (6)编译2个JAVA文件: javac *.java (7)用以下命令预先检查2个类: preverify -d .sample1 preverify -d .sample2 (8)把有关文件打成1个包: jar-CVf sample.jar *.pag (9)在仿真器中运行: midp-Classpath.sample.jar -descriptor sample.jad 在完成仿真后,可以把sample.jadd和sample.jad放在某一网站,并用以下命令测试: midp-install http://<网络地址及路径>/sample.jad //下载并安装 midp-run 1 //运行,1表示所安装的第1个MIDlet 注:①网站的Web服务器要把jadd文件的MIME类型设为text/Vnd.sun.j2me.app-descriptor,jar文件的MIME类型设为applicatiOn/java-archive; ②若sample.jad和sample.jar放在不同位置,则sample.jad中的MIDlet-Jar-URL属性要相应修改; ③可以输入midp命令,然后用图形界面进行操作。 4 结 语 MIDP API还提供了HttpConnection类,利用他可以很方便地与互联网的网站进行交互,从而编写出功能很强的网络程序。随着JAVA手机的普及,迫切需要大量的应用程序资源,各大手机厂商也给开发者提供了非常方便的开发工具,相信MIDP程序的开发在不久的将来能很快地流行起来。 |
手机JAVA编程技术相关推荐
- 10个实用的但偏执的Java编程技术
在沉浸于编码一段时间以后(比如说我已经投入近20年左右的时间在程序上了),你会渐渐对这些东西习以为常.因为,你知道的-- 任何事情有可能出错,没错,的确如此. 这就是为什么我们要采用"防御性 ...
- java的网络编程有用吗_十大有用但又偏执的Java编程技术
java的网络编程有用吗 经过一段时间的编码(以我为例,大约20年左右,当您玩得开心时光飞逝),人们开始接受这些习惯. 因为,你知道... 任何可能出错的事情都会发生. 这就是为什么人们会采用&quo ...
- 十大有用但又偏执的Java编程技术
经过一段时间的编码(以我为例,大约20年左右,当您玩得开心时光飞逝),人们开始接受这些习惯. 因为,你知道... 任何可能出错的事情都会发生. 这就是为什么人们会采用"防御性编程" ...
- Java编程技术_10个实用的但偏执的Java编程技术
在沉浸于编码一段时间以后(比如说我已经投入近20年左右的时间在程序上了),你会渐渐对这些东西习以为常.因为,你知道的-- 任何事情有可能出错,没错,的确如此. 这就是为什么我们要采用"防御性 ...
- 10个实用的但偏执的Java编程技术-扣丁学堂
10个实用的但偏执的Java编程技术 在沉浸于编码一段时间以后(比如说我已经投入近20年左右的时间在程序上了),你会渐渐对这些东西习以为常.因为,你知道的-- 任何事情有可能出错,没错,的确如此. 这 ...
- JAVA 编程中的汉字处理(1)---java 编程技术中汉子问题的分析与解决
Java 编程技术中汉字问题的分析及解决 段明辉, 自由撰稿人 简介: 在基于 Java 语言的编程中,我们经常碰到汉字的处理及显示的问题.一大堆看不懂的乱码肯定不是我们愿意看到的显示效果,怎样才能够 ...
- 安徽科技学院2017-2018-1学期15电信12《Java编程技术》期末考试
安徽科技学院2017-2018-1学期15电信12<Java编程技术>期末考试 缘分真是一个奇妙的东西,说来就来 可惜快乐的时光总是过得很快 JAVA程序设计课程就酱紫画上句号了,真的很不 ...
- 最新整理:java编程技术大全
1.Java基础 Java基础务必要有一个非常牢固的根基,尤其是对于JVM和并发编程的掌握情况**(属于进阶内容,但也是Java最为重要的基础内容)**,不论是面试还是工作,基础不好,写不出高质量.漂 ...
- Java基础知识强化49:10个实用的但偏执的Java编程技术
1. 将String字符串放在最前面 为了防止偶发性的NullPointerException 异常,我们通常将String放置在equals()函数的左边来实现字符串比较,如下代码: 1 // Ba ...
最新文章
- 关于人脸识别滥用的十个可能的应对方案
- 解决页面使用overflow: scroll在iOS上滑动卡顿的问题
- [转] 使用模板自定义 WPF 控件
- hdu 2222:Keywords Search
- MySQL学习笔记 约束以及修改数据表
- java循环链表类_3、循环链表(java实现)
- 9行代码AC_HDU-6374 Decimal(余数,因子)
- iOS:Reachability网络监听
- DD-WRT基础扫盲
- 从入门到精通 - Fayson带你玩转CDH
- win10 linux 无法下载,更新win10后不能安装ubuntu的解决方法
- js阻止子元素事件_JS点击子元素不触发父元素点击事件(js阻止冒泡)
- UI设计师必备的五款界面设计工具
- wordpress主题 Cosy主题3.X下载
- C++如何输入/输出
- 每日英语:China Destroys Six Tons of Confiscated Ivory
- d3d纹理过滤器配置
- 7、Java基础——从控制台输入:Scanner类的的用法、数据类型转换、字符型的运算、print与println的区别、Java中的转义字符
- 为什么outlook不能改成HTML格式,如何解决Outlook 2016中的HTML格式问题
- base64加密解密 nodejs
热门文章
- 《世界上最远的距离》——泰戈尔
- matplot.pyplot 绘图学习
- 香港城大计算机学院xutaowei,2018年3月20日学术报告(徐宏,香港城市大学)
- 利用Qt制作连续性图片
- 脑残式网络编程入门(八):你真的了解127.0.0.1和0.0.0.0的区别?
- 灵魂有香气的女子李筱懿:自律,是追求更高级的快乐
- 揭秘老外聊天时常用的英文缩写
- Accurately Say CocaCola!
- Android 实现录音功能
- how2heap glibc 2.27