中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > Java > J2ME
使用Java编写Palm OS程序的解决方案之一
作者:CC 时间:2006-09-22 09:24 出处:ccidnet.com 责编:月夜寒箫
              摘要:使用Java编写Palm OS程序的解决方案之一
现在,使用Java语言为 Palm OS编写程序的领域还没有完全统一,并且也有许多程度上的差异,目前,市面上有好几种不同的可用的应用程序接口,每种应用程序接口都给出了一个到当前的Palm OS应用程序不同程度的访问权限。

也许这其中大家最熟悉的是Sun微系统出品的产品;但是能够为Palm OS写程序的绝不只有这一种产品。本文这一部分并不是介绍使用Java编写Palm程序的教程--因为每种我们将要讨论的解决方案都有自己的要求和值得注意的地方--而是一篇向开发者概括介绍开发工具的的文章,我们将纵观这一领域,找出在使用 Java语言开发 Palm OS应用程序时,你应该使用什么工具以及你又能够得到什么。

一、Sun的解决方案: KVM、 Configuration和 Profile

KVM是 Kilobyte Virtual Machine (千字节虚拟机),那么命名是因为它的内存大小是以千字节来量度,而不是像 Java虚拟机那样需要兆字节。

因为有这么苛刻的内存要求,KVM的功能只是完整JVM的的子集。你可以从Javasoft站点上找到全部的信息,但是值得注意的是它遗漏了映射(reflection)、JNI和自定义类装载器以及一个可变的安全机制。

Sun已经制订一个计划,提供了 configuration和 profile来满足设备程序设计的需要。 configuration是一个应用程序接口,是设计来提供一个基础,用于一类广泛的一般的设备,所有的这些设备都有相似的特性,比如说有限的内存,偶然性强的网络连接性,低电力消耗,可运行在电池上,所以,J2Me被设计得既一般又抽象。

现在 Java 2 Micro Edition(J2ME)可用的configuration有CLDC(Connected,Limited Device Configuration)和 CDC(Connected Device Configuration)两种,后者用于比 Palm功能更强大的设备,这就超出了我们讨论的范围;而前者,代表有限连接设备配置,是像PDA,双通道呼叫器以及移动电话。

CLDC包括一个J2SE中的类的子集,但是有一些重要的差别,例如,因为小型设备中的虚拟机使用的无用单元收集机制,CLDC的java.lang.Object不包含finalize方法,你应当记住,这个应用程序接口中的某个特定的类可能出现但是它的某个方法却没有出现。

对于许多刚开始使用CLDC开发程序的朋友,感到奇怪的是CLDC不支持浮点数。这是KVM默认的实现,KVM是使用C编写的,它可以被移植到许多平台上,它不支持浮点运算,这是因为我们所面对的硬件一般是小型设备,有的还是使用8位的处理器,这些处理器有可能不支持浮点运算。

profile是特殊的具体的,它的目标是一个比configuration更具体的设备的类,包括用户界面和事件处理元素,这在configuration中是没有出现。现在,Palm OS或PDA没有公开可用的profile。

Java Community Process有一个已经开发了一段时间的 PDA Profile,开发者们仍然在等待一个新的 PDA profile版本。与此同时,想要遵循 KVM/Sun解决方案开发者的应当做什么呢? CLDC版本包括一个可以用作 Palm OS的 最原始的profile的类的最小的集合,据悉,Sun不赞同使用这些类开发任何商业程序,他们也不计划对这个应用程序接口做任何更新。

但是如果没有 PDA profile,开发者也可以使用这些类库。通常我们所知的是Kjava,它包含了许多 GUI类: CheckBox、 RadioButton、 List等等。除了这些,还有Spotlet类,它被用于处理事件以及 Palm OS捕获手写笔的输入和键盘按下的事件等等。

下面是一个使用 kjava来显示简单的文本字符串和按钮的类:

import com.sun.kjava.*;
            public class HelloKjava extends Spotlet
            {
             private static Button OKButton;
             public static Graphics
            g = Graphics.getGraphics();
              file://取得Graphics对象
             public static void main(String args[])
             {
              HelloKjava hk = new HelloKjava();
             }
             public HelloKjava() file:
            //HelloKjava类的构造方法
             { OKButton = new Button("OK", 84, 140);
              register(NO_EVENT_OPTIONS);
              drawScreen();
             }
             public void penDown(int x, int y) {
              if (OKButton.pressed(x,y)) {
               System.exit(1);
              }
             }
             public void drawScreen()
             {
              g.clearScreen(); file:
            //清除屏幕
              g.drawString("Hello KJava",20, 10);
            file://把字符串画在屏幕上
              OKButton.paint();
             }
            }

还有一个类com.sun.kjava.Database,它在一种到达Palm数据库应用程序接口的方法。 这就是说,它是非常原始的并且不提供访问存在Palm数据库中的任何内容完全的权限。它只允许设置和获得字节数组;它不允许键入访问,除了通过记录标识号(是一个整数)。因为数据库只能理解字节数组,给你的数据意味着你需要把这些字节数组解析成有含义的字段。

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有