一种基于文件类型的Android构件透明加载方法及系统的制作方法

文档序号:7759269阅读:114来源:国知局
专利名称:一种基于文件类型的Android构件透明加载方法及系统的制作方法
技术领域
本发明提供了一种在Android操作系统上一种基于文件类型透明加载构件的方 法,具体就是根据需要操作的文件类型在本机和构件库查找支持该类型的构件,如果本地 没有则从构件库动态加载,属于移动计算领域。
背景技术
Android操作系统是Google公司于2007年11月5日发布的基于Linux平台的开 源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首 个为移动终端打造的真正开放和完整的移动软件。软件构件(software component)软件系统中具有相对独立功能,可以明确辨识、 接口由规约指定、与语境有明显依赖关系,可独立部署,且多由第三方提供的可组装软件实 体。软件构件须承载有用的功能,并遵循某种构件模型。可复用构件是指具有可复用价值 的构件。当前使用Android操作系统的用户通过手机上的文件浏览器或者手机上其它应 用程序需要打开某种类型文件的时候,如果该手机上不支持这种类型的文件格式,则用户 必须确定支持该类型的软件,然后手动进行安装才能正常浏览该文件,在这一过程中,需要 反复上网查找,并需要手动进行应用的安装,完成后再次打开该文件才能响应用户的请求, 影响用户的体验。

发明内容
在本文中,构件指的是使用我们实现的构件化工具将Android操作系统上可运行 的APK文件进行构件化后的软件包,构件化后的构件中包含原始APK文件、应用的名字、应 用的版本号、应用支持的打开文件类型、应用的描述等,构件库管理人员负责对Android操 作系统中可执行的应用程序进行构件化,并上传至用户构件库。本发明的目的在于为Android操作系统提供一种基于文件类型透明加载构件的 方法,使得用户在打开某种类型文件时候,不必去关心本地是否已经安装支持的软件,只要 构件库中有,则一定可以打开。本发明的系统由客户端、构件请求服务器和构件库服务器组成,客户端位于 Framework层中的PackageManagerService (程序安装服务),包括了服务器设置模块、文 件类型解析模块、文件获取模块、构件安装模块和桌面刷新模块。构件请求服务器位于PC 上,包括监听模块、构件类型处理模块和文件传输模块;构件库服务器负责构件的生成、存 储、并负责响应构件请求服务器的请求。手机用户或者手机应用程序需要打开某种类型的 文件时候,通过调用ActivityManager要求启动参数为文件类型、文件路径的Intent,启动 过程中首先会通过PackageManagerService中的文件类型解析模块查询支持该文件类型 的构件,如果找到,则使用该构件打开文件;否则向构件请求服务器发出包含文件类型的请 求,构件请求服务器接收到请求后,调用构件类型处理模块,该模块从构件库中根据类型进行查询,如果可以找到,则调用文件传输模块将该构件传回客户端;客户端的文件类型解析 模块接收到该构件后,调用构件安装模块进行安装,重新调用文件类型解析模块,此时就可 以打开文件。本发明对应的流程图如图1所示,详细技术方案如下A.构件库服务器接收构件上传,上传过程中构件库内置的程序会将应用打包成为 自定义的构件格式;1.构件库管理人员使用构件库自带的web界面工具或者使用批量上传工具将使 用者可能会使用的APK文件上传至构件库。用户只需上传APK文件,构件库内置的程序会 从APK文件中提取出应用的名字、应用的版本号、应用的描述等,与APK文件一起打包成为 自定义的构件格式,最终上传到构件库的数据库中;2.构件库管理人员也可以使用构件库自带的web界面工具查询构件库中构件的 fn息;B.手机端的服务器设置模块在连接不上构件请求服务器时,会显示连接不上不上 构件请求服务器的警告,点击可设置构件请求服务器地址和端口 ;C.手机客户端接收到手机用户或者手机应用程序打开某种类型的文件的请求后, 通过socket连接从构件请求服务器获取支持该类型文件的构件信息的请求;1.客户端的文件类型解析模块在本地查找是否安装支持该类型的文件,如果找 到,则直接打开文件即可;2.如果没有找到,文件类型解析模块向构件请求服务器发出包含文件类型的请 求,具体如下i.该模块首先获取手机操作系统信息(And roid操作系统的版本号)和用户标志 名;ii.该模块与远程构件请求服务器端建立一个连接,并将包含上述信息、要打开的 文件类型和该请求的标识封装为一个包,发送给构件请求服务器;iii.该模块接下来等待远程构件请求服务器的回应;3.构件请求服务器的监听模块接收到客户端请求支持特定类型构件的请求后,创
建响应线程调用构件类型处理模块,具体处理如下1.该模块接收到某个手机客户端的请求后,创建一个线程来处理这个请求,完成 创建线程的工作后该模块继续等待接收下一个请求,该线程调用构件类型处理模块;2.构件类型处理模块从收到的包中抽取出来用户标识进行身份验证,并记录到系 统日志中;3.构件列表处理模块从收到的包中抽取出来Android操作系统的版本号和要打 开的文件类型作为参数,从构件库中查询适合该版本号和文件类型的所有构件信息,每个 检索到的构件将构件的名字、构件的版本号和构件在构件库中标识UUID取出,查找到的构 件数量加上所有的信息组成一个包,如果没有查询到则发送0 (没有);4.将上述包中的信息发送回手机客户端;D.手机客户端根据接收到的可以打开该类型文件的构件信息由用户进行选择,确 定后从构件请求服务器获取构件并安装;
1.手机端的文件类型解析模块得到构件请求服务器发回的包后,如果该包首个字 符为0,则打开文件失败,否则进行操作i.如果有多于一个符合条件的构件,则弹出窗口由用户进行选择;ii.用户选择后,调用文件获取模块,将用户标识、选定构件的UUID和请求标识发 送到构件请求服务器;2.用文件获取模块继续等待构件请求服务器响应;3.构件请求服务器的监听模块接收到客户端请求构件的请求后,创建响应线程调 用文件传输模块,具体处理如下i.该模块接收到某个手机客户端的请求后,创建一个线程来处理这个请求,完成 创建线程的工作后该模块继续等待接收下一个请求,该线程调用文件传输模块;ii.文件传输模块从收到的包中抽取出来用户标识进行身份验证,并记录到系统 日志中;iii.文件传输模块根据接收到的包中的构件UUID,从构件库获得构件文件;iv.将该构件文件发送回手机客户端;4.手机端的文件获取模块得到构件请求服务器发回的包后,将该构件存储在本地 缓存中,并调用构件安装模块进行构件安装i.文件获取模块将接收到的包存储在手机SD卡上的临时文件目录;ii.向Android操作系统的PackageManager服务发出安装应用请求;iii. PackageManager服务安装结束后,调用桌面刷新模块;5.桌面刷新模块更新构件列表中构件状态,刷新桌面图标;E.在安装结束后通知文件类型解析模块重新进行解析,并最终调用新安装的构件 打开文件。本发明的还包括一个实现上述方法的系统,如图2所示。该系统由客户端、构件请 求服务器和构件库服务器组成,客户端位于Framework层中的PackageManagerService (程 序安装服务),包括了服务器设置模块、文件类型解析模块、文件获取模块、构件安装模块和 桌面刷新模块。主要完成解析用户选择文件的文件类型,与构件请求服务器端通信,并获取 文件。构件请求服务器位于PC上,包括监听模块、构件类型处理模块和文件传输模块;负责 响应来自客户端的请求并根据请求和构件库服务器通信,发送文件给客户端。构件库服务 器负责构件的生成、存储、并负责响应构件请求服务器的请求。-服务器设置模块用于设置构件请求服务器的IP和端口;-文件类型解析模块负责在本地查询是否支持该类型的文件,如果不支持,向构 件请求服务器发出请求;-文件获取模块根据用户请求,从服务器获取所需构件文件;-构件安装模块用来安装下载完成后的构件;-桌面刷新模块安装完成后,刷新手机桌面的程序列表和其它相关联信息;-监听模块主要用于接收客户端发来的请求;-构件类型处理模块从构件库服务器查询支持该类型的构件,如果支持该文件 类型,则组装该构件信息,发回客户端;-文件传输模块根据接到的请求,向客户端发回所请求的文件;
-构件库服务器负责接受用户上传构件,提供Web界面工具查询,并相应构件请 求服务器请求。


图1:本发明的方法流程2 本发明的系统结构图
具体实施例方式下面通过实例对本发明做进一步的说明,但是需要注意的是,公布实施例的目的 在于帮助进一步理解本发明,但是本领域的技术人员可以理解在不脱离本发明及所附的 权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所 公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。下面的实施方式使用HTC G2,Android操作系统版本为1. 6。A.根据访问的数据类型动态加载构件(以用户打开邮件附件中的Pdf文件为例, 构件库中用存在支持该类型文件的构件,但是手机客户端没有安装)1.向构件库上传该应用;2.用户通过邮件客户端打开邮件(该邮件包含一个Pdf附件,且手机以前没有安 装支持Pdf的应用程序);3.用户点击该附件后,会调用StartActivity方法,该方法中设置了文件类型 (minetype)以及文件路径;4. StartActivity会调用系统中解析时根据文件类型调用PackageManager解析 该文件类型,因为系统没有安装支持Pdf的应用,因此在该过程中会失败;5.此时向构件请求服务器发出请求gettp:pdf ;6.构件请求服务器在构件库中查询支持pdf格式的构件,找到支持Android操作 系统的PDF阅读器构件,并发送回客户端;7.接到构件请求服务器传送到的构件之后就将其存储在本地,且调用 PackageManager进行自动安装(期间不需要用户交互操作);8.完成之后使用新安装的程序打开该pdf文件。
权利要求
一种基于文件类型的Android构件透明加载方法,其特征在于,包括以下步骤a)构件库服务器接收构件上传,上传过程中构件库内置的程序会将应用打包成为自定义的构件格式;b)手机端的服务器设置模块在连接不上构件请求服务器时,会显示连接不上不上构件请求服务器的警告,点击可设置构件请求服务器地址和端口;c)手机客户端接收到手机用户或者手机应用程序打开某种类型的文件的请求后,通过socket连接从构件请求服务器端获取支持该类型文件的构件信息;d)手机客户端把接收到的可以打开该类型文件的构件信息交由用户进行选择,确定后从构件请求服务器获取构件并安装;e)在安装结束后通知文件类型解析模块重新进行解析,并最终调用新安装的构件打开文件。
2.如权利要求1所述的方法,其特征在于,所述步骤A的具体步骤如下Al.构件库管理人员使用构件库自带的web界面工具工具查询构件库中构件的信息; A2.构件库管理人员使用构件库自带的web界面工具或者使用批量上传工具将应用程 序构件APK文件上传至构件库;A3.构件库内置的程序会从APK文件中提取出应用的名字、应用的版本号、应用的描述 等,与APK文件一起打包成为自定义的构件格式,保存到构件库的数据库中。
3.如权利要求2所述的方法,其特征在于,所述步骤C的实现方法为Bi.客户端的文件类型解析模块在本地查找是否安装支持该类型的文件,如果找到,则 直接打开文件;B2.如果没有找到,文件类型解析模块向构件请求服务器发出包含文件类型的请求,具 体如下i.首先获取手机操作系统信息(Android操作系统的版本号)和用户标志名; .该模块与远程构件请求服务器端建立一个socket连接,并将包含上述信息加上该 请求的标识封装为一个包,发送给构件请求服务器端;iii.该模块接下来等待远程构件请求服务器端的回应;B3.构件请求服务器的监听模块接收到客户端请求支持特定类型构件的请求后,创建 响应线程调用构件类型处理模块,具体处理如下i.接收到某个手机客户端的请求后,创建一个线程来处理这个请求,完成创建线程的 工作后该模块继续等待接收下一个请求,该线程调用构件类型处理模块; .构件列表处理模块从收到的包中抽取出来用户标识进行身份验证,并记录到系统 日志中;iii.构件列表处理模块从收到的包中抽取出来Android操作系统的版本号和要打开 的文件类型作为参数,从构件库中查询适合该版本号和文件类型的所有构件信息,每个检 索到的构件将构件的名字、构件的版本号和构件在构件库中标识UUID取出,查找到的构件 数量加上所有的信息组成一个包,如果没有查询到则发送0 (没有);iv.将上述包中的信息通过socket连接发送回手机客户端;
4.如权利要求3所述的方法,其特征在于,所述步骤D的实现方法为Dl.手机端的文件类型解析模块得到构件请求服务器发回的包后,如果该包首个字符为0,则打开文件失败,否则进行操作,具体步骤如下i.如果有多于一个符合条件的构件,则弹出窗口由用户进行选择; .用户选择后,调用文件获取模块,将用户标识、选定构件的UUID和请求标识发送到 构件请求服务器;D2.用文件获取模块继续等待构件请求服务器响应;D3.构件请求服务器的监听模块接收到客户端请求构件的请求后,创建响应线程调用 文件传输模块,具体处理如下i.该模块接收到某个手机客户端的请求后,创建一个线程来处理这个请求,完成创建 线程的工作后该模块继续等待接收下一个请求,该线程调用文件传输模块; .文件传输模块从收到的包中抽取出来用户标识进行身份验证,并记录到系统日志中;iii.文件传输模块根据接收到的包中的构件UUID,从构件库获得构件文件;iv.将该构件文件发送回手机客户端;;D4.手机端的文件获取模块得到构件请求服务器发回的包后,将该构件存储在本地缓 存中,并调用构件安装模块进行构件安装,具体处理如下i.文件获取模块将接收到的包存储在手机SD卡上的临时文件目录; .向Android操作系统的PackageManager服务发出安装应用请求; iii. PackageManager服务安装结束后,调用桌面刷新模块;
5.如权利要求4所述的系统,其特征在于,该系统包括以下几个模块 -服务器设置模块用于设置构件请求服务器的IP和端口 ;-文件类型解析模块负责在本地查询是否支持该类型的文件,如果不支持,向构件请 求服务器发出请求;-文件获取模块根据用户请求,从服务器获取所需构件文件; -构件安装模块用来安装下载完成后的构件;-桌面刷新模块安装完成后,刷新手机桌面的程序列表和其它相关联信息; -监听模块主要用于接收客户端发来的请求;-构件类型处理模块从构件库服务器查询支持该类型的构件,如果支持该文件类型, 则组装该构件信息,发回客户端;-文件传输模块根据接到的请求,向客户端发回所请求的文件; -构件库服务器负责接受用户上传构件,提供Web界面工具查询,并相应构件请求服 务器请求。各模块之间的关系如下1)客户端位于Framework层中的PackageManagerService(程序安装服务),包括了服 务器设置模块、文件类型解析模块、文件获取模块、构件安装模块和桌面刷新模块;主要完 成解析用户选择文件的文件类型,与构件请求服务器端通信,并获取文件;2)构件请求服务器位于PC上,包括监听模块、构件类型处理模块和文件传输模块;负 责响应来自客户端的请求并根据请求和构件库服务器通信,发送文件给客户端;3)构件库服务器负责构件的生成、存储、并负责响应构件请求服务器的请求。全文摘要
本发明公布了一种基于文件类型的Android构件透明加载方法,属于移动计算领域。本发明提出的方法主要包括以下步骤A.通过构件入库工具向构件库上传构件;B.手机客户端设置构件库服务器地址和端口;C.手机客户端接收到手机用户或者手机应用程序打开某种类型的文件的请求后,从构件请求服务器端获取支持该类型文件的构件信息;D.手机客户端把接收到的构件信息交由用户进行选择,确定后从构件请求服务器获取构件并安装;E.在安装结束后通知文件类型解析模块重新进行解析,并最终调用新安装的构件打开文件。本发明将用户从繁琐的查找支持某种类型的应用名称、下载应用、安装的过程中解脱出来,有效提高用户的体验。
文档编号H04L29/08GK101924798SQ20101027495
公开日2010年12月22日 申请日期2010年9月8日 优先权日2010年9月8日
发明者孙剑, 赵霞, 郭耀, 陈向群 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1