CN1333500A - 在嵌入式环境中直观地集成应用程序的系统和方法 - Google Patents
在嵌入式环境中直观地集成应用程序的系统和方法 Download PDFInfo
- Publication number
- CN1333500A CN1333500A CN 01122382 CN01122382A CN1333500A CN 1333500 A CN1333500 A CN 1333500A CN 01122382 CN01122382 CN 01122382 CN 01122382 A CN01122382 A CN 01122382A CN 1333500 A CN1333500 A CN 1333500A
- Authority
- CN
- China
- Prior art keywords
- application
- native application
- button
- application program
- manager
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
一种用于在普遍计算部件中运行本机和非本机应用程序的系统和方法。本机应用程序和非本机应用均程序展示在一公用显示器中。应用程序管理器接收非本机应用程序码并利用该微浏览器展示该码。通过由该应用程序管理器读出的并在对该微浏览器展示显示数据时使用的主题文件,保持本机应用程序和非本机应用程序之间的外观和感觉。该应用程序管理器还配置和展示包含着用于本机和非本机应用程序的命令按钮的按钮栏。事件生成器生成指向本机和非本机应用程序的事件。和本机以及非本机应用程序相关的事件处理器接收并处理这些事件。对事件的处理可以产生由本机或非本机应用程序生成的并且由应用程序管理器展示到显示器的图形数据。
Description
技术领域
本发明一般涉及在嵌入式环境中直观地集成应用程序的方法和系统。更具体地说,本发明涉及在普遍计算部件内的公用显示中表现本机和非本机(即,HTML,JAVA)应用程序。
背景技术
总的来说计算机系统并且具体地说国际商业机器(IBM)公司兼容个人计算机系统已得到广泛使用,从而为当今现代社会的许多部门提供计算机能力。带有微处理器的系统正存在于大量以前大部分不和计算机技术接触的更小和更专用的对象群体中。这些部件有时被称为“普遍计算系统”,因为它们既具有传统计算机化部件,例如台式计算机、立式计算机、便携式计算机的外观,又具有新计算机化部件,例如电话、电器、汽车和其它设备的外观。普遍计算部件通常包括系统处理器和相关的易失性及非易失性存储器、显示区、输入装置,并且通常包括对其它计算机部件的各种接口,例如网络接口或调制解调器。
这些系统的一个显著特征是利用系统板以电方式把各个构件连接到一起。这些普遍计算部件是信息处理系统,它们主要设计成向单个用户或者在连网的普遍计算部件的情况下向一组用户提供独立的计算能力。普遍计算部件通常价格不贵,可供个人或企业购买。普遍计算部件还可包括一个或多个I/O部件(即外围设备),其和系统处理器连接并执行特殊功能。I/O部件的例子包括调制解调器、声音和视频部件或专用通信部件,诸如硬盘驱动器、CD-ROM驱动器和磁光驱动器的非易失性存储部件也被认为是外围设备。普遍计算部件经常利用网络,例如局域网(LAN)、广域网(WAN)或者其它类型的网络如因特网,和计算系统以及其它普遍计算部件连接。通过和包括普遍计算部件的计算机连接,普遍计算部件可以使用其它计算部件拥有的资源。这些资源可包括非易失存储部件上存储的文件和诸如打印机的资源。
普遍计算部件通常设计成实现专用功能,该功能具有与所执行的功能相关的本机(native)应用程序。例如,蜂窝电话可以是一种普遍计算部件并具有作为本机应用程序的电话号码本。电话号码本应用程序可以存储:该蜂窝电话的用户希望存储以便容易检索的姓名和电话号码。在普遍计算部件上执行不一定和该部件执行的功能直接相关的非本机应用程序也是有好处的并因此能使用广泛采纳的语言,例如超文本标记语言(HTML)和Java。对传统的普遍计算部件的一个挑战是要在保持普遍计算部件的外观和感觉下在公用显示器上显示本机应用程序和非本机应用程序二者。
当普遍计算部件的资源受到限制时,这种挑战加重。例如,普遍计算部件常常是移动部件例如蜂窝电话,它从基于电池的电源获取电能并且具有小的形状因素以支持部件的便携性。在受限制的普遍计算部件中,和其他计算机系统的处理器相比,处理器可能较慢。另外,随机存取存储器(RAM)的容量可能远小于传统台式计算机系统中的容量。另外,由于小的形状因素,和连接到传统台式系统中的监视器相比,显示器通常较小并且分辨率较低。普遍计算系统上的非易失存储可能限于诸如快闪存储器之类的非易失性存储器,而不是诸如磁盘驱动器(即,软盘、硬盘驱动器、Zip盘等)之类的磁介质。这些限制可能妨碍普遍计算机部件运行那种利用重量级的“抽象窗口工具箱(AWT)”直观地显示Java输出的Java应用程序。另外,普遍计算部件的图形能力明显地不同并且弱于台式计算机系统中的能力,从而携带Java应用程序更加是挑战性的。
传统的普遍计算部件设计成排它地显示本机应用程序,或者设计成排它地显示Java输出。从而,普遍计算部件中的另一个挑战是协调本机应用程序和非本机(即,HTML和Java)应用程序的显示,使它们以有效的和易于由普遍计算部件的用户使用的方式共享普遍计算部件中的同一显示空间。
发明内容
已经发现,通过利用应用程序管理器和微浏览器来和谐结合并协调显示,可以在普遍计算部件上显示本机和非本机应用程序。该应用程序管理器可显示提供启动各应用程序的机制的屏幕按钮。若用户调用按钮和一本机应用程序关联,则启动该应用程序。若该按钮和一非本机应用程序关联,则该应用程序管理器启动能显示该应用程序的微浏览器。显示的“外观和感觉”,例如显示器上各窗口的尺寸和位置,是由应用程序管理器提供的主题信息控制的。以这种方式在微浏览器上以和本机应用程序相容的外观和感觉呈现非本机应用程序。该应用程序管理器还能在显示器屏幕上显示命令按钮。当用户按这些按钮中的一个时,生成一个事件并发送给一个应用程序。按钮栏可包含用于本机应用程序以及非本机应用程序的命令按钮。当用户按一命令按钮时,出现一个事件。另外,不时地会出现其它系统事件。事件是由该应用程序管理器内的事件生成器生成的,并且发送到和本机和非本机应用程序相关联的事件处理器。该事件处理器处理事件,并且可把图形响应发送到本机应用程序窗口(在本机应用程序事件下)或者发送到非本机应用程序窗口(在非本机应用程序事件下)。利用计算机网络,例如因特网,可以在和该普遍计算部件连接的其它计算机系统中执行非本机应用程序。该普遍计算部件接收来自这种非本机应用程序的显示信息并且呈现于在该普遍计算部件上运行的微浏览器中。
上述是一个概要,其按需要包含着细节的简化、概括和略去,从而本领域中的技术人员会理解该概要只是示意性并且不带有任何限制的意图。唯一地由权利要求书定义的本发明的其它方面、发明特征以及优点会在下面叙述的非限制性的详细说明中变得清晰。
附图说明
通过参照各附图可使本领域中的技术人员更好地理解本发明并且更明确它的各种目的、特征和优点。在不同的图中使用相同的参照符号以指示类似或相同的部件。
图1是普遍计算部件的方块图;
图2是应用程序管理器和微浏览器之间交互的方块图;
图3示出正在显示微浏览器的普遍计算部件;
图4是普遍计算部件集成本机应用程序和非本机应用程序的流程图;以及
图5是能实现本发明的信息处理系统的方块图。
具体实施方式
下面的意图是提供本发明的一个例子的详细说明,但不应作为对发明本身的一种限制。相反,任何数量的改变可属于在该说明之后的权利要求书中所定义的本发明的范围内。
图1是普遍计算部件100和诸如因特网的网络105的方块图,二者互连以对该普遍部件提供非本机应用程序例如HTML和Java。和网络105连接的其它计算机系统由普遍计算部件100访问,它们负责提供通常以HTML和Java码为形式的图形显示码(尽管显示码可以是其它已实现的显示代码或者是待开发并实现的代码)。和普遍计算部件100连接的网络接口120接收图形显示码115。网络接口120可以内置在普遍计算部件100内,诸如机载以太网卡或机载调制解调器内,或者可以在和普遍计算部件100相连的采用实现接口操作的PC-HCIA卡(例如局域网(LAN)卡或调制解调器卡)的外部部件内。网络接口120既用于接收图形显示码115又用于从网络105接收其它信息,并且还用于向和网络105连接的其它计算机系统传递信息和请求。
操作系统核心125协调操作并且管理普遍计算部件100内出现的事件。操作系统核心125可直接进行操作或可使用管理特定类型的部件的专用设备驱动程序。操作系统核心125管理的操作中的一个操作是对网络接口120发送数据和从其接收数据。
操作系统核心125还读出并执行存储系统130中存储的各本机程序135。普遍计算部件100可以是一个用非易失存储部件,例如硬盘驱动器或其它存储由存储系统130管理的数据的磁驱动器,实现的健状计算部件。在受到更多限制的普遍计算环境中,例如那些具有限制了部件中空间容量的小形状因素的和使用电池电源的普遍计算部件中,存储系统130可使用诸如快闪存储器的非易失存储器存储该部件使用的本机程序。本机程序码150(从存储系统130读出)和非本机码155(例如从网络接口120接收的HTML和Java码)调用应用程序管理器110以协调向用户的信息显示。
一旦被调用(即,当引导普遍计算部件100时),应用程序管理器110从普遍计算部件100上存储的配置文件读出主题165。主题165包括各个确定应用程序管理器110如何在显示器170中显示信息的操作参数。例如,若普遍计算部件100中包括的屏幕显示器相当小,则主题165会指导应用程序管理器一次只显示一个应用程序。还可利用主题165向应用程序管理器110提供有关如何在多个应用程序间划分该屏幕显示器的指令。应用程序管理器110调用各图形API160以在显示器170中呈现图形。以这种方式,可以为具有各种不同限制的不同普遍计算部件改变主题165和图形API组160。应用程序管理器110协调按钮栏175、本机区185和由微浏览器180封装的非本机190内的各对象的显示。按钮栏175包括用于显示器上显示的本机区185和非本机区190的命令按钮。
图2示出在普遍计算部件100中运行的应用程序处理空间240内出现的并受到处理的事件的方块图。应用程序处理空间240包括应用程序管理器110、从存储系统130读出的应用程序本机码270和非本机码280、290。应用程序本机码270包括处理与本机应用程序相关的事件的事件处理器275。类似地,非本机码包括处理和非本机应用程序相关的事件的事件处理器。示出非本机应用程序,它们被划分为包含事件处理器285的非本机码280(即,HTML)和包含事件处理器295的小服务程序Java码290(即,Java码)。各事件处理器处理出现的事件并且还可能为了把事件传输给用户而造成在本机应用程序窗口中或在微浏览器窗口中显示图形信息。
应用程序管理器110包括用于生成事件信息并把该信息发送到正确的事件处理器的事件生成器245。Z次序栈255是一个跟踪当前在普遍计算部件100内执行的本机和非本机窗口应用程序的次序的栈。应用程序管理器110还保持包含着和本机应用程序有关的操作信息的本机应用程序信息250以及包含着和非本机应用程序有关的操作信息的非本机应用程序信息260。
本机应用程序信息250和非本机应用程序信息260包含有关本机和非本机应用程序所需的命令按钮的信息。应用程序管理器110利用命令按钮信息,配置并表现显示器170中的按钮栏210。按钮栏210包括用于在普遍计算部件100内运行的本机应用程序的本机按钮215和用于在普遍计算部件100内运行的非本机应用程序的非本机按钮220。当用户从按钮栏210选择一命令按钮时,事件生成器245利用该信息生成一个由相关的事件处理器处理的事件。
显示器170包括按钮栏210、本机应用程序窗口205和微浏览器窗口225。微浏览器窗口225封装各个和非本机码280以及小服务程序Java码290相关的窗口。如其名字所意味,本机应用程序窗口205用于显示对普遍计算部件100是本机的应用程序。在一实施例中,对于每个当前在普遍计算部件100中运行的本机应用程序,存在一个本机应用程序窗口。可以同时显示这些窗口,或者可以显示一个窗口并同时隐藏其它窗口。显示各窗口还是隐藏各窗口取决于普遍计算部件100以及它的显示屏幕的约束和限制。微浏览器225用于显示非本机应用程序,例如HTML应用程序和基于Java的应用程序。同样,在一实施例中为当前在普遍计算部件100中运行的每个非本机应用程序建立一个微浏览器窗口。是同时显示这些窗口还是每次只显示一个窗口取决于该普遍计算部件的限制。另外,一些普遍计算部件在给定时间只显示一个应用程序(本机或非本机)并在用户对它们作出选择之前把其它应用程序的显示隐藏起来不予观看。本机码270利用图形API(见图1)把图形展示在本机应用程序窗口205中。在非本机应用程序的情况下,为了使这些非本机应用程序具有和本机应用程序一样的外观和感觉,把HTML或Java码间接地展示在微浏览器225上。以这种方式,在所执行的各种本机的和非本机的应用程序之间均可保持显示170的外观和感觉上的一致。从而非本机应用程序的字体、大小和显示位置可以适应为具体普遍计算部件而设计的外观和感觉。
图3示出一个配置成按普遍计算电话300运行的示例普遍计算部件。普遍计算电话300包括用于显示本机应用程序窗口310、微浏览器窗口320和按钮栏330的显示屏幕305。按钮栏330包括本机应用程序命令按钮335和非本机应用程序按钮340。本机应用程序窗口310类似于蜂窝电话中使用的电话号码簿。用户在希望蜂窝电话拨号时进入本机应用程序窗口310的联系人姓名和电话号码并且接着选择姓名/号码。和本机电话本相关联的本机命令按钮335包括一个用于编辑联系人信息的按钮和一个添加新联系人的按钮。利用定点设备360选择命令按钮。另外,该普遍计算部件可连接着或包括着其它选择装置,诸如拇指选择器350、跟踪球或跟踪区(普遍计算电话300中未包括),以便选择命令按钮。另外,可以使用语音识别软件以允许语音命令,例如“点击编辑”,来点击编辑命令按钮和进行其它功能。可以通过向麦克风375说命令而在普遍计算电话300中使用语音识别软件。一旦出现电话呼叫,麦克风375还用于电话通信。扬声器370用于电话通信并且用于从本机或非本机应用程序中接收可听的信息。小键盘380含有用来便于输入电话号码的数字键。对于其它应用程序,取决于部件所希望的功能,普遍计算部件可以含有数字字母键组或者其它专用的键。
显示器305还包括非本机应用程序320。图3中示出的非本机应用程序320是电话号码簿服务。用户输入人的姓名和州名,非本机应用程序320回送来自号码簿的电话号码表。非本机应用程序320驻留在一个和因特网连接的服务器上。普遍计算电话300的用户利用普遍计算电话300中包含的无线调制解调器和因特网连接。该服务器把HTML码发送给普遍计算电话300,随后在该电话300上运行的应用程序管理器利用已安装的主题在微浏览器300中展现该HTML码。非本机应用程序按钮340包括指示该浏览器停止装入当前页(“X”图形)、回送前一页(左箭头)、前进到下一页(右箭头)以及列出收藏夹中或带书签的Web站点(文件夹)的各种Web浏览按钮。当用户按任何一个非本机应用程序按钮340时,该非本机应用程序接收该事件并且执行所请求的动作。
图4是一个流程图,说明装入应用程序管理器以及管理微浏览器中涉及的逻辑。该程序流程开始于400处,随后应用程序管理器装入用于该普遍部件的主题(输入405)。接着应用程序管理器在显示器中展示按钮栏(步骤410),从而用户可以从按钮栏查看并选择按钮。用户通过点击和其希望运行的应用程序相关的按钮来选择应用程序(步骤415)。对用户希望运行的每个应用程序重复该步骤(以及相随的各步骤)。系统判定用户是选择运行本机应用程序还是非本机应用程序(判定420)。若该应用程序是本机应用程序,取“是”分支425,随后从和该普遍计算部件连接的非易失性存储器装入该本机应用程序(输入430)。根据该本机应用程序提供的信息,系统判定是否需要在按钮栏中包括专用于该本机应用程序的附加按钮(步骤435)。若需要附加的命令按钮,则对按钮栏添加应用程序专用的按钮(步骤440)。该本机应用程序在显示器中展现,从而用户可使用该应用程序(步骤445)。另一方面,若判定框420中的应用程序是非本机应用程序,则取“否”分支450,随后把该非本机应用程序装入该普遍计算部件(输入455)。由于对于该普遍计算部件来说,该应用程序不是本机的,故可以通过访问计算机网络,例如因特网,并且从另一个也和该计算机网络连接的计算机(即,服务器)接收该应用程序显示信息来装入该应用程序。根据该非本机应用程序提供的信息,系统判定是否需要在按钮栏中包括专用于该非本机应用程序的附加按钮(步骤460)。若需要附加命令按钮,则对按钮栏添加应用程序专用的按钮(步骤465)。该非本机应用程序在显示器中展现,从而用户可使用该应用程序(步骤470)。利用在输入405中装入的主题文件中找到的参数,间接地在显示器上展示该非本机应用程序。通过使用主题文件,利用微浏览器以类似于显示本机应用程序的方式展示非本机应用程序,例如HTML或Java码。以这种方式,非本机应用程序保持和它们的本机对应部分相类似的外观和感觉。
应用程序管理器接收普遍计算部件中出现的各种事件(输入475)。当接收一事件时,应用程序管理器判定应由哪个应用程序处理该事件并且把事件信息传送给该本机或非本机应用程序的事件处理器(步骤480)。若用户通过关闭部件或者通过暂停部件停止该普遍计算部件的执行,则判定框485转到“是”分支495并且在结束框499停止执行。另一方面,在该普遍计算部件正在运行的同时,反复地取“否”分支490以循环地接收以后的事件。
图5示出信息处理系统501,它是能提供本文中所说明的应用程序管理器和微浏览器功能的普遍计算部件的一个简化例子。计算机系统501包括和主总线505连接的处理器500。层二(L2)高速缓存器510也和主总线505连接。主总线-PCI总线桥路515和主存储器520连接,其包含高速缓存器和主存储器控制功能,并且提供总线控制以处理PCI总线525、处理器500、L2高速缓存器510、主存储器520和主总线505之间的传输。PCI总线525为各种部件,例如LAN卡530,提供接口。PCI-ISA桥路535提供总线控制以处理PCI总线525和ISA总线540、通用串行总线(USB)功能件545、IDE部件功能件550、电源管理功能件555之间的传输,并且可以包括其它未示出的功能件,例如实时时钟(RTC)、DMA控制、中断支持以及系统管理总线支持。外围设备和输入/输出(I/O)部件可以和与ISA总线540相连的各种接口590(例如,并行接口592,串行接口594,红外(IR)接口599,键盘接口598,鼠标接口570,以及固定磁盘(FDD)572)连接。替代地,许多I/O部件可以由和ISA总线540连接的超I/O控制器(未示出)来容纳。
BIOS580和ISA总线540连接并且含有用于各种低级系统功能和系统引导功能的必要的处理器可执行代码。BIOS580可存储在任何计算机可读的介质中,包括:磁存储介质、光存储介质、快闪存储器、随机存取存储器、只读存储器以及传递编码着指令的信号(例如来自网络的信号)的通信介质。为了使计算机系统501与别的计算机系统相连从而在网络上拷贝文件,LAN卡530和PCI-ISA桥路535连接。类似地,为了利用电话线连接把计算机系统501连接到ISP以连接到因特网,调制解调器575和串行端口594以及PCI-ISA桥路535连接。
尽管图5中描述的计算机系统能执行本文中说明的复制处理,但该计算机系统只是计算机系统的一个例子。本领域中的技术人员会理解许多其它计算机系统设计均能实现本文中说明的复制处理。
样本实现
下面说明本发明的一个示例实现,它使用采用Photon图形环境的Neutrino操作系统。选择Newtrino操作系统是因为它对资源的有限要求使得它很适用于受限制的普遍计算环境。
应用程序管理器是一个在Photon应用程序生成器工具(phAB)帮助下建立的Photon应用程序。该管理器的主要功能是:
I.根据主题把显示器分割成按钮栏和应用程序区。
I.控制在按钮栏中显示哪些应用程序按钮。
I.运行和控制应用程序。
I.把选定的GOI事件路由到应用程序。
I.把选定的硬件事件路由到应用程序。
I.登录用户
主题是由部件内容提供者提供的一个配置文件,它用于赋予用户界面特定的外观和感觉。它包含窗口区的定义以及这些区内按钮栏的布署。它定义可使用哪组按钮以及这些按钮使用什么样的图标。一部件上可存在多个主题并且用户可切换它们。
按钮栏是由管理器建立的可以显示应用程序按钮的窗口。可以在不同的位置上存在多个栏。至少一个栏应显示主页(Home)按钮和帮助按钮。本实现中的各按钮栏总是可见的。其原因是:
I.允许用户迅速地和简单地选择另一个应用程序。
II.迷惑的用户总能使用主页按钮和帮助按钮。
III.不保证硬件具有主页按钮。
由当前登录的用户所使用的主题配置文件确定栏的位置。其原因是:
I.内容提供者可根据需要方便地分割屏幕以便显示广告和内容。
II.授予用户移动栏的自由可能会负面地影响内容布局。
由主页按钮激活的URL在home.data(一个标准的按钮配置文件)中规定。
应用区占用屏幕中按钮栏之间的剩余部分。在ISRF说明书中,该区域称为终端管理器区。在该区域中显示所有的应用程序。管理器可进一步把应用程序区分割成多个窗口,从而可以同时显示多个应用程序。每一次只能看见一个按钮的应用程序,且应用程序不重叠。
主页(Home)屏幕是一个在应用程序区中按默认值显示的静态的或者动态生成的HTML/JavaScript页,并且是通过应用程序管理器所拥有的微浏览器显示的。它可以显微标、广告或其它基于Web的应用程序的按钮。请注意“基于Web的”在本环境下意味着通过静态的或者动态生成的HTML/JavaScript页显示的应用程序。主页屏幕上的一个按钮可以直接和另一个要在该微浏览器中显示的HTML页链接或者和一个本地小服务程序链接。在后一种情况下,该小服务程序可请求装入一个新的URL。
应用程序管理器实际上由运行在不同进程中的几块构成:
在引导普遍计算部件时运行应用程序管理器。应用程序管理器显示各按钮栏并且运行所有的应用程序。当激活(按下)一按钮时,应用程序管理器启动与该按钮关联的应用程序并且跟踪应用程序的Z次序。通过对适当的进展发送进程间通信(IPC)消息,应用程序管理器的事件生成器把系统事件发送给应用程序。应用程序管理器还管理用户登录。当激活登录按钮时,应用程序管理器查询起始路径以确定可得到哪些用户并且把他们显示在登录屏幕上。当该用户选择一个用户时,应用程序管理器会提醒输入口令(若已记录的话)并且登录该用户。根据该用户的主题重新配置显示器。
应用程序管理器库是作为一个本机对象文件包含的,各本机应用程序和它链接以便调用应用程序管理器API。这完整地封装IPC机制。
Java外壳在Java虚拟机(JVM)内运行,并且由应用程序管理器API组的Java版本和本机方法组成,这些本机方法和应用程序管理器库键接以便调用真正的应用程序管理器API。
微浏览器子构件是由应用程序管理器调用的用来显示基于Web的或基于小服务程序的应用程序的Photon应用程序。它基本上封闭可显示HTML和JavaScript的PtWebClient小配件。由于每个窗格是独立的Photon窗口,故它可来回切换并且仍显出相同的图形数据。如果基于Web的应用程序造成故障,使微浏览器按一个独立的进程运行可提供应用程序管理器内的编程一致性和安全性。
所有希望按照应用程序管理器显示的应用程序被编码成对该管理器注册并且从该管理器处理事件。本机应用程序各在它们自己的Photon对话中启动。基于Web的应用程序可在它们自己的微浏览器中或者在公用的微浏览器中显示。采用公用微浏览器节省资源但增加应用程序之间切换所需的时间,因为要重新装入URL。请注意,在微浏览器中可显示任何基于Web的应用程序,但是只有本地小服务程序和本机应用程序才能调用管理器API或接收系统事件。用来调用应用程序的按钮可驻留在二个不同的位置中:
A.在按钮栏上:
驻留在按钮栏上的各应用程序按钮可以是本机的或者基于
网的。通过在由主题文件的ButtonInfoDirectory字
段规定的目录中安装一个按钮数据文件,可在栏上显
示各按钮。
A.在网页上:
通过修改一浏览器中显示的HTML,可在网页上安装应
用按钮。若该页面是静态的,则通过修改HTML文件
达到。若该页面是动态生成的,则通过产生该页的本
地小服务程序改变。小服务程序如何完成取决于应用程序管理器。
基于Web的按钮可直接调用要装到微浏览器中的新URL
或者可调用小服务程序码,其中该小服务程序码可要求应用程序管
理器激活隐藏的按钮。应用程序实现要求:
在本实现中,各本机应用程序需要:
I.和shelllib.h标题文件一起编译以得到应用程序管理器API
原型。
II.和Shelllib.o目标文件链接以获得对应用程序管理器API的
可寻址性。
III.实现eventHandler功能以处理接收系统事件。
IV.调用实例化的RegisterApplication以通知应用程序管理器:
该应用程序正在行。
V.调用Get.ApplicationArea以设定应用程序的显示窗口的大
小和位置。
VI.登记环境帮助格式(反之则显示台式机默认格式)。
应用程序的事件处理器必须响应的唯一事件是SE_CLOSE_APP事件,应用程序应对该事件保存有关数据并关闭自己。
驻留在普遍计算部件上的基于小服务程序的Java应用程序需要:
I.引入Shell.SystemEvent
II.引入Shell.Shell
III.实现Shell.ShellListener以处理接收系统事件。
IV.调用实例化的RegisterApplication以通知应用程序管理器:该应用程序正在运行。
V.登记环境帮助格式(反之则显示台式机默认格式)
应用程序注册——为使本机应用程序或Java应用程序出现在按钮栏中,把配置数据文件放到按钮信息目录中。任何安装一应用程序的程序负责建立该文件。它应具有一个和该应用程序名称相关的名称并且具有扩展名“.data”。
一些数据文件名是由应用程序管理器保留的。它们是home.data、web.data、keypad.data、exit.data、logon.data、help.data、message.data和timedate.data。记录这些数据文件生成的各个按钮,供应用程序管理器特殊应用程序。例如,程序不都要和帮助按钮相关,因为应用程序管理器认识该按钮的数据文件名并且会使用内部帮助功能。主要的GUI组件
Photon窗口——本机应用程序码利用Photon API在-Photon窗口内生成和绘图。应用程序窗口具有应用程序区的尺寸,并且每一次只看到一个应用程序窗口。各应用程序还可生成较小的对话框窗口。这些窗口应节约地使用并应是模态的,意味着对话解除前用户不能使用任何其它部分的应用程序GUI。
微浏览器——产生HTML/JavaScript的Java小服务程序应用程序,所产生的HTML/JavaSeript被发送到一微浏览器窗口并且通过微浏览器本机码在其中展示。微浏览器支持HTML3.2和JavaScript1.1。从而,小服务程序可自我调用。
按钮栏——由应用程序管理器建立的包含着按钮小配件的Photon窗口。每个按钮保持一个指针,它指向用于确定显示哪些应用程序的数据结构。
小键盘——由应用程序管理器建立一个Photon窗口,用于对不带有硬件键盘的系统提供键输入能力。该小键盘建立一个Photon最前端区,该区发出回到Photon窗口管理器的键事件以分布到带有焦点的小配件。
Java小服务程序——一旦接收来自微浏览器的HTTP请求就由HTTP服务器调用。它产生随后由该微浏览器展示的HTTP输出。
ISV(通过应用程序管理器配置文件)很能配置各应用程序和状态栏以适应它们希望的外观和感觉。最终用户不能配置这些栏。按钮可按图标、或正文或同时按这二者显示。栏的背景可以是单色,或者可以通过规定在该栏中重复的一组垂直象素的颜色而呈明暗。还可通过向应用程序管理器发送GUI事件而由各应用程序配置按钮。
在一专用目录结构中安装应用程序管理器的这些组件。默认的基目录是/nto/shell,然而,可以在调用应用程序管理器之前通过引出PVC_SHELL_PATH变量予以改变。主题文件放在基目录中。按钮和图标的目录可在任何处,但建议也放在其中。在目录base/bin/processor中放入所有可执行的项目。应用程序管理器还利用PVC_HOME_PATH环境变量确定在该部件上何处安装用户计帐。若未规定该变量,则使用/home。应用程序管理器预计默认用户“default”会在该目录中。
当启动应用程序管理器时,它读默认用户的主题文件、建立和占据各按钮栏,并且启动主页按钮的应用程序。若某应用程序的BackgroundProcess关键字具有的值为“yes”,则立即启动该应用程序。然而,在它接收SE_FOREGROUND事件之前,不应实现这样的应用程序。这提供一种启动一个监视器应用程序的机制,晚些时候显示器可能出现或者可能不出现该应用程序。运行时活动:
用户按某个应用程序按钮——第一次激活一个具有驻留在一按钮栏中的按钮的应用程序。该应用程序出现在前台中,并且向前台中先前的应用程序发送一个SE_BACKGROUND事件。若接着按另一个按钮,就把那个应用程序带入前台。向前台中先前的应用程序发送一个SE_BACKGROUND事件,并对前台中现在的应用程序发送一个SE_FOREGROUND事件。
应用程序/应用程序管理器交互——应用程序可异步地调用应用程序管理器以得到应用程序区的尺寸或者改变环境帮助配置。例如,一应用程序可根据用户在该应用程序内的何处而改变帮助消息。
硬件事件——该屏幕电话硬件可具有数个功能专用按钮,例如“主页”按钮、“WWW”按钮或者滚动盘/轮。当激活一个按钮时,应用程序管理器负责和硬件部件驱动程序进行连接以及接收硬件生成的事件。应用程序管理器可使用该事件本身(例如,把主页带到前台),或者可把该事件路由到一应用程序(例如SE_SCROLL_LUP事件)。
关闭事件——由于通常普遍计算部件是受资源限制的,可能需要在启动其它应用程序之前关闭一些应用程序。接收SE_CLOSE_APP事件的应用程序应保存任何状态并终止自己。当启动一新应用程序的RAM要求大于自由存储器时,把该事件发送给不按后台进程运行的后台应用程序。关闭一些应用程序直至理论上存在足够的RAM为止。关闭进程是异步的。应用程序管理器在运行新应用程序以前不会等待关闭任何应用程序,因为该RAM要求值只是一个最大使用值。
对事件调整大小——应用程序管理器可动态地调整应用程序区的大小。在对此做准备中,各应用程序应处理SE_CHANGE_APP_AREA事件。一旦接收该事件,各应用程序就通过GetApplicationArea功能查询应用程序区尺寸并且对它们的Photon窗口调整大小/调整位置。
应用程序请求——应用程序可请求成为前台应用程序。例如若正在显示帮助对话框,则该请求可能不会立即执行。应用程序还可请求在Web浏览器中显示特定的URL。该浏览器会成为前台应用程序并对显示器发送该URL。
IPC机制——由于每个应用程序皆在一个独立的进程中运行,利用IPC机制在各应用程序和应用程序管理器之间通信。在Neutrino下,使用系统消息。通过应用程序所链接的应用程序管理器库码把应用程序管理器API调用编组到发送包中并发送到应用程序管理器进程中。应用程序管理器的IPC成分去编组该包并调用本机应用程序管理器API。Java应用程序历经另外二个层,因为它们调用一个接着再调用本机方法的JavaAPI。对于事件处理器回调,应用程序管理器调用它的IPC组件,后者对该调用编组并把该包发送给本机进程。接着应用程序管理器库码去编组并且把该调用路由到本机事件处理器。在Java小服务程序的情况下,本机处理器处在应用程序管理器本机组件之内并且它确定调用哪个小服务程序对象。
为了向Neutrino应用程序发送消息,须确定该应用程序的进程ID(PID)和信道ID(CHID)。利用这些值建立一个连接ID(COID)。应用程序管理器应用程序能容易地建立与应用程序管理器的连接,因为应用程序管理器的PID和CHID是公开的。然而,在应用程序管理器首先从一标识该应用程序的PID和CHID的应用程序中接收消息之前,应用程序管理器不能对该应用程序发送消息。
下面是应用程序管理器和应用程序管理器库(在一典型应用程序内)为进行IPC所采取的步骤的说明:
应用程序管理器进程 | 应用程序进程 |
初始化 | |
PtAppAddinput(0) | |
把pid和chid保存到文件 | |
启动应用程序 | |
装入应用程序管理器pid和chid |
PtAppAddInput(pid) | |
应用程序把消息发送给应用程序管理器 | |
coid=ConnectAttach(shell pid,chid,nto_side_channel) | |
MsgSend(coid,msg) | |
ReceivelPCMessage()被调用 | |
coid=ConnectAttach(app pid,chid,nto_side_channel) | |
MsgReply(rcv_id) | |
不阻塞并继续 | |
应用程序管理器向应用程序发送消息 | |
MegSend(coid,msg) | |
ReceiveIPCMessage()被调用 | |
MsgReply(rcv_id) | |
不阻塞并继续 |
在ConnectAttach()中使用NTO_SIDE_CHANNEL属性,从而当应用程序管理器产生另一个进程时Neutrino不会尝试重复连接文件处理。请注意应用程序管理器码很难编码成使用ID为1的信道。假如PtAppAddInput()曾建立带有不同ID的信道,应用程序管理器的IPC机制会破裂。
IPC的另一个错综复杂在于J9 JVM不是Photon应用程序并且因此不能使用PtAppAddInput功能。它需要一个独立的用于接收消息的线程。但是,J9具有和Photon相类似的线程化限制。为接收消息建立的Neutrino线程不能总是成功地做出JNI调用。在应用程序管理器的Java码中实现的解决办法是启动一个Java线程,其中该Java线程向下调用到本机消息接收循环(线程阻塞接收)。从而,当应用程序管理器调用一小服务程序时,在由JVM建立的一个线程上进行JNI。这样,JVM与本机应用程序使用不同的应用程序管理器库初始化码:
应用程序管理器进程 | JVM进程 |
初始化 | |
PtAppAddInput(O) | |
chid=ChannelCreate() | |
启动Java消息接收线程 | |
MsgReceive(chid)-阻塞 |
为了提供这种替代的消息接收机制,从同一个源建立二个应用程序管理器库二元体。带有二个不同代码路径的单个二元体是不希望的,因为它会强迫JVM和Photon库链接,这加大了尺寸。
公共方法/API本机应用程序管理器API:
应用程序管理器为各应用程序提供一组供使用的本机API,以便共享诸如屏幕和硬件按钮的系统资源。应用程序管理器封装一些系统事件。这些事件在适当时发送给应用程序。本机事件是一个指向含有二个字段的结构的指针:
struct SystemEvent{ //仅供应用程序管理器使用 int id; int eventType; char eventData[EVENT_DATA_SIZE];//仅供应用程序管理器使用 }
其中eventType为下述之一:
SE_FOREGROUND SE_BACKGROUND SE_CLOSE_APP <dp n="d18"/> SE_SCROLL_UP SE_SCROLL_DOWN SE_SCROLL_LEFT SE_SCROLL_RIGHT SE_CHANGE_APP_AREA SE_HELP_REQUEST SE_BUTTON_PRESSED (硬件按钮) SE_SHELL_VALUE_CHANGED 通用API: VoidsystemEventHandler(SystemEvent event);
这是由每个应用程序实现的回调功能。一旦对应用程序管理器注册,
就把该例程的地址传送给应用程序管理器。调用该功能来传递系
统事件。AID RegisterApplication(String programName,PtWidget_t* window,
EventCallback systemEVentHandler);
每个应用程序皆在被调用时调用该功能。所回送的值是唯一的应用程序
ID,当调用某个其它API时使用它。Void UnregisterApplication(AID applicationID);
应用程序在关闭前调用该功能。RECT GetApplicationArea(AID applicationID);
应用程序调用该功能以确定它的Photon窗口的尺寸和位置。回送
值为RECT结构。当应用程序接收SE_CHANGE_APP_AREA事件时
也调用该功能。Boolean IsForegroundApp(AID applicationID);
应用程序可调用该功能以判定它是否是前台应用程序。调用程序提供
在应用程序注册期间回送的AID。Boolean RequestForeground(AID applicationID);
应用程序可调用该功能以请求在前台中显示它。对于希望立即显
示正调入的个人的名字/号码的应用程序,例如调用程序ID,这是有
用的。Void RequestURL(AID applicationID,String URL);
应用程序可调用该功能以请求Web浏览器显示新URL.该浏览器被
带到前台。Void SetShellValue(String name,String value);
应用程序可调用该功能以建立或设定名字/值对象,然后可由其它
应用程序查询它们。最大名字长度为MAX_NAME_LENGTH。最大
值长度为MAX_VALUE_LENGTH。当成功地建立或改变一事
件对象时,应用程序管理器会对所有已注册的应用程序发送一个
SE_SHELL_VALUE_CHANGED事件。Boolean GetShellValue(String name,String value);
应用程序可调用该功能以请求一个先前设定的名字/值对象的值。
若找到该对象,则把该值放在由值指向的缓冲器中,并且该功能
回送SUCCESS,反之它回送FAILURE。调用程序负责为
该值提供足够大的缓冲器。Void SendShellEvent(SystemEvent*event);
应用程序可调用该功能以向应用程序管理器发送一个事件。应用程序管理
器异步地处理该事件。应用程序管理器等着侦听的事件有:I.AE_CHANGE_BUTTON-改变按钮文本和/或位图
(在存储器中)II.AE_CHANGE_APP_PROGRAM-改变应用程序的程序值
(在存储器中)III.AE_CHANGE_BOTTON_STATE-使能或禁用按钮IV.AE_SYSTEM_CALL-传送要由该OS应用程序管理器执
行的命令串V.AE_ADD_BUTTON-向一个栏添加一个按钮VI.AE_REMOVE_BUTTON-从一个栏去掉一个按钮VII.AE_RECONFIGURE_SHELL-强迫重读当前用户的主题VIII.AE_START_ANIMATION-启动“装入…”动画序列IX.AE_STOP_ANIMATION-停止“装入…”动画帮助API
当用户按应用程序栏上的帮助按钮时,存在二种显示环境帮助的方
式。即,应用程序管理器通过SE_HELP_REQUEST事件通知前台应
用,或者应用程序管理器自己显示一个带有帮助消息的对话框。当
应用程序发送帮助事件时,它可以以它自己拥有的方式显示帮助,
这可包括调用RequestURL APL来请求浏览器显示一特定的
URL。请注意,该浏览器利用整个应用程序区,并且用户点击该应
用按钮以返回到该应用程序。下列API允许应用程序选择优选方法。
若一应用程序登记多于一种类型的帮助方法,则只使用首先找到的
方法。应用程序管理器处理帮助请求的次序是:I.向前台应用程序发送一个SE_HELP_REQUEST事件II.在弹出的窗口中显示前台应用程序的帮助消息III.在弹出的窗口中显示通用帮助Boolean RegisterHelpEvent(AID applicationID);
当应用程序希望以它自己的方式显示帮助时,此方法是有用的,该
功能回送值SUCCESS或FAILURE以说明登记是否成功。Boolean RegisterHelpMessage(AID applicationID,String message);
对于希望显示短帮助消息的本机应用程序或小服务程序,该方法是
有用的。它的字符数限制为MAX_MESSAGE_LENGTH。该消息显
示在一个位于屏幕中心的弹出窗口中。报警API
应用程序可通过调用下述功能中的一个向用户发信号。为了使用
户的混淆最小,一个非前台的应用程序应进行某种形式的正在请求
切换到前台的报警。Void AlertMessage(String message);
该功能使应用程序管理器向用户显示短消息。若已安装
message.data按钮,则该消息出现在该按钮上;反之,则会显示
一个位于屏幕中心的系统模态弹出窗口。按OK关闭该弹出并且
对该应用程序回送控制。Int AlertQuery(String message,String button Text[]);
该功能使应用程序管理器显示带有消息的和一些通过buttonText
数组说明的按钮的系统模态弹出窗口。最后一个buttonText元
素是“空”元素。该功能回送被按按钮的(基于1的)号码。默
认按钮是按钮1。该方法是同步的。按任何按钮关闭该弹出并
对该应用程序回送控制。Void AlertBeep(int msBeepDuration);
该功能造成按规定的以毫秒为单位的持续时间蜂鸣。
Java外壳API
应用程序管理器提供一组供小服务程序使用的Java API,以共享诸如屏幕和硬件按钮的系统资源。一个小服务程序应用程序建立一个应用程序管理器类的实例以便调用应用程序管理器API。应用程序管理器的各Java类都在com.ibm.shell包内。应用程序管理器封装某些系统事件。在适当时会把这些事件发送给应用程序。Java事件是SystemEvent类的一个对象:
public class SystemEvent extends java.util.EventObject { public int getEventType(); 回送事件类型。参见本机API中的类型列表。 public byte[] getEventData(); <dp n="d22"/> 回送事件数据。参见本机API中列出的对每个事件回送的数据。 }
小服务程序应用程序应实现ShellApp接口,从而它可在出现系统事件时被告知。在应用程序注册时向应用程序管理器传送应用程序对象的引用。
public interface ShellListener extends java.util.EventListener { public abstrct Void systemEventHandler(SystemEvent event); } 通用API: public class Shell { Shell Shell()
构造函数。public void RegisterServlet(String programName,ShellListenerapplication);
每个应用程序启动时调用该功能。public Void UnregisterServlet();
每个应用程序退出时调用该功能。public RECT GetApplicationArea();
应用程序调用该功能以确定它的Photon窗口的尺寸和位置。回送
值为RECT结构。当应用程序接收SE_CHANGE_APP_AREA事件时
也调用该功能。public boolean IsForegroundApp();
应用程序可调用该功能来判定它是否是前台应用程序。public boolean RequestForeground();
应用程序可调用该功能以请求在前台中显示它。对于诸如调用程
序ID的应用程序,这是有用的,其中该应用程序希望立即显示正调入的
个人的名字/号码。public Void RequestURL(String URL);
小服务程序可调用该功能以请求微浏览器显示新URL。该微浏览器被
带到前台。Void SetShellValue(String name,String value);
应用程序可调用该功能以建立或设定名字/值对象,然后可由其它
应用程序查询它们。最大名字长度为MAX_NAME_LENGTH。最大
值长度为MAX_VALUE_LENGTH。当成功地建立或改变一事
件对象时,应用程序管理器会对所有已注册的应用程序发送一个
SE_SHELL_VALUE_CHANGED事件。Boolean GetShellValue(String name,String value);
应用程序可调用该功能以请求一个先前设定的名字/值对象的值。
若找到该对象,则把该值被放在由值指向的缓冲器中,并且该
功能回送SUCCESS,反之它回送FAILURE。调用程序负责
为该值提供足够大的缓冲器。Void SendShellEvent(SystemEvent*event);
应用程序可调用该功能以对应用程序管理器发送事件。应用程序管理器异
步地处理事件。帮助APIpublic boolean RegisterHelpEvent();
当应用程序希望以它自己的方式显示帮助时,该方法是有用的。该
功能回送值SUCCESS或FAILURE以说明登记是否成功。public boolean RegisterHelpMessage(String message);
对于希望显示短帮助消息的本机应用程序或小服务程序,该方法是
有用的。它的字符数限制MAX_MESSAGE_LENGTH。该消息显示
在一个位于屏幕中心的弹出窗口。报警API
应用程序可通过调用下述功能中的一个,向用户发信号。为了使
用户的混淆最小,一个非前台的应用程序应进行某种形式的正在请
求切换到前台的报警。public void AlertMessage(String message);
该功能使应用程序管理器显示一个位于屏幕中心的带有规定的消
息和OK按钮的弹出窗口。按OK钮关闭该弹出窗口并把控制回送
到应用程序。public int AlertQuery(String message,String buttonText[]);
该功能使应用程序管理器显示带有消息的和一些通过buttonText
数组说明的按钮的弹出窗口。最后一个buttonText元素是“空”
元素。该功能回送被按按钮的(基于1的)号码。默认按钮是按
钮1。按钮正文可包括在一个字符前面的“&”字符以标明该字
符为一个快捷键。该方法是同步的。按任何按钮关闭该弹出窗口并
对该应用程序回送控制。public void AlertBeep(int msBeepDuration);
该功能造成按规定的以毫秒为单位的持续时间蜂鸣。
接口定义
本节包含对其它成分和对OS的接口的详细说明。数据结构参照规约。
在小服务程序可引入的应用程序管理器包中提供对本机应用程序管理器API的各个Java接口配置参数
在ini文件的数个类中保持应用程序管理器的全部配置。内容提供
者配置和用户配置之间存在着(略为任意的)界限。提供者配置文
件是主题,这些主题定义用户接口的外观和感觉、屏幕布局和
按钮说明文件,这些按钮说明文件规定可使用哪些应用程序并且它
们如何动作。用户只能修改用户配置文件例如user.settings和
user.data。这些文件包含首选信息,例如字体尺寸和颜色、主页
和代理设置和主题选择。下面的图表简要地说明配置文件的每
个类以及它对其它配置元素的引用。带有括号的元素可以
在每个文件中有多个实例。主题配置文件
这些文件驻留在基应用程序管理器目录中并且赋有带着扩展名
“.config”的说明性基本名。各主题不能由用户修改,但可把
用户配置成使用任何能得到的主题。主题文件的格式是段标题
下的标准键/值对。段标题是唯一的。
#PvC显示应用程序管理器配置文件
#
#注意:所有彩色属性为十六进制下的3字节RGB值
[Theme]
Namc=IAD Corporate Theme
#按钮信息目录。(默认为nto/shell/ButtonInfo
ButtonInfoDirectory=/nto/shell/iad-buttons
#对TimeFormat选取12或24小时
TimeFormat=12
[Links]
#从基外壳目录执行下述链接语句。
#链接语法是alias=target
#从而外壳将执行“ln-sftarget alias”
iad-html/theme-imatges=theme-1-images[Screeu]#按象素的可视区尺寸Width=800Height=600#按象素的可视区偏斜量(供和TV一起使用)#对所有位置坐标加上这些值SkewX=0SkewY=0#模态对话和小键盘的颜色ModalColor=7379a5ModalTextColor=ffffff#屏幕变黑前的不活动秒数SereenSaveTimeout=0#应用程序管理器用黑屏启动?ScreenSaveOnStart=No#应用程序管理器应为微浏览器显示装入的动画?#动画中的帧数。#动画帧组的基文件名。帧号将代替%d#(从1开始并用帧计数结束)ShowLoadingAnimation=NoAnimationFrameCount=7AnimationBaseFileName=/nto/shell/iad-icons/anim%d.gif#背景颜色或图象文件(目前由登录和设定使用)#Color=000000Background=/nto/shell/iad-html/theme-images/folder.gif#窗口段说明该主题的屏幕布局。#所有窗口都用绝对屏幕坐标说明。#这里说明的各窗口区可能重叠,但任何具体#按钮使用的窗口组不应重叠。[Window1]Name=Background BarWidth=800Height=66PositionX=0PositionY=0[Window2]Name=Button BarWidth=400Height=40PositionX=390PositionY=13[Window3]Name=Advertising BarWidth=322Height=44PositionX=29PositionY=11[Window4]Name=Ticker BarWidth=800Height=42PositionX=0PositionY=558[Window5]Name=Base App AreaWidth=800Height=534PositionX=0PositionY=66[Window6]Name=Base Area with TickerWidth=800Height=492PositionX=0PositionY=66[Window7]Name=Animation WindowWidth=91Height=38PositionX=26PositionY=16#说明按钮栏的配置段。#按颠倒次序建立各栏从而栏1在最上面。[Bar1]#在其中放入该栏的窗口的名字Window=Button Bar#后台选项#要显示的后台图象#后台=#栏要示出背景的明暗?ShowShading=No#每个垂直象素的RGB颜色值。在栏的高度上为#每个象素提供一个值以允许沿着栏的整个#宽度复制垂直条。Shading=0,50,6e,82,96,c8,c8,c8,c8,c8,96,96,96,96,8c,8c,8c,82,82,82.78,78,6e,6e,64,64,50,0#按钮选项#示出按钮数据文件中规定的图标ShowIcons=Yes#图标是否使用透明色意且是什么彩色TransparentIcons=No#IconTransparencyColor=ffffff#按钮图标目录(默认/nto/shell/icons)ButtonIconDirectory=/nto/shell/iad-icons#下面的项确定如何表现选定的按钮。#选择为None、Icon或Box。Icon选择要求#在该按钮的数据文件中定义IconFocused图标。ButtonSelection=Icon#若鼠标在上面则选择一个按钮。AutoMouseSelection=Yes若利用键盘改变焦点则选择一个按钮。AutoKeyboardSelection=No#确定应用程序为前台时按钮是否保持按下/禁用。#若自动(鼠标/键盘)选择为Yes,则它不应为Yes。AutoButtonDisable=NO#作为一组进行按钮对齐(居中、靠左、靠右、顶端对齐或底端对齐)Alignment=Right#按钮之间的象素数量ButtonSpacing=0#均匀分布尺寸不同的按钮EqualSizeButtons=No#示出按钮数据文件中规定的按钮正文ShowText=No#按钮正文颜色(若显示正文)TextColor=ffffe9
#允许该栏上的按钮具有叠加的正文
AllowOverlayText=No
#这是一个显示不带有任何按钮的图象的栏的样本
[Bar2]
#在其中放入该栏的窗口的名字
Window=Backgroun Bar
#背景选项
#要显示的背景图象
background=/nto/shell/iad-icons/LADheader.gif注意:
timeFormat选择是以12小时格式还是以24小时格式显示时
间和日期。timedate.data文件说明为要显示的时间使用的一个仅有
正文的或重叠的按钮。
autoDisableEnable选择:当按钮的对应应用程序在前台中时是否要
禁用这些按钮。当应用程序释放前台时按钮是自动重新使能的。
equalSizeButtons确一应用程序管理器是否应试图使一栏的各按钮尺寸一样。当希望以相等间隔放置宽度可变的图标时,这是需要的。
若任一按钮所具有的图象或正文范围大于规定的尺寸,则该范围
尺寸将有效。按钮说明文件
按钮说明文件驻留在通过各主题文件指向的一个或多个目录
中。按钮文件的格式是段标题下的标准键/值对。各段标题
是唯一的。
#该配置段说明按钮栏上的按钮
#的外观和定位[Button]#该按钮的名字(仅内部使用)Name=Home#在根据该按钮栏的主题#设置的位置中显示的用于该按钮的#正文。可能的位置是图标上、图标#下方、代替图标或在帮助泡中Text=Home#用于该按钮的图标图象。可存在三个或为位图式或为gif的#图象。图象可采用一种应在栏配置中规定的透明色。当图标#上具有焦点或鼠标时,和当按下或设定图标时,#可能的图象是常规的。Icon=Home0.gifIconFocused=Home1.gifIconPressed=Home2.gif#如果不使用正文或图象范围,按钮的高度和宽度#高度=50#宽度=50#该按钮优选的按钮栏(在主题文件中使用的#由栏段号规定的ID。默认值为1)BarID=1#栏内的按钮位置。O为最左或最上。Order=10#按钮是否在栏中显示Hidden=No#按钮是否总能在用户配置中选择AlwaysSelected=No#按钮是否可按Enabled=Yes#该按钮是否应使正文覆盖其图标OverlayText=No#激活该按钮的键的键盘扫描码KeyScanCode=59#应用程序配置段说明当激活该按钮时#将启动哪些应用程序[App1]#该应用程序的名字(仅内部使用)Name=Home Page#此应用程序将占据的主题窗口Window=Base App Area#要启动的程序或URLProgram=file:///nto/shell/iad-html/main.htm#是否应在应用程序管理器初台化期间启动该应用程序BackgroundProcess=No#该基于Web的程序是否应使用公用的Web窗格#CommonPane=Yes#当此基于Web的程序已在前台#且按钮已经激活时,是否应重新装入此程序。RestartOnActive=No#该程序的以KB为单位的总RAM要求#(供RAM受限制时关闭程序使用)RAMRequirements=300#再装入基于Web的程序的频率(以分钟为单位)UpdateFrequency=30#说明当激活该按钮时要显示哪些#按钮栏的栏段[Bar1]Name=Main Button Bar#说明当激活该按钮时会发送哪个事件的事件段。[Event1]VentType=500#事件中要发送的Ascii串EventData=
#事件的目标可为下述中之一
#应用程序名-在特定的按钮说明文件中规定
#[foreground]-当前的各前台应用程序
#[shell]-外壳要处理的事件
#[*]-所有应用程序
TargetApp=[foreground]注意:
Name是应用程序调用RegisterApplication时规定的相同名。
Program是驻留在/nto/shell/bin/processor目录中的本机程序名
字或者是以file://或者http://开始的URL。若没有要调用的程序
或者该按钮代表一个内部功能,例如显示帮助、小键盘、时
间或消息,则该字段可以是左空白的。
Enabled规定该按钮是否会显示常规的或被按的位图并且是
否响应被按。当禁用时,被按的位图会被显示或者按钮正文会
变暗/变亮(取决于正文颜色)。
OverlayText用于在空白位图的上面显示按钮正文。时间日期按
钮和消息按钮需要这种能力,但也可用于减少要在系统上装入
的按钮位图的总数量。
可以存在多个相继编号的应用程序段。微浏览器的设置
初始,微浏览器寻找用户的起始路径中的user.settings文件。若
未找到,则使用基应用程序管理器目录中驻留的default.settings
文件。
但是,若Settings修改对某特定用户的设定值,则在该用户的主目
录中建立一个新的设置文件“User.settings”。在Voyager文档
中说明该文件的内容。
应注意,只有第一个PtWebClient才设定某些voyager.server
参数,例如图象高速缓存尺寸。可根据Web客户设定外观参
数组。用户数据文件
应用程序管理器知道的每个用户具有一个说明该用户和对该用户示
出的各应用程序的user.data文件。这些文件驻留在PVC_HOME
PATH下的用户目录下。
按钮文件的格式是段标题下的标准键/值对。可通过Settings
应用程序建立并且修改这些文件。
#用户段说明该用户
[User]
#用户的人类可读姓名
UserName=Mark
#用户的口令(在稍后的日期从该文件去掉)。
Password=
#用户的特权等级(其中0最高5最低)。
PriviledgeLevel=0
#主题配置文件
Configuration=default.config
#会对该用户示出的应用程序按钮
[Applications]
Home=Yes
Help=Yes系统资源要求
每个微浏览器实例占57K的全局存储器和16K的堆空间。EVENT_DATA_SIZE 300MAX_MESSAGE_LENGTH 300MAX_URL_LEN EVENT_DATA_SIZEMAX_PATH_LENGTH EVENT_DATA_SIZEMAX_FILENAME_LENGTH 32MAX_lllLE_LENGTH 50(用于按钮栏)MAX_ALERT_BUTTONS 3MAX_BUTTON_TEXT 40(用于AlertQuery)MAX_APPLICATIONS 30
样本实现总结
本发明的一种优选实现是一客户应用程序,即一代码模块中的一组指令(程序码),其中该代码模块例如驻留在计算机的随机存取存储器中。在计算机需要之前,该组指令可存储在其它计算机存储器中,例如硬盘驱动器中或者可移动存储器中,如光盘(以最终用于CD ROM中)或软盘(以最终用于软盘驱动器),或者通过因特网或其它计算机网络下载。这样,本发明可以实现成计算机中使用的一种计算机程序产品。另外,尽管所说明的各种方法是在通用计算机中通过软件选择性地激活或重新配置来实现的,但本领域中的技术人员还是会意识到这些方法可在硬件、固件或构建成进行所需步骤的更专用的设备中实现。
虽然示出并说明了本发明的具体实施例,但本领域中的技术人员清楚,根据本文中的原理,可在不背离本发明以及它的更为宽阔的各个方面的情况下做出改变和修改,并且从而,附属的权利要求书用于包括所有这些在本发明的真正精神和范围内的改变和修改的范围。另外,应理解本发明唯一地由附属权利要求书定义。本领域中的技术人员会理解,所提出的权利要求要素的特定数量是规定的并在该权利要求中这个范围是显式地陈述的,而在不存在这样的陈述下不存在任何这样的限制。为帮助对此的理解,作为一个非限制性的例子,在后面的附属 中包含使用导引短语“至少一个的”和“一个或多个”来介绍 要素。然而,使用这样的短语不应解释为其意味着由不定冠词“a”或“an”(一个)引入的权利要求要素把包含着这样引入的权利要求要素的任何具体权利要求限制成只含有一个这样的要素的发明,即使当同一条 中包括着要引短语“一个或多个”或“至少一个的”以及诸如“a”或“an”(一个)的不定冠词时亦如此;对于使用限定冠词的权利要求,这一点也是相同的。
Claims (22)
1.一种在普遍计算部件上显示本机应用程序和非本机应用程序的方法,所述方法包括:
配置本机应用程序窗口,该配置由一应用程序管理器进行;
配置非本机应用程序窗口,该配置由一应用程序管理器进行;
把本机应用程序窗口展示在第一显示区内;以及
把非本机应用程序窗口展示在第二显示区内,其中第二显示区由一微浏览器提供,并且其中该展示包括模拟本机应用程序的外观和感觉。
2.权利要求1所述的方法,其特征在于非本机应用程序窗口包括HTML码。
3.权利要求1所述的方法,其特征在于非本机应用程序窗口包括Java码。
4.权利要求1所述的方法,还包括:
配置按钮栏,该配置由该应用程序管理器进行,并且该按钮栏包括一个或多个本机应用程序命令按钮和一个或多个非本机应用程序命令按钮;以及
在显示器上显示该按钮栏。
5.权利要求1所述的方法,还包括:
生成一个或多个事件;
把和该一个或多个事件有关的数据传送到和本机以及非本机应用程序窗口相关的一个或多个事件处理器;
由事件处理器处理事件;
响应处理的事件展示一个或多个图形;以及
在微浏览器显示器上显示该一个或多个图形。
6.权利要求1所述的方法,还包括:
从一配置文件中读一主题,该主题包括由该应用程序管理器使用的操作参数。
7.权利要求1所述的方法,还包括:
从该普遍计算部件访问一计算机网络;
从和该计算机网络连接的第二计算机接收非本机码;以及
其中通过响应从接收的非本机码确定非本机应用程序窗口的展示。
8.权利要求1所述的方法,还包括:
把和本机以及非本机应用程序窗口相关的逻辑层位置信息写入Z次序栈;以及
读该也次序栈以便由该应用程序管理器管理本机以及非本机应用程序窗口的逻辑层次。
9.一种普遍计算部件,包括
一个或多个处理器;
一个可由处理器访问的存储器;
一个在运行上和处理器连接的显示器屏幕;
一个可由处理器访问的非易失性存储区;
一个存储在该非易失性存储区的本机应用程序;以及
一个由处理器执行的应用程序管理器,该应用程序管理器包括:
装置,用于协调该本机应用程序和一非本机应用程序的执行;以及
装置,用于在一微浏览器中展示该非本机应用程序,其中该微浏览
器显示在该显示屏幕上。
10.权利要求9所述的普遍计算部件,其特征在于该非本机应用程序包括HTML码。
11.权利要求9所述的普遍计算部件,其特征在于该非本机应用程序包括Java码。
12.权利要求9所述的普遍计算部件,还包括:
在该显示器屏幕上显示的一个按钮栏,该按钮栏包括用于本机和非本机应用程序的命令按钮。
13.权利要求9所述的普遍计算部件,还包括:
一个由处理器执行的事件生成器;
由该事件生成器生成的一个或多个事件;
一个和该本机应用程序相关的本机事件处理器,其中该本机事件处理器接收和处理为该本机应用程序生成的事件;以及
一个和该非本机应用程序相关的非本机事件处理器,其中该非本机事件处理器接收和处理为该非本机应用程序生成的事件。
14.权利要求9所述的普遍计算部件,还包括:
存储在该非易失性存储区并由该应用程序管理器读取的一个主题;
其中该主题包括该应用程序管理器在把数据展示到该显示器屏幕时使用的操作参数。
15.权利要求9所述的普遍计算部件,还包括:
一个可由处理器访问的网络接口;以及
一个发送由该网络接口接收的数据的计算机网络,其中该数据包括该非机应用程序。
16.一种用于在普遍计算部件上显示本机和非本机应用程序的计算机程序产品,所述计算机程序产品包括:
装置,用于配置本机应用程序窗口,该配置由一应用程序管理器进行;
装置,用于配置非本机应用程序窗口,该配置由一应用程序管理器进行;
装置,用于把本机应用程序窗口展示在第一显示区内;以及
装置,用于把非本机应用程序窗口展示在第二显示区内,其中第二
显示区由一微浏览器显示提供并且其中该展示包括模拟本
机应用程序的外观和感觉。
17.权利要求16所述的计算机程序产品,其特征在于非本机应用程序窗口包括HTML码。
18.权利要求16所述的计算机程序产品,其特征在于非本机应用程序窗口包括Java码。
19.权利要求16所述的计算机程序产品,还包括:
装置,用于配置按钮栏,该配置由该应用程序管理器进行,并且该
按钮栏包括一个或多个本机应用程序命令按钮和一个或多个非
本机应用程序命令按钮;以及
装置,用于在显示器上显示该按钮栏。
20.权利要求16所述的计算机程序产品,还包括:
装置,用于生成一个或多个事件;
装置,用于把和该一个或多个事件有关的数据传送到和本机以
及非本机应用程序窗口相关的一个多个事件处理器;
装置,用于由事件处理器处理事件;
装置,用于响应所处理的事件,展示一个或多个图形,以及
装置,用于在微浏览器显示上显示该一个或多个图形。
21.权利要求16所述的计算机程序产品,还包括:装置,用于从一配置文件中读一主题,该主题包括由该应用程序管
理器使用的操作参数。
22.权利要求16所述的计算机程序产品,还包括:装置,用于从该普遍计算部件访问一计算机网络;装置,用于从和该计算机网络连接的第二计算机接收非本机
码;以及其中通过响应从接收的非本机码确定非本机应用程序窗口的展示。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US65185700A | 2000-07-13 | 2000-07-13 | |
US09/651,857 | 2000-07-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN1333500A true CN1333500A (zh) | 2002-01-30 |
Family
ID=24614488
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 01122382 Pending CN1333500A (zh) | 2000-07-13 | 2001-07-11 | 在嵌入式环境中直观地集成应用程序的系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1333500A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100435096C (zh) * | 2006-12-28 | 2008-11-19 | 上海广电(集团)有限公司中央研究院 | 基于c语言微型操作系统的图形处理方法 |
CN1550979B (zh) * | 2003-03-21 | 2010-05-26 | 微软公司 | 用于在用户接口的屏幕区域内嵌图中呈现数据表示的方法和系统 |
CN102270152A (zh) * | 2010-06-07 | 2011-12-07 | 华东师范大学 | 面向掌上型移动设备的远程应用程序系统 |
CN102884507A (zh) * | 2010-04-28 | 2013-01-16 | 微软公司 | 客户机应用程序和网页集成 |
CN112052058A (zh) * | 2020-08-13 | 2020-12-08 | 新智道枢(上海)科技有限公司 | 一种基于ipc多应用融合屏幕的技术 |
-
2001
- 2001-07-11 CN CN 01122382 patent/CN1333500A/zh active Pending
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1550979B (zh) * | 2003-03-21 | 2010-05-26 | 微软公司 | 用于在用户接口的屏幕区域内嵌图中呈现数据表示的方法和系统 |
CN100435096C (zh) * | 2006-12-28 | 2008-11-19 | 上海广电(集团)有限公司中央研究院 | 基于c语言微型操作系统的图形处理方法 |
CN102884507A (zh) * | 2010-04-28 | 2013-01-16 | 微软公司 | 客户机应用程序和网页集成 |
CN105138313A (zh) * | 2010-04-28 | 2015-12-09 | 微软公司 | 客户机应用程序和网页集成 |
CN102270152A (zh) * | 2010-06-07 | 2011-12-07 | 华东师范大学 | 面向掌上型移动设备的远程应用程序系统 |
CN112052058A (zh) * | 2020-08-13 | 2020-12-08 | 新智道枢(上海)科技有限公司 | 一种基于ipc多应用融合屏幕的技术 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1285997C (zh) | 链接内容浏览支持装置及其方法 | |
CN100336018C (zh) | 用于对应用启动进行管理的便携式终端和方法 | |
CN1266598C (zh) | 用于应用程序执行的动态java类的加载 | |
CN1154935C (zh) | 设备控制装置及设备判断方法 | |
CN1163837C (zh) | 网络访问管理系统和方法 | |
CN1609793A (zh) | 用于计算机平台的编程接口 | |
CN1669018A (zh) | 手持终端框架系统 | |
CN1701568A (zh) | 通过无线网络的多模式网络交互 | |
CN100342691C (zh) | 多模式对话处理方法 | |
CN1328668A (zh) | 用于指定网络上的位置的系统和处理 | |
CN1720525A (zh) | 电子发送消息的翻译 | |
CN1609794A (zh) | 用于计算机平台的编程接口 | |
CN1648846A (zh) | 文件处理装置和文件处理方法 | |
CN1692358A (zh) | 使用商业规则或用户角色而在环球网门户中选择小门户的方法和装置 | |
CN1204810A (zh) | 遥控方法、服务器及记录介质 | |
CN1014845B (zh) | 在结构式文件中制作、扩展及收缩组元标记的技术 | |
CN1539250A (zh) | 机器控制装置及机器控制系统 | |
CN1041839A (zh) | 包含有在二个目标之间进行数据传送的快照设施的目标管理设施 | |
CN1290889A (zh) | 程序对象的串行化和解串行的版本适应 | |
CN1656452A (zh) | 用于数据管理的电子设备、方法、程序和存储介质 | |
CN1484798A (zh) | 信息处理设备和信息处理方法 | |
CN1266512A (zh) | 适用于面向对象编程语言的硬件加速器 | |
CN1677277A (zh) | 服务提供方法、服务提供商设备、信息处理方法和设备 | |
CN1504942A (zh) | 组织计算机网络中电子文件的方法及电子邮件系统 | |
CN1967464A (zh) | 信息处理装置、服务器装置、打印控制系统、程序和记录介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C06 | Publication | ||
PB01 | Publication | ||
AD01 | Patent right deemed abandoned | ||
C20 | Patent right or utility model deemed to be abandoned or is abandoned |