从某种意义上说,开发Palm OS系统平台的应用软件要比在其他平台上要容易。当然,其中的差别也是显而易见的。其中很重要的两点类似之处如下:
操作系统概况
让我们来看看掌上设备上,这种操作系统和应用软件之间紧密的交互的细节。Palm OS操作系统试运行于一个多任务抢占型系统内核的顶端。一个任务用于产生用户界面,其它的任务处理诸如来自手写板的输入等。
用户界面每次只允许一个应用软件运行。因此,每当您的一个应用软件开始运行时,它就控制了整个显示屏。
1. 内存
内存是掌上设备中比较独特的部分。RAM随机存储器在Palm OS系统中别用于两个目的:
动态内存分配
这部分内存是在系统和应用软件运行时才需要的。它其中还包含了软件所需的堆栈。当重新启动系统以后,该内存空间被清空。这部分内存的用途有点像传统的台式机操作系统下的内存。
永久存储
这包括了那些下载到掌上设备中的软件和数据,用户将在掌上设备上访问、编辑这些软件和数据。如计划事件、名片和电话号码、备忘录,以及其他所有内嵌软件所需的数据,都放在这部分内存中。每次重启时,这部分内存还是保持原样。我们可以把这部分的内存看成是台式机的硬盘上对各种文件的存储。
对于以上两种内存,在使用中都是按照区块的方式来分配的。永久存储区存放数据库,每个数据库对应着多个区块。例如,所有的备忘录信息都是存放在一个单一的数据中(每条记录对应着一个单独的区块或者数据库记录)。另外一个数据库存放这所有关于通讯录的记录。
和传统的台式机的操作系统不同,永久存储区的数据和代码不是复制到动态存储区来执行的,掌上设备的数据和代码都是在它们在永久存储区的所在位置直接被使用的。例如,当执行某部分程序时,就是直接在永久存储区该程序存放的位置被执行的。因为永久存储区位于RAM中,因此CPU当然可以直接读取它们,就像读取去它的RAM一样。同样,其中的数据也能够直接在存储位置被读取和显示。
2. 资源
我们可以把Palm OS系统中的一个应用软件看成是一个资源数据库,其中包含了很多不同的资源。每一个资源相当于数据库中的记录,有类型,有编号。按照这种存储方式,各种资源提供了应用软件所需的内核和外观元素。在台式机上,这些资源数据库的扩展名是.PRC。或者您在后面会发现,人们往往更愿意称之为PRC文件。
资源中包含的一些内容如下:
3. 事件
Palm OS软件时事件驱动的。事件的发生,就像手写笔的按下和抬起,然后您的软件就会对着写事件做出响应。其中的一些事件是由您的应用软件来处理的,其它的将由操作系统来处理。一旦您的软件启动,它将进入一个事件循环,周而复制地捕获事件,处理它们。该事件循环只有在用户打开另外一个应用软件,关闭当前的软件时才会结束。
4. 窗体和控件
Palm OS有一个内置的机制,用于支持各种控件和管理窗体。窗体和一个台式机系统中的窗口有点相似。因为Palm OS应用软件的用户界面的局限性,每次当后多个窗体显示时,只有一个是被激活的。
Palm OS提供了非常丰富的窗体用API函数,包含了很多用户界面元素。其中的一些如下:
5. 通讯
Palm OS系统支持多种通讯方式。因为通讯模块是Palm取得成功的根本因素,您可能认为在当前和未来的应用软件中,操作系统的这部分还是一个很值得探讨的方面。当前的通讯协议如下:
Palm OS系统还拥有以下各式各样的API函数:
- 应用软件是事件驱动的
- 您能够使用任何来自标准C语言的东西来进行编译和编程
- 存储空间的要求
- 应用软件和数据的存储
- 掌上设备和台式机的连接
操作系统概况
让我们来看看掌上设备上,这种操作系统和应用软件之间紧密的交互的细节。Palm OS操作系统试运行于一个多任务抢占型系统内核的顶端。一个任务用于产生用户界面,其它的任务处理诸如来自手写板的输入等。
用户界面每次只允许一个应用软件运行。因此,每当您的一个应用软件开始运行时,它就控制了整个显示屏。
注意: 应用软件是单一用户界面的形式运行的,软件自身也不能建立多任务窗口。 |
1. 内存
内存是掌上设备中比较独特的部分。RAM随机存储器在Palm OS系统中别用于两个目的:
动态内存分配
这部分内存是在系统和应用软件运行时才需要的。它其中还包含了软件所需的堆栈。当重新启动系统以后,该内存空间被清空。这部分内存的用途有点像传统的台式机操作系统下的内存。
永久存储
这包括了那些下载到掌上设备中的软件和数据,用户将在掌上设备上访问、编辑这些软件和数据。如计划事件、名片和电话号码、备忘录,以及其他所有内嵌软件所需的数据,都放在这部分内存中。每次重启时,这部分内存还是保持原样。我们可以把这部分的内存看成是台式机的硬盘上对各种文件的存储。
对于以上两种内存,在使用中都是按照区块的方式来分配的。永久存储区存放数据库,每个数据库对应着多个区块。例如,所有的备忘录信息都是存放在一个单一的数据中(每条记录对应着一个单独的区块或者数据库记录)。另外一个数据库存放这所有关于通讯录的记录。
和传统的台式机的操作系统不同,永久存储区的数据和代码不是复制到动态存储区来执行的,掌上设备的数据和代码都是在它们在永久存储区的所在位置直接被使用的。例如,当执行某部分程序时,就是直接在永久存储区该程序存放的位置被执行的。因为永久存储区位于RAM中,因此CPU当然可以直接读取它们,就像读取去它的RAM一样。同样,其中的数据也能够直接在存储位置被读取和显示。
注意: 在Palm掌上设备中,永久内存被小心的保护起来,防止由于开发者程序中的错误而意外地改写了永久内存中的重要数据。因为,谁也不希望因为一个简单程序中的小错误造成其他数据的丢失。因此,一般情况下, 永久内存是被设备写保护的,只允许读,就像所有其他的只读存储器一样。对某部分RAM的修改是不允许的。为了能够修改永久内存中的某个特定区块 ,您必须使用到系统的某个机制,该机制能够检查用户的修改是否超出了该特定区块的范围。 |
2. 资源
我们可以把Palm OS系统中的一个应用软件看成是一个资源数据库,其中包含了很多不同的资源。每一个资源相当于数据库中的记录,有类型,有编号。按照这种存储方式,各种资源提供了应用软件所需的内核和外观元素。在台式机上,这些资源数据库的扩展名是.PRC。或者您在后面会发现,人们往往更愿意称之为PRC文件。
资源中包含的一些内容如下:
- 程序的源代码
- 用户界面元素
- 文本
- 窗体
- 图标
3. 事件
Palm OS软件时事件驱动的。事件的发生,就像手写笔的按下和抬起,然后您的软件就会对着写事件做出响应。其中的一些事件是由您的应用软件来处理的,其它的将由操作系统来处理。一旦您的软件启动,它将进入一个事件循环,周而复制地捕获事件,处理它们。该事件循环只有在用户打开另外一个应用软件,关闭当前的软件时才会结束。
4. 窗体和控件
Palm OS有一个内置的机制,用于支持各种控件和管理窗体。窗体和一个台式机系统中的窗口有点相似。因为Palm OS应用软件的用户界面的局限性,每次当后多个窗体显示时,只有一个是被激活的。
Palm OS提供了非常丰富的窗体用API函数,包含了很多用户界面元素。其中的一些如下:
- 选择框
- Radio按钮
- 普通按钮
- 列表(单栏)
- 采集器(下拉列表)
- 表格(多栏)
- 滚动条
- 静态文本标注
- 可编辑文本区
- 菜单
5. 通讯
Palm OS系统支持多种通讯方式。因为通讯模块是Palm取得成功的根本因素,您可能认为在当前和未来的应用软件中,操作系统的这部分还是一个很值得探讨的方面。当前的通讯协议如下:
- 串行通讯
- 拥有socket接口的TCP/IP通讯
- 红外线。低水平的红外通讯是通过IrDA(Infrared Data Assocation)是实现的
- 高水平的对象交换能够支持在Palm设备和支持工业标准对象之间的信息交换。当前,这些对象还只能通过IRDA实现。不过以后会提供更多的信息交换技术。
Palm OS系统还拥有以下各式各样的API函数:
- 对包含字符串的搜索,复制,数字的转换
- 日期和时间
- 某一天某一时间的定时闹钟。当到达一个特定的日期和时间,您的应用软件将得到通知(甚至当您的软件当时没有运行)。
- 查询——Palm OS支持掌上设备——允许用户在该设备的任何一个地方寻找需要的字符串。所有的应用软件将被调用,以便在其自己的数据库中搜索特定的字符串。
注意: Palm OS的子系统被叫做管理器,每一个函数/子程序的命名规则制定了它们所属的管理器。例如,所有的内存管理器程序名的开始总是“Mem”三个字母。 所有的数据库管理器程序名的开始总是“Dm”,所有的窗体管理器程序的名称开始总是“Frm”。 |