一种移动Widget包的安装方法

文档序号:6332605阅读:193来源:国知局
专利名称:一种移动Widget包的安装方法
技术领域
本发明涉及移动互联网技术领域,具体涉及一种在移动Widget应用领域的移动 Widget包的安装方法。
背景技术
Widget是一小块可以在任意一个基于HTML的Web页面上执行的代码,其可用于 实现如视频、地图、新闻、小游戏等应用。其思想在于代码复用,Widget的代码可包含动态 HTML、JavaScript以及Adobe的Flash等。Widget提供了新的用户体验,能够使得用户定 制自己需要的各种服务,个性化自己的用户界面。Widget的内容往往是通过网络实时更新 的,因此用户使用Widget能够及时获得其所需要的信息,或者使得Widget程序本身能够即 时更新。移动Widget通常运行于浏览器界面之外的移动应用中,实现一些定制的应用。运 行移动Widget的程序称为移动Widget客户端,其构成了执行移动Widget的环境,负责移 动Widget的安装、运行以及与外界的通讯。移动Widget是以移动Widget包的形式发布的,移动Widget客户端在获取移动 Widget包后需要按照一定的步骤对移动Widget包进行检查并安装到本地存储上后才能运 行。

发明内容
本发明的目的在于提供一种移动Widget包的安装方法。本发明的设计构思在于移动Widget包是压缩文档,其中包含了固定的目录结 构,使得移动Widget客户端能够按照预定的规则对移动Widget包进行安装并执行移动 Widget。本发明从移动Widget包的获取和验证、移动Widget的配置处理以及移动Widget 的启动方式等方面提出了移动Widget包的具体安装方法,从而使得移动Widget客户端能 够按照移动Widget提供者的要求对移动Widget包进行安装,让用户能够方便地使用移动 Widget。本发明解决技术问题所采用的技术方案是一种移动Widget包的安装方法,包括如下步骤1)获取移动Widget包文档,确定该文档的类型并验证该包文档格式的合法性;2)将移动Widget包文档解包到指定的安装目录;3)读取移动Widget的配置文件,其中包含了此移动Widget的元信息,按照配置文 件来确定此移动Widget各配置属性变量的值;4)定位移动Widget的启动文件,启动文件是移动Widget的执行入口。所述移动Widget包文档为移动Widget客户端所支持的一种压缩文档。所述获取移动Widget包的方法为以下两种之一从移动Widget客户端本地文件 系统获得;通过移动网络以数据流的形式获得。
移动Widget包文档格式的合法性是指Widget包是移动Widget客户端能够处理 的压缩包。所述移动Widget包文档格式的合法性的验证方法如下对于从移动Widget客户端本地文件系统获得的移动Widget包,检查其文件扩展 名是否为移动Widget客户端指定的扩展名,然后检查其文件格式是否是Widget客户端所 支持的压缩文件格式;对于通过移动网络以数据流形式获得的移动Widget包,检查其传输协议中指明 的媒体类型是否为移动Widget客户端能够识别的类型,然后检查其数据流的文件头是否 是Widget客户端所支持的压缩文件头。所述移动Widget配置文件的读取以及配置属性值的确定包括如下步骤将待配置的移动Widget的所有配置属性变量设为默认值;使用XML解析器读取移动Widget配置文件;把配置文件中包含的属性赋给此移动Widget对应的配置属性变量;将所有的配置属性变量保存到移动Widget客户端中与此移动Widget关联的配置 数据库中。所述移动Widget启动文件的定位方法是在移动Widget安装目录的根目录中按照 指定的顺序检查是否存在指定的文件名,将第一个存在的文件作为此移动Widget的启动 文件。所述移动Widget包的安装方法还包括查找默认图标。默认图标是在Widget客户 端界面中显示的代表此移动Widget的图标。移动Widget默认图标的查找方法是在移动 Widget安装目录的根目录中按照指定的顺序检查是否存在指定的文件名,将第一个存在的 文件作为此移动Widget的默认图标。本发明具有的有益效果是1)对移动Widget包文件的格式进行检查确保其能够 被正确解包。2)对移动Widget配置文件的处理使得开发者能够指示移动Widget客户端按 其要求对移动Widget进行安装。3)对移动Widget图标和启动文件的定位使得移动Widget 能够被用户方便地运行。


图1是本发明实施例的移动Widget包安装整体流程。图2是本发明实施例的获取移动Widget包并验证合法性的流程。图3是本发明实施例的移动Widget配置文件的解析流程。图4是本发明实施例的移动Widget配置文件中“preference”和“feature”元素 的解析流程。
具体实施例方式下面,结合附图和实施例对本发明的具体实施方式
进行详细说明。参见附图1-4。本实施例的移动Widget包的安装方法的具体流程如下1、获取移动Widget包,验证包文档格式合法性移动Widget包本身是压缩文档,移动Widget客户端可以支持各种压缩文档格式, 如Zip或bz等。移动Widget客户端可以通过两种方式来获取要安装的移动Widget包,验
4证Widget包合法性的方式也相应地分为两种第一种方式是直接从移动设备的本地文件系统中读取移动Widget包,此时移动 Widget包以独立的文件形式存在,移动Widget客户端检查首先检查其文件扩展名是否为 “widget”,若是则检查其压缩文件格式,若为移动Widget客户端支持的压缩文件类型则验 证成功;第二种方式是通过移动设备的网络获取,通过网络获取时要求其下层的网络 协议支持附带媒体类型标志,如HTTP协议,移动Widget客户端检查其媒体类型是否为 “application/widget”,若是则检查其数据流的头部信息,判断是否是移动Widget客户端 支持的压缩文件格式,若是则验证成功。图2是获取Widget包并验证合法性的流程。2、将移动Widget包文档解包到指定的安装目录在确认移动Widget包文档是移动Widget客户端所支持的压缩文档格式后,移动 Widget客户端调用相应的解包方法来对此Widget包进行解压缩,具体解压缩到的目录由 移动Widget客户端的实现决定,但每个移动Widget应该按照Widget包内的目录结构存放 到一个独立的目录下,此独立目录就作为这个移动Widget的安装根目录。3、读取移动Widget配置文件移动Widget的配置文件为XML文件,其中描述了此移动Widget的元信息,移动 Widget客户端按照配置文件的描述来实施移动Widget的安装和运行;读取配置文件的步 骤包括给移动Widget配置参数设置默认值,解析XML文件,验证配置文件有效性,按照配 置文件设置移动Widget对应配置属性的值,表1是移动Widget配置属性的说明列表,最后 将这些值保存到相关的配置数据库中。包含如下步骤[1]将当前的移动Widget配置属性变量的所有值都设为空值(null),然后将其 Φ^ start file encoding "UTF-8", start file content—type “text/html,,。 这些预设的值作为配置属性的默认值,若之后解析的配置文件中不包含其中的某些配置属 性,则这些配置属性将沿用这里预设的默认值。[2]移动Widget的配置文件要求是移动Widget安装根目录下的config. xml,若 此文件不存在,则向用户报错,若存在则将widget config doc配置属性变量设为此文件, 然后使用XML解析器读取此文件。[3]读取配置文件中的各配置项,下文中的配置属性变量指待设置的当前移动 Widget配置属性变量,“XX”元素的内容指配置文件中“XX”元素内的字符串文本,“XX”属 性指配置文件中某元素的属性,按照以下规则进行,以下步骤中同一 XML元素下的子元素 顺序无关,可以任意顺序出现,下面仅按照某一顺序说明,图3是相应的流程a)若XML文档的根元素不是“widget”,则结束移动Widget的安装,向用户报错。b)对于根元素“widget”,执行以下步骤i.若包含“id”属性,且“id”属性符合RFC3987中定义的标识符格式,则将widget id配置属性变量的值设为“id”属性的值。ii.若包含“version”属性,且“version”属性不是空字符串,则将widget version配置属性变量设为“version”属性的值。iii.若包含“height”属性,且是非负整数,则将widget height配置属性变量设
5为“height”属性的值。iv.若包含“width”属性,且是非负整数,则将widget width配置属性变量设为 “width”属性的值。c)若根元素“widget”包含“name”元素,则将widget name配置属性变量设为 “name”元素的内容。若“name”元素包含“short”属性,则将widget short name配置属性 变量设为“short”属性的值。d)若根元素 “widget” 包含 “description” 元素,则将 widget description 配置 属性变量设为“description”元素的内容。e)若根元素“Widget”包含“license”元素,则将widget license配置属性变量 设为此元素的内容,若此元素包含“href”属性,检查“href”属性的值是否是合法的URI,若 是则将widget license href配置属性变量设为此属性的值。f)若根元素“widget”包含一个或多个“icon”元素,对每一个“icon”元素检查其 是否包含“src”属性,若不包含则忽略此元素。若包含“src”属性,检查其值是否为合法的 图标文件路径,即此路径对应的图标能否被移动Widget客户端所显示,若合法则将路径加 入icons配置属性变量。g)若根元素“widget”包含“author”元素,则执行以下步骤i.若“author”元素包含“name”属性,则将author name配置属性变量设为“name”
属性的值。ii.若“author”元素包含“href”属性,且是合法的URL,则将author href配置 属性变量设为“href”属性的值。iii.若“author”元素包含“email”属性,则将author email配置属性变量设为 “email”属性的值。h)根元素“widget”可包含一个或多个“preference”元素,这些元素可用于向移 动Widget应用传递运行时的参数。若根元素“widget”包含一个或多个“preference”元 素,则对于每一元素执行以下步骤i.若“preference”元素不包含“name”属性或“name”属性的值为空字符串,则忽 略此“preference”元素而继续处理下一元素。ii.若“preference”元素包含“name”属性,且其值不是空字符串则将“name”属 性的值保存到临时变量name中,读取“preference”元素的“value”属性并保存到临时变 量value中οiii.若“preference”元素包含“readonly”属性且其值为“true”,则将临时变量 readonly @为 true,否贝Ijj^为 false。iv.将临时变量 name、value 禾口 readonly 组成的记录力口入 widget preferences E 置属性变量。i)根元素“widget”可包含一个“content”元素,此元素指明当前移动Widget的 启动文件,若移动Widget元素包含“content”元素,则执行以下步骤i.若“content”元素不包含“src”属性或“src”属性为空,则忽略此元素,否则将 widget start file配置属性变量设为“src”属性的值指向的文件。ii.若 “content” 元素包含 “type” 属性,将 start file content-type 配置属性
6变量设为“type”属性的值。iii.若“content”元素包含“encoding”属性,将 start file encoding 配置属性 变量设为“encoding”属性的值。j)根元素“widget”可包含一个或多个“feature”元素,每个“feature”元素 指明当前的移动Widget在运行时可能需要用到的额外功能,如应用程序编程接口 API或 视频解码器等部件,移动Widget客户端需要确定其是否支持移动Widget所提出的所有 "feature", Widget客户端的安全策略也决定了是否继续安装提出某些“feature”要求的 移动Widget包;对于每一个“feature”元素,执行一下步骤i.若此“feature”元素包含“name”属性且此属性的值不是空字符串,则将临时变 量name设为“name”属性的值,否则忽略此“feature”元素而继续处理下一元素。i i.若此“ feature ”元素包含“required”属性且其值为“ true ”则将临时变量 required设为true,否则将临时变量required设为false。iii. “feature”元素可包含零个、一个或多个“param”元素,用于指明其与当前要 求功能相关的参数,不同的“feature”元素要求的参数不同,其由不同的“feature”元素决 定,对于每一 “param”元素若其不包含“name”属性、“name”属性的值为空字符串或不包 含“value”属性,则忽略此元素,否则将临时变量paramname设为“name”属性的值,将临时 变量param value设为“value”属性的值,并将这两个变量与临时变量param关联,将临时 变量param加入到临时变量param list中。 iv.若移动Widget客户端不支持临时变量name指明的功能,且临时变量 required的值为true,则说明正在安装的移动Widget必需某个功能才能正常运行,然而移 动Widget客户端并不支持,因此停止安装,向用户报错。若移动Widget客户端不支持临时 变量name指明的功能,但临时变量required为false,则忽略此“feature”元素而继续处
理下一元素。v.将临时变量name、required、param list组成的记录加入feature list配置 属性变量。[4]将所有配置属性变量存入与此移动Widget相关的配置存储数据库,此数据库 由移动Widget客户端实现,通常可使用现有的小型数据库如Sqlite以键值对的方式存储。4、定位移动Widget启动文件启动页面是移动Widget运行时首先加载的文件。移动Widget客户端首先检查配 置文件是否指定了启动文件,即检查widget start file配置属性变量是否不是皿11,若为 null 贝U按照 index, htm、index, html>index. svg>index, xhtml>index, xht 的顺序检查移云力 Widget包中是否包含了这其中的一个文件,并将第一个找到的文件作为移动Widget的启 动文件,并将widget start file配置属性变量设为第一个文件,此时需要更新移动Widget 的配置存储数据库,以反映新的widget start file配置属性变量的值。5、定位默认图标默认图标是在Widget客户端界面中显示的代表此移动Widget的图标,用于帮助 用户分辨不同的移动Widget。移动Widget客户端首先检查配置文件是否指定了图标,即检 查icons配置属性变量是否不是null,若为null则移动Widget客户端在移动Widget安装 根目录中按照 icon. svg、icon. ico、inco. png、icon. gif>icon. jpg 的顺序检查移动 Widget包中是否包含了这其中的文件,将存在的文件都加入到图标列表中,并将第一个存在的文 件作为Widget的默认图标。以下举例说明本发明中描述的Widget包安装方法的具体流程。举例中的移动设 备为智能手机。首先,用户在手机中的Web浏览器上点击一个指向移动Widget包的链接,其指向 http://www. example, org/my. widget, Web浏览器并没有将Widget包直接下载,而是将其 链接的URL发送给移动Widget客户端程序。移动Widget客户端在得到URL后,发送HTTP请求,以下载此移动Widget包,移动 Widget客户端发送的HTTP请求如下GET/my. widget HTTP/1. 1Host :www. example, orgAccept application/widgetwww. example, org的服务器将返回的HTTP响应如下HTTP/1. 12000KDate :Tue,07 Sep 2010 04:54:38GMTLast-Modified :Fri,03 Sep 2010 06:47:19 GMTContent-Length : 1342Content-Type application/widget由于这是通过网络获得的,移动Widget客户端在得到HTTP响应后验证其中的 Content-Type为application/widget,从而接收响应的数据流。然后移动Widget客户端判断接收的数据流的前四字节的数据为504B 0304,认为 其是以Zip方式压缩的压缩包,调用Zip解压模块将数据流的内容解压到移动Widget客户 端预设的安装位置“/widget/packages/my”中,这就是此移动Widget包的安装根目录,这 里的“my”目录是新建的目录,根据请求的移动Widget包文件名称创建,假设解压后安装根 目录下包含两个文件,分别为index, html和config. xml,还包含一个icons文件夹,icons 文件夹中又包含两个文件,分别为iconl. png和iCon2. png,目录结构如下所示/widget/packages/myI ---index, htmlI---config. xmlI——iconsI---iconl. pngI——icon2. png其中的config. xml,就是此移动Widget的配置文件,由于不需要前后搜索XML中
的内容,只需要顺序解析XML,因此使用标准的SAX Parser作为XML解析器来解析config. xml ο假设config. xml中的内容如下< ? xml version = " 1.0〃 encoding = " UTF-8" ? ><widget id = " http://example.org/myWidget"version = " 2. OBeta〃height = " 200〃
width=" 200〃 >〈name short=" My Widget !‘‘ >My Widget 2. 0 Beta</name>〈feature name=" http://example.org/camera" ><param name = " autofocus" value = " true" /></feature>〈preference name=" apikey"value=" ea31ad3a23fd2f"readonly = " true" /><description>我的移动Widget</description)<author name = "The Author,,href = " http://author.example.org/"email = " authoriexample. org" /><icon src = " icons/iconl. png" /><icon src = " icons/icon2. png" />〈license〉My License.〈/license〉</widget>在处理配置文件前,已经将配置属性变量的所有值都设为默认值,且widget
config doc 为"config. xml,,。处理以上config. xml文档时首先判断其根元素确实为“widget”,且包含了“id”、 “versioWheight”和“width”四个属性,且“id”属性符合标识符格式要求,因此widget id配置属性变量被设为“http://example. org/myWidget”,widget version配置属性变量 被设为“2. OBeta”,widget height和widget width两个配置属性变量均被设为“200”。根元素下包含了 “name”元素,widget name配置属性变量被设为其元素内容“My Widget 2.0 Beta”,而 “name” 元素又包含了 “ short” 属性,widget short name 配置属性 变量被设为“My Widget ! ”。根元素下包含了 一个“ feature ”元素,其包含了 “name ”属性,而且包括一个参数, 将name为“autofocus”、value为“true”的参数加入param list中,然后设临时变量name % "http://example, org/camera", 时变量 required 为 false, ^HfI^;时变量 name、param list和requrired组成的记录加入feature list配置属性变量。根元素下包含了一个“preference”元素,将临时变量name设为“apikey”,临时变 量value设为“ea31ad3a23fd2f”,临时变量readonly设为“true”,将这三个临时变量组成 的记录加入widget preferences配置属性变量中。根元素下包含“description”元素,将widget description配置属性变量设为“我的移动Widget”。根元素下包含“author”元素,将author name配置属性变量设为“The Author”, 将 author href 配置属性变量设为"http//author, example, org”,将 author email 配置 属性变量设为"authoriexample. org,,。根元素下包含两个“icon”元素,将“icons/iconl.png” 和“icons/icon2. png” 依 次加入icons配置属性变量。根元素下包含“license”元素,将widget license配置属性变量设为 “MyLicense”,而由于其不包含“href”属性,因此widget license href配置属性变量仍然 将保持预设的默认值null。至此根元素下已经不包含其他信息了,因此配置文件的解析完成。表2给出了解 析完成后各配置属性变量的值。之后移动Widget客户端将使用Sqlite数据库把这些变量 的值保存起来,移动Widget程序在运行时可以查询从而获取这些变量的值。由于此时widget start file配置属性变量的值为null,移动Widget客户端首先 检查移动Widget安装根目录中是否包含index, htm,不存在此文件继续检查index, html, 发现存在此文件,因此将widget start file配置属性变量的值更新为“index, html”,并且 更新Sqlite数据库中相应的内容。由于此时icons配置属性变量不是null,因此移动Widget客户端不再继续查找默 认图标,而将icons中第一个“icons/iconl.png”作为默认图标。此移动Widget包的安装已经完成,用户可以通过点击移动Widget客户端界面上 此移动Widget的默认图标来启动此移动Widget。表1移动Widget包配置属性变量列表
10
权利要求
一种移动Widget包的安装方法,其特征在于,包括1)获取移动Widget包文档,确定该文档的类型并验证该包文档格式的合法性;所述移动Widget包文档为移动Widget客户端所支持的一种压缩文档;2)将移动Widget包文档解包到指定的安装目录;3)读取移动Widget的配置文件,按照配置文件来确定此移动Widget各配置属性变量的值;所述配置文件包含了此移动Widget的元信息;4)定位移动Widget的启动文件,启动文件是移动Widget的执行入口。
2.根据权利要求1所述的方法,其特征在于,获取移动Widget包的方法为以下两种之1)从移动Widget客户端本地文件系统获得;2)通过移动网络以数据流的形式获得。
3.根据权利要求2所述的方法,其特征在于,移动Widget包文档格式的合法性的验证 方法如下1)对于从移动Widget客户端本地文件系统获得的移动Widget包,检查其文件扩展名 是否为移动Widget客户端指定的扩展名,然后检查其文件格式是否是Widget客户端所支 持的压缩文件格式;2)对于通过移动网络以数据流形式获得的移动Widget包,检查其传输协议中指明的 媒体类型是否为移动Widget客户端能够识别的类型,然后检查其数据流的文件头是否是 Widget客户端所支持的压缩文件头。
4.根据权利要求1所述的方法,其特征在于,移动Widget配置文件的读取以及配置属 性值的确定包括如下步骤1)将待配置的移动Widget的所有配置属性变量设为默认值;2)使用XML解析器读取移动Widget配置文件;3)把配置文件中包含的属性赋给此移动Widget对应的配置属性变量;4)将所有的配置属性变量保存到移动Widget客户端中与此移动Widget关联的配置数 据库中。
5.根据权利要求1所述的方法,其特征在于,移动Widget启动文件的定位方法是在移 动Widget安装目录的根目录中按照指定的顺序检查是否存在指定的文件名,将第一个存 在的文件作为此移动Widget的启动文件。
6.根据权利要求1所述的方法,其特征在于,还包括查找默认图标;默认图标是在 Widget客户端界面中显示的代表此移动Widget的图标;移动Widget默认图标的查找方法 是在移动Widget安装目录的根目录中按照指定的顺序检查是否存在指定的文件名,将第 一个存在的文件作为此移动Widget的默认图标。
全文摘要
本发明公开了一种移动Widget包的安装方法,它包括如下步骤1)获取移动Widget包文档,确定该文档的类型并验证该包文档格式的合法性;2)将移动Widget包文档解包到指定的安装目录;3)读取移动Widget的配置文件,按照配置文件来确定此移动Widget各配置属性变量的值;所述配置文件包含了此移动Widget的元信息;4)定位移动Widget的启动文件,该启动文件是移动Widget的执行入口。本发明有助于提高移动Widget安装和运行的便利性。
文档编号G06F9/445GK101957768SQ20101029059
公开日2011年1月26日 申请日期2010年9月25日 优先权日2010年9月25日
发明者俞立呈, 吴明晖, 楼学庆, 陈天洲, 颜晖 申请人:浙江大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1