Palm OS 5开发概述(四)
Palm OS 5新增加强大的安全功能。这种安全功能可以满足加密/解密、散列法、安全的通信和签名验证的需要。开发者可以访问下面的API:
通过使用RC-4加解密代码实现加密/解密功能。RC-4是一种众所周知的、标准的流算法,它能够提供强大的数据加密和解密功能,一次只处理一个字节。
根据输入产生散列。SHA-1是另外一种标准的加解密算法, 它能够用于生成和输入唯一对应的160位输出的散列。生成的散列是无冲突的,而且不会暴露任何输入信息。
创建互联网标准的安全通道。由于支持SSL3,所以Palm OS 5支持和所有安全的网络服务(如网站、安全的SMTP等等)通信。
通过使用RSA验证算法实现鉴权。经过RSA密码系统(工业中使用最广泛的系统)加密的数据能够通过Palm OS 5安全功能的检验。
高密度API
在具有新的高密度特性的Palm OS设备上,操作系统新增了对双密度屏幕(320×320)的支持,所以应用程序可以不需要经过任何改动就可以运行,而且在现在的屏幕上的效果看上去和在以前的屏幕上的效果一样地好。特别是字体和标准的用户界面控件将会受益于屏幕像素点的增加,而且根本不需要应用程序做任何修改。应用程序可以在现有的位图族中添加高密度版本的位图,从而获得更好的视觉效果。
系统通过定义两个坐标系统来使得现有的应用程序可以忽略屏幕的密度。系统默认使用的是“原始”坐标系统,即使用0到159的坐标,符合现有的大多数Palm OS设备上160×160的屏幕。每一个原始坐标所表示的像素点的数目会根据屏幕密度发生变化。所以,当一个应用程序绘制一条从原始坐标(0,0)到(5,0)的直线时,在高密度屏幕上绘制10个像素点,而在低密度屏幕上则只绘制5个像素点。
如果应用程序想要特别地处理高密度屏幕,可以调用WinSetCoordinateSystem()函数来切换到“本地”坐标系统。在“本地”坐标系统中,坐标和屏幕上的像素点相匹配。诸如图像编辑器之类的应用程序为了能够以最大的精度来绘制像素点会这么做。因为如果位图族中包含一个高密度的位图成员的话,操作系统会自动绘制它,或者会根据屏幕格式把它转换为最佳大小的位图,所以在绘制位图时不需要改变坐标系统。
因为离线窗口默认为低密度,所以应用程序仍然可以直接访问离线窗口的数据位。(但是,如果应用程序直接访问屏幕的话,可能不能够获得想要的结果,因为由于屏幕技术不同会导致屏幕可能不是所期望的密度、不同的字节顺序或者其它的不同。)Palm OS 5新增加了一些API函数,所以应用程序在必要时可以在一个较低层面来同时处理高密度和低密度位图,PalmOSGlue提供一些非常有用的代码,应用程序可以借助这些代码在保持密度和处理器兼容性的同时直接创建和处理位图。
性能
很多供应商都提供各种不同速度的Palm OS 5所采用的ARM系列处理器。在Palm OS 5的介绍中,时钟速度的范围很广,从几乎和现有的摩托罗拉的龙珠处理器相近的速度到可以让所有系统性能提高100倍的速度。
因为Palm OS 5是在ARM处理器上本地运行的,所以每一个操作系统的调用都会在保证和现有的、在龙珠处理器上编写的应用程序保持极好的兼容性的同时,在ARM处理器上全速运行。也就是说,因为大多数应用程序花费的绝大多数的时间都是在操作系统调用内的,所以在所有的环境中都可以获得高性能。在某些特殊环境(应用程序包含一个冗长的、耗时的算法, 而这个算法在操作系统程序上只花费很少的时间),性能可能会比期望的要差。下一节支持ARM原码稍微介绍了这些情况并讲述如何在保持应用程序和68k设备保持便于携带和兼容性的同时提供最佳的性能。
支持ARM原码
几乎所有的Palm OS 5应用程序开发都是在现有的、面向68k的开发环境中进行的,而且所产生的PRC文件只包含68k代码。这样可以继续使用现有的、成熟的开发工具。早期版本的新的开发工具是2002年推出的,支持将来版本Palm OS的完全ARM原码的应用程序开发。但是在Palm OS硬件向ARM转变的过程当中,应用程序开发者还是基本上致力于68k应用程序(可借助于Palm OS应用程序兼容性环境“PACE”运行于ARM硬件上)开发。
某些特殊情况(应用程序包含冗长、耗时的算法, 而这个算法在操作系统程序上只花费很少的时间),运行速度可能(出于最坏的考虑,比如在比较慢的ARM处理器上运行)还不如在68k处理器上的运行速度快。可以这么处理这些极少的情形:把耗时的算法转变成自包含的应用程序ARM原码代码块。初步的测试表明这么处理的效果非常好,算法的运行速度比在68k设备上的运行速度快很多倍。一般来说,在200MHz的ARM处理器上的运行速度是在33MHz龙珠处理器上的运行速度的60倍。
编译成ARM原码的算法可以调用Palm OS内部的程序,并且返回调用它的应用程序,但是它不能直接访问68k应用程序的全局或者局部变量(除非他们的指针已经传递给ARM原码),ARM原码不能有全局变量或者静态变量,也不支持需要操作系统运行库支持的任何程序。PACE跳转到指定地址的“原始代码”,开发者的代码负责建立所需要的所有运行环境。一些参数会被传递给ARM原码,用于在应用程序和操作系统回调,还有一个应用程序定义的指针,这个指针指向的缓冲区的内容是应用程序定义的。在调用操作系统和68k应用程序时,原码必须对被传递的数据进行字节顺序差异的处理,同时也要处理结构封装、队列和参数组的字节顺序。
这是一个复杂的主题,而且到目前为止只有一些简单的工具可用,所以只建议那些具有丰富经验的C程序员在确实需要的情况下这么做。在资源馆网页的开发种子计划模块中会提供一些基于gcc的工具和范例代码。
采样声音API
现有的声音管理器在Palm OS 5中明显得到了增强。现在声音管理器支持播放和记录8或者16位立体声和mono任意(整数)采样率的采样声音,具有一个重复采样器和一个16通道的软件混音器,还包含用于播放标准WAV格式(没有压缩的PCM或者IMA4位自适应微分,被称为IMA ADPCM)的声音。许可商的硬件可能包含对混音器或者其它功能的支持。
可以同步或者异步播放声音,多个声音流会被自动混合在一起。每一个声音流可以单独启动和停止,而且可以单独调节音量或者立体声均衡。可以在一个单独的缓冲区中播放声音,或者应用程序提供一个回调函数,这样声音就可以变成声音流:实时解码和生成。
系统因点击屏幕、错误音等等而播放的声音也已经被转换成了采样声音了。(目前,预发布的仿真器有的声音是用于测试目的的,将来不会用于发行的设备上。)
Mac OS 管道开发工具(CDK)
现在Mac OS 管道开发工具(CDK)包含有为Mac OS 9或者Mac OS X上的Palm桌面软件4.0版本开发HotSync管道所必需的库和头文件。这个CDK中的新的用户管理器API包含一套新的辅助管道和应用程序安装的API函数。有几个以前只是在PC的CDK中包含的同步管理器API函数已经别添加到Mac CDK中了。HotSync的用户界面也已经针对Mac OS X Aqua升级了,提供和Mac OS X一致的外观和体验。C/C++ Sync Suite中关于Macintosh的Companion和Reference文档已经更新了关于新的API的细节和Mac OS X的CDK功能内容。
Windows管道开发工具(CDK)
现在Windows CDK包含了更新后的Visual Studio.NET的项目文件/向导。另外,Windows CDK中COM Sync Suite部分也已经更新了扩展的API函数。那些以Visual Basic或其它与COM适应的语言来使用COM Sync Suite来开发管道的开发者现在可以访问管道管理器、用户数据、安装助手和HotSync API(HSAPI)了。管道管理器对象可以用来在安装时为HotSync管理器注册管道。用户数据对象可以用来访问存储在桌面电脑中的用户数据,HSAPI对象可以用来控制HotSync管理器应用程序。安装助手对象可以用来查询设备安装的数据库和应用程序。那些在C/C++管道开发中使用上述API的开发者将会发现在COM Sync Suite中也具有相同的功能。
Palm桌面软件的可扩展性框架
Palm桌面软件4.1版本新增了两项允许开发者扩展其功能的技术: 插件和扩展件。Palm桌面软件SDK支持使用Visual C++和Visual Basic来开发插件和扩展件。可扩展性框架可以让开发者插入应用程序到Palm桌面软件,并且可以让桌面应用程序的开发者提供集成的、完整的Palm OS解决方案。
本文来源:嵌入式在线 作者:
热点资讯(一周点击率)
最受工程师关注文章
热评博文
快乐大本营
无线时代来临,移动产业生态系统将发生一些根本变化。今日头条推荐“芯片是嵌入式4G技术的关键 产业生态系统将发生变化”。
想了解嵌入式开发工具的市场情况吗?先来体验下我们的在线调查吧!填写调查问卷。

