简介使用Java编写Palm OS程序的解决方案(1)
现在,使用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方法,你应当记住,这个应用程序接口中的某个特定的类可能出现但是它的某个方法却没有出现。请参考应用程序接口文档,这样的话你就会知道什么时候该用什么configuration了。

  对于许多刚开始使用 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数据库中的任何内容完全的权限。它只允许设置和获得字节数组; 它不允许键入访问,除了通过记录标识号 (是一个整数 )。 因为数据库只能理解字节数组,给你的数据意味着你需要把这些字节数组解析成有含义的字段。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/374079/viewspace-131696/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/374079/viewspace-131696/

[转载]简介使用Java编写Palm OS程序的解决方案(1)相关推荐

  1. [转载]简介使用Java编写Palm OS程序的解决方案(2)

    简介使用Java编写Palm OS程序的解决方案(2) 简介 简介使用Java编写Palm OS程序的解决方案(2) 二.Kawt的解决方案 Kawt也是 KVM的一个 Abstract Window ...

  2. [转载]Java嵌入式开发之一-简介使用Java编写Palm OS程序的解决方案

    Java嵌入式开发之一-简介使用Java编写Palm OS程序的解决方案 现在,使用Java语言为 Palm OS编写程序的领域还没有完全统一,并且也有许多程度上的差异,目前,市面上有好几种不同的可用 ...

  3. [转载]使用Java编写Palm OS程序的解决方案

    使用Java编写Palm OS程序的解决方案 简介 现在,使用Java语言为 Palm OS编写程序的领域还没有完全统一,并且也有许多程度上的差异,目前,市面上有好几种不同的可用的应用程序接口,每种应 ...

  4. 使用Java编写Palm OS程序的解决方案

    [b]作者:eula 原贴地址:[url]http://www.devdiv.net/thread-862-1-12.html[/url][/b] 使用Java语言为 Palm OS编写程序的领域还没 ...

  5. 用JAVA编写简单呼叫器餐厅,使用Java编写Palm OS程序的解决方案之一

    现在,使用Java语言为 Palm OS编写程序的领域还没有完全统一,并且也有许多程度上的差异,目前,市面上有好几种不同的可用的应用程序接口,每种应用程序接口都给出了一个到当前的Palm OS应用程序 ...

  6. 用JAVA编写简单呼叫器餐厅,使用Java编写Palm OS程序的解决方案1

    使用Java语言为 Palm OS编写程序的领域还没有完全统一,并且也有许多程度上的差异,目前,市面上有好几种不同的可用的应用程序接口,每种应用程序接口都给出了一个到当前的Palm OS应用程序不同程 ...

  7. java中的基本小程序_12个用Java编写基础小程序经典案例(收藏篇)

    原标题:12个用Java编写基础小程序&经典案例(收藏篇) 如果是刚接触或者刚学习java,练习一些基础的算法还是必须的,可以提升思维和语法的使用. 1.输出两个int数中的最大值 impor ...

  8. java application程序_如何Java编写的application程序像exe一样方便shy;的运行

    Java编写的application程序是否能够最终形成一个类似于exe一样的可执行文件,难道就只能用命令行运行??? ---------------------------------------- ...

  9. 利用java编写网络聊天程序并加密信息

    利用java编写网络聊天程序并加密信息 优化了代码后的地址:https://blog.csdn.net/qq_43483251/article/details/125470514?spm=1001.2 ...

最新文章

  1. duilib拖动控制功能的实现(源代码)
  2. 【错误记录】Google Play 上架报错 ( APK 大小 | 目标 API 级别 | Google Play 帮助文档 )
  3. Logstash7.6.0同步MySQL到Elasticsearch
  4. 48 行代码给 ABAP ALV 报表的数据行增添颜色效果
  5. Net Core平台灵活简单的日志记录框架NLog+Mysql组合初体验
  6. Oracle数据库基本概念理解(2)
  7. 二分查找算法举例说明C语言,C语言快速排序与二分查找算法示例
  8. Java虚拟机学习总结(1)——JVM内存模型
  9. transform、accumulate —— C++ 下的 MapReduce
  10. 安卓模拟器genymotion连接eclipse成功但是不显示其中项目
  11. fastjson对Date的处理
  12. SiamFC 学习(论文、总结与分析)
  13. BugKu web题目(bp)弱密码top1000
  14. wasm(jsC++)0-开发环境搭建
  15. 【Windows安装RabbitMQ详细教程】
  16. poj 1673(EXOCENTER OF A TRIANGLE) (垂心证明)
  17. 零基础能学平涂插画么?
  18. 在html文字下标标记,在HTML中,下面( )标记可将所修饰的文本显示为下标。(选一项)...
  19. 微信小程序删除文件Page剩余
  20. opencv学习笔记五--文件扫描+OCR文字识别

热门文章

  1. python爬取猪八戒网的内容
  2. 开源客服系统wolive
  3. 如何让ubuntu在关机或重启时执行脚本
  4. 360安卓_数据 | TalkingData:360手机助手份额32.27%居第一
  5. Android 过反抓包总结入门篇
  6. Linux目录权限管理
  7. iPhone 14 Pro灵动岛怎么设置?灵动岛启用/关闭设置教程
  8. MAX30100心率血氧模块
  9. 营养计算器操作指南--快速入门
  10. x210---电阻式触摸屏学习笔记