著录项信息
专利名称 | 基于定制安卓平台的应用快速部署方法 |
申请号 | CN201710357945.2 | 申请日期 | 2017-05-19 |
法律状态 | 暂无 | 申报国家 | 中国 |
公开/公告日 | 2017-09-15 | 公开/公告号 | CN107168742A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | G06F8/60 | IPC分类号 | G;0;6;F;8;/;6;0查看分类表>
|
申请人 | 中南大学 | 申请人地址 | 湖南省长沙市岳麓区岳麓街道溁左路中南大学科技园研发总部5栋101房
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 湖南新云网科技有限公司 | 当前权利人 | 湖南新云网科技有限公司 |
发明人 | 张尧学;李少勇;刘亚萍;廖海宁;胡宁 |
代理机构 | 长沙七源专利代理事务所(普通合伙) | 代理人 | 郑隽 |
摘要
本发明公开了一种基于定制安卓平台的应用快速部署方法,目的是解决运行安卓系统的移动智能设备应用安装时耗时长、能耗高、系统响应迟顿、用户体验差的问题。技术方案是:构建由运行于云服务器中的云端应用商城和运行于移动智能设备上的应用商城客户端构成的基于定制安卓平台的应用快速部署系统,改进安卓系统应用安装流程,将移动智能设备运行应用时所需的优化目标文件内置于APK文件中,安装时免去最耗时耗能的本地化编译步骤,以实现快速安装部署的效果。采用本发明可以在保证应用安装包兼容性的同时,有效提高应用安装速度;且应用商城通过终端系统特征码给不同版本的设备提供相应改进版安装包,提高了商城服务的针对性。
1.一种基于定制安卓平台的应用快速部署方法,其特征在于包含如下步骤:
第一步,构建基于定制安卓平台的应用快速部署系统,该系统由两层构成:一是运行于云服务器中的云端应用商城;二是运行于移动智能设备上的应用商城客户端;
云服务器中部署着全网唯一的云端应用商城,云端应用商城由App应用管理模块、机器码集成模块、应用中心数据库组成;云端应用商城以并行方式为所有连接它的移动智能设备提供App应用下载、App列表下载、应用运行时所需的优化文件上传服务;应用中心数据库中有App应用数据表,App应用数据表有P项,P为App的个数;每个表项有4个域,分别为App标识,App分类标识,App原始安装包,App优化安装包列表,其中:App标识是表明App是何种应用的唯一标识;App分类标识表明App所属的分类类别;App原始安装包中存放原始APK文件;
App优化安装包列表是一个二维数组,其每行内容均由终端系统特征码、优化版安装包两项组成,优化版安装包存放终端系统特征码所对应类型的移动智能设备优化后的APK安装文件;终端系统特征码是移动智能设备所属类型的唯一标识,同一类型移动智能设备间硬件版本、系统软件版本完全相同;1个App标识对应1个App优化安装包列表,每个App优化安装包列表有n项,n为连接云端应用商城的移动智能设备的类型数量,P,n均为正整数;
每一个移动智能设备上都运行着应用商城客户端,应用商城客户端由App应用获取模块、机器码上传模块组成,应用商城客户端用于显示云端应用商城中可用的App列表、下载支持快速部署的APK文件,以及上传本机编译生成的特定应用的优化目标文件;
App应用管理模块与机器码集成模块、App应用获取模块、应用中心数据库相连,用于为App应用获取模块提供App列表下载、App下载服务,并为机器码集成模块提供APK文件;App应用管理模块接收机器码集成模块发送参数为App标识的获取应用安装包的请求,从App应用数据表中查找得到App标识对应的App原始安装包,并将该App原始安装包传递回机器码集成模块;App应用管理模块也接收机器码集成模块发送的参数为App标识、终端系统特征码、优化版安装包的添加优化安装包的请求,从App应用数据表中查找得到App标识对应的App优化安装包列表,将从机器码集成模块传来的终端系统特征码、优化版安装包存入App标识对应的App优化安装包列表中;App应用管理模块也接收App应用获取模块发送的参数为App分类标识的下载App列表的请求,从App应用数据表中查找得到属于该App分类标识的所有App,从而形成一个App列表,App列表包含App应用数据表中App标识、App分类标识两项信息,并将App列表传递回App应用获取模块;App应用管理模块还接收App应用获取模块发送的参数为App标识、终端系统特征码的下载App的请求,从App应用数据表中查找得到App标识对应的App原始安装包和App优化安装包列表,再从App优化安装包列表查找终端系统特征码对应的优化版安装包,若存在该优化版安装包则将该优化版安装包传递回App应用获取模块,若不存在则将App原始安装包传递回App应用获取模块;
机器码集成模块与App应用管理模块、机器码上传模块相连,用于接收优化目标文件,并集成该优化目标文件到App的原始安装包中从而生成针对特定终端系统的优化版安装包;机器码集成模块接收机器码上传模块发送的参数为App标识、终端系统特征码、优化目标文件优化目标文件上传的请求,得到机器码上传模块发送的优化目标文件target.file,同时向App应用管理模块发送参数为App标识的获取应用安装包请求,得到App原始安装包,而后将优化目标文件target.file植入App原始安装包并对安装包重新签名,得到优化版安装包;机器码集成模块还向App应用管理模块发送添加参数为App标识、终端系统特征码、优化版安装包的优化安装包的请求,从而将优化版安装包保存到App应用数据表中;植入优化目标文件target.file的过程,就是将target.file存入原始安装包的过程,得到的优化版安装包为在原始安装包的resources.arsc文件之后增加target.file,并打包成一个zip压缩包;
App应用获取模块与App应用管理模块、服务进程installd相连,用于在移动智能设备上以列表方式显示云端应用商城中的App,从云端应用商城下载用户指定的应用安装包以及接收用户触摸点击事件触发应用安装过程;App应用获取模块向App应用管理模块发送下载参数为App分类标识的App列表请求,从App应用管理模块得到App列表,并在当前移动智能设备的应用显示列表中显示出来,给用户提供下载应用的界面;在用户下载某应用时,App应用获取模块还向App应用管理模块发送参数为App标识、终端系统特征码的下载App请求,得到App应用管理模块传递回来的优化版安装包后,通过安卓系统内部的PackageInstaller向installd发送参数为应用安装包的应用安装请求,从而完成应用安装任务;
机器码上传模块与机器码集成模块、服务进程installd相连,用于上传所属移动智能设备编译生成的应用运行时所需的目标文件,实现目标文件共享;机器码上传模块接收installd发送的参数为App标识、优化目标文件的上传优化文件的请求,从installd接收到App标识、优化目标文件后,携带所属移动智能设备的终端系统特征码向机器码集成模块发送参数为App标识、终端系统特征码、优化目标文件的优化目标文件上传请求,以上传应用运行时所需的优化目标文件;
第二步,改进安卓系统服务进程installd,改进版服务进程installd与App应用获取模块、机器码上传模块相连,在执行安卓原有服务进程installd基础上,增加对优化版安装包的支持,以实现快速安装部署;
第三步,云端应用商城运行,初始化应用中心数据库;系统管理员通过App应用管理模块将提供给用户使用的App的相关内容即App标识,App分类标识,App原始安装包录入应用中心数据库App应用数据表中;对通过用户上传打包、按终端类型编译方式获得的App优化安装包,系统管理员也通过App应用管理模块将它们保存到App应用数据表中App标识对应的App优化安装包列表中;
第四步,移动智能设备在基于定制安卓平台的应用快速部署系统支持下并行部署应用,方法是:
4.1移动智能设备正常运行,App应用获取模块按4.1.1所述方法定期下载云端应用商场提供的App列表,同时App应用获取模块按4.1.2所述方法接收用户的操作指令,按不同指令进行操作:
4.1.1 App应用获取模块使用安卓系统内置定时器,定期向App应用管理模块发送下载App列表请求,将从App应用管理模块得到的App列表在移动智能设备上显示出来,给用户提供下载应用的界面;
4.1.2 App应用获取模块根据移动智能设备上显示的App列表从键盘或触摸屏接收用户操作,若需安装应用则转4.2,无需操作则转4.1.2;
4.2 App应用获取模块向App应用管理模块发送下载参数为App标识、终端系统特征码的App请求;
4.3 App应用管理模块将应用安装包发送给App应用获取模块,方法是:App应用管理模块接收App应用获取模块发送的参数为App标识、终端系统特征码的下载App的请求,从App应用数据表中查找得到App标识对应的App原始安装包和App优化安装包列表,再从App优化安装包列表查找终端系统特征码对应的优化版安装包,若存在该优化版安装包则将该优化版安装包传递回App应用获取模块,若不存在则将App原始安装包传递回App应用获取模块;
4.4 App应用获取模块通过触发PackageInstaller的APK安装动作,并向PackageManager发起参数为待安装应用安装包即待安装APK文件的安装请求;
4.5 PackageManager以binder方式将安装请求发送给服务层的
PackageManagerSerivce;
4.6 PackageManagerSerivce接收安装请求后,使用socket内部进程通讯方式将安装请求提交给改进版服务进程installd;
4.7改进版服务进程installd执行安装和APK优化,方法是:
4.7.1执行do_install函数,调用安卓系统的install函数,完成APK文件复制、目录创建、权限更改操作;
4.7.2执行do_dexopt函数,调用安卓系统的dexopt函数,执行APK优化,方法是:
4.7.2.1根据从PackageManagerSerivce传来的参数计算待生成优化目标文件的路径;
4.7.2.2创建优化目标文件、更改权限,获得该优化目标文件的读写操作句柄;
4.7.2.3判断由App应用获取模块通过步骤4.4传递的待安装应用安装包是否为可用的优化版安装包,若是则转4.7.2.4,若不是则转4.7.2.5;
4.7.2.4执行快速安装过程:installd从待安装的应用安装包中解压得到优化目标文件target.file,并通过4.7.2.2步骤中取得的读写操作句柄将target.file保存到指定的文件中,转4.11;
4.7.2.5调用安卓内置的可执行程序dex2oat或dexopt执行APK文件优化操作,生成最终执行所用的优化目标文件;
4.7.3 installd向机器码上传模块发送上传优化文件请求;
4.8机器码上传模块接收到installd发送的上传优化文件的请求后,向机器码集成模块发送优化目标文件上传请求,以上传应用运行时所需的优化目标文件;
4.9机器码集成模块接收优化目标文件,生成优化版安装包,向App应用管理模块发送添加优化安装包的请求;
4.10 App应用管理模块把优化安装包存入App应用数据表中;
4.11完成应用安装任务,转4.1。
2.如权利要求1所述的基于定制安卓平台的应用快速部署方法,其特征在于4.1.1步所述定期设置为每天或每小时,由用户根据能耗、流量自行定义。
基于定制安卓平台的应用快速部署方法\n技术领域\n[0001] 本发明涉及基于安卓系统的移动智能设备技术领域,尤其涉及一种基于定制安卓平台的应用部署方法。\n背景技术\n[0002] 从安卓平台V4.4(Android V4.4)开始,Google在Android中用ART(Android runtime)模式来代替Dalvik虚拟机,它以AOT(Ahead-Of-Time)方式运行Android应用程序,在运行前将中间代码静态编译为本地代码,节省了JIT(Just-In-Time)每次运行时进行转换的时间开销。然而,为兼容种类繁多的硬件设备,达到安卓应用跨平台运行的目的,即使是可以加快应用程序运行速度的ART模式,也并不要求开发者将自己的应用直接编译成目标机器码,Google原生APK格式安装包仍然是一个包含Dex字节码的APK(Android Package,即安卓应用安装文件)文件,设备在安装应用时仍然需要再次进行编译优化,将Dex字节码转换为机器码存储在设备中,供运行应用所用。\n[0003] 图1为安卓系统应用安装逻辑关系图。应用层Google Market、安卓系统内置的PackageInstaller或其它应用市场在用户点击等触发下,获得待安装的APK文件,并向中间层PackageManager发起安装请求。PackageManager以binder(Android系统进程间通信方式之一)方式将安装请求提交给服务层的PackageManagerSerivce处理,\nPackageManagerSerivce使用socket内部进程通讯的方式调用系统服务installd。\ninstalld执行目标文件检测、创建、权限更改等操作,最后使用execl调用安卓内置的可执行程序dex2oat或dexopt执行APK文件优化操作,生成最终执行所用的目标文件。\n[0004] 图2为安卓系统待安装的App原始安装包(即原始APK文件)结构。Android应用是用Java编写的,利用Android SDK(Android Software Development Kit)编译代码,并且把所有的数据和资源文件打包成一个APK文件,这是一个后缀名为.apk的压缩文件,APK文件中包含一个Android应用程序的所有内容,是Android平台用于安装应用程序的文件。APK其实是一个zip压缩包,其包含内容有:assets目录,用于存放需要打包到APK中的静态文件;lib目录,存放应用程序依赖的native库文件;res目录,res是resource的缩写,该目录存放应用程序的资源文件;META-INF目录,保存应用的签名信息和应用开发者对应用签名时使用的签名证书,用于验证APK文件的完整性;AndroidManifest.xml文件,是Android应用程序的配置文件;classes.dex文件,是Android应用可执行部分在打包时编译生成的特有的字节码文件;resources.arsc文件,记录资源文件和资源ID之间的映射关系。\n[0005] 图3为目前安卓系统应用安装流程图,步骤如下:\n[0006] 第一步,用户以点击等方式触发PackageInstaller的APK安装动作,并向PackageManager发起安装请求。\n[0007] 第二步,PackageManager以binder方式将安装请求发送给服务层的PackageManagerSerivce。\n[0008] 第三步,PackageManagerSerivce接收安装请求后,使用socket内部进程通讯方式将安装请求提交给服务进程installd。\n[0009] 第四步,installd执行安装和APK优化,方法是:\n[0010] 4.1执行do_install函数,调用安卓系统的install函数,完成APK文件复制、目录创建、权限更改等操作。\n[0011] 4.2执行do_dexopt函数,调用安卓系统的dexopt函数,执行APK优化,方法是:\n[0012] 4.2.1根据从PackageManagerSerivce传来的参数计算待生成优化目标文件的路径。\n[0013] 4.2.2创建优化目标文件、更改权限,获得该优化目标文件的读写操作句柄。\n[0014] 4.2.3调用安卓内置的可执行程序dex2oat或dexopt执行APK文件优化操作,生成最终执行所用的优化目标文件。\n[0015] 第五步,结束。\n[0016] 在整个应用安装过程中,消耗资源和时间最多的部分正是安卓系统应用安装流程图4.2.3步中将APK文件中的classes.dex字节码翻译为最终执行所需优化字节码或机器码的过程,它占据应用安装过程的大部分性能开销,导致应用安装耗时很长、系统响应变慢,严重降低用户体验。这些问题在计算资源有限的移动智能设备上更加突出。\n[0017] 因此,研究一种基于安卓平台的应用快速部署方法,从而实现应用快速安装、减少计算资源需求和降低能耗,对计算资源有限的移动智能设备有着重要意义和实用价值。本发明通过将终端执行所用的优化目标文件(ART虚拟机下的机器码文件或Dalvik虚拟机下的ODEX文件)内置到安卓系统安装包的方法,结合云端应用商城和商城客户端,构建应用快速部署系统,加速安卓系统的App的安装过程。查询国内外已发表的专利,目前还没有公开的文献涉及在安卓系统下通过最终执行时所用的优化目标文件内置的方式加快应用安装速度的技术研究。\n发明内容\n[0018] 本发明提供一种基于定制安卓平台的应用快速部署方法,用于解决运行安卓系统的移动智能设备应用安装时耗时长、能耗高、系统响应迟顿、用户体验差的问题。\n[0019] 本发明的技术方案是:改进安卓系统应用安装流程,增加云端应用商城和商城客户端,将移动智能设备运行应用时所需的优化目标文件内置于APK文件中,安装时免去最耗时耗能的本地化编译步骤,以实现快速安装部署的效果。\n[0020] 本发明具体包含如下步骤:\n[0021] 第一步,构建基于定制安卓平台的应用快速部署系统。该系统由两层构成:一是运行于云服务器中的云端应用商城;二是运行于移动智能设备上的应用商城客户端。\n[0022] 云服务器中部署着全网唯一的云端应用商城,云端应用商城由App应用管理模块、机器码集成模块、应用中心数据库组成。云端应用商城以并行方式为所有连接它的移动智能设备提供App应用下载、App列表下载、应用运行时所需的优化文件上传服务。应用中心数据库中有App应用数据表(如图4),App应用数据表有P项,P为App的个数。每个表项有4个域,分别为App标识,App分类标识,App原始安装包,App优化安装包列表,其中:App标识是表明App是何种应用的唯一标识;App分类标识表明App所属的分类类别,如社交聊天、影音播放、图片编辑等;App原始安装包中存放原始APK文件;App优化安装包列表是一个二维数组,其每行内容均由终端系统特征码、优化版安装包两项组成,优化版安装包存放终端系统特征码所对应类型的移动智能设备优化后的APK安装文件。终端系统特征码是移动智能设备所属类型的唯一标识,同一类型移动智能设备间硬件版本、系统软件版本完全相同,因此同一类型移动智能设备间最终运行App时所用的优化目标文件可以通用。1个App标识对应1个App优化安装包列表,每个App优化安装包列表有n项,n为连接云端应用商城的移动智能设备的类型数量。P,n均为正整数。\n[0023] 每一个移动智能设备上都运行着应用商城客户端,应用商城客户端由App应用获取模块、机器码上传模块组成,应用商城客户端用于显示云端应用商城中可用的App列表、下载支持快速部署的APK文件,以及上传本机编译生成的特定应用的优化目标文件。\n[0024] App应用管理模块与机器码集成模块、App应用获取模块、应用中心数据库相连,用于为App应用获取模块提供App列表下载、App下载服务,并为机器码集成模块提供APK文件。\nApp应用管理模块接收机器码集成模块发送的获取应用安装包的请求(参数为App标识),从App应用数据表中查找得到App标识对应的App原始安装包,并将该App原始安装包传递回机器码集成模块。App应用管理模块也接收机器码集成模块发送的添加优化安装包的请求(参数为App标识、终端系统特征码、优化版安装包),从App应用数据表中查找得到App标识对应的App优化安装包列表,将从机器码集成模块传来的终端系统特征码、优化版安装包存入App标识对应的App优化安装包列表中。App应用管理模块也接收App应用获取模块发送的下载App列表的请求(参数为App分类标识),从App应用数据表中查找得到属于该App分类标识的所有App,从而形成一个App列表(包含App应用数据表中App标识、App分类标识两项信息),并将此App列表传递回App应用获取模块。App应用管理模块还接收App应用获取模块发送的下载App的请求(参数为App标识、终端系统特征码),从App应用数据表中查找得到App标识对应的App原始安装包和App优化安装包列表,再从App优化安装包列表查找终端系统特征码对应的优化版安装包,若存在该优化版安装包则将该优化版安装包传递回App应用获取模块,若不存在则将App原始安装包传递回App应用获取模块。\n[0025] 机器码集成模块与App应用管理模块、机器码上传模块相连,用于接收优化目标文件,并集成该优化目标文件到App的原始安装包中从而生成针对特定终端系统的优化版安装包。机器码集成模块接收机器码上传模块发送的优化目标文件上传的请求(参数为App标识,终端系统特征码,优化目标文件),得到机器码上传模块发送的优化目标文件target.file,同时向App应用管理模块发送获取应用安装包请求(参数为App标识),得到App原始安装包,而后将优化目标文件target.file植入App原始安装包并对安装包重新签名,得到优化版安装包。机器码集成模块还向App应用管理模块发送添加优化安装包的请求(参数为App标识、终端系统特征码、优化版安装包),从而将优化版安装包保存到App应用数据表中。植入优化目标文件target.file的过程,就是将target.file存入如图2所示的原始安装包的过程,得到的优化版安装包格式如图5所示,即在resources.arsc文件之后增加了target.file,并打包成一个zip压缩包。\n[0026] App应用获取模块与App应用管理模块、服务进程installd相连,用于在移动智能设备上以列表方式显示云端应用商城中的App,从云端应用商城下载用户指定的应用安装包以及接收用户触摸点击事件触发应用安装过程。App应用获取模块向App应用管理模块发送下载App列表请求(参数为App分类标识),从App应用管理模块得到App列表(包含App标识、App分类标识两项信息),并在当前移动智能设备的应用显示列表中显示出来,给用户提供下载应用的界面。在用户下载某应用时,App应用获取模块还向App应用管理模块发送下载App请求(参数为App标识、终端系统特征码),得到App应用管理模块传递回来的优化版安装包后,通过安卓系统内部的PackageInstaller向installd发送应用安装请求(参数为应用安装包),从而完成应用安装任务。\n[0027] 机器码上传模块与机器码集成模块、服务进程installd相连,用于上传所属移动智能设备编译生成的应用运行时所需的目标文件,实现目标文件共享。机器码上传模块接收installd发送的上传优化文件的请求(参数为App标识、优化目标文件),从installd接收到App标识、优化目标文件后,携带所属移动智能设备的终端系统特征码向机器码集成模块发送优化目标文件上传请求(参数为App标识,终端系统特征码,优化目标文件),以上传应用运行时所需的优化目标文件。\n[0028] 第二步,改进安卓系统服务进程installd。\n[0029] 改进版服务进程installd与App应用获取模块、机器码上传模块相连,在执行安卓原有服务进程installd基础上,增加了对优化版安装包的支持,以实现快速安装部署。其修改方法是(与原应用安装流程对比见图6的第四步):\n[0030] 2.1改变原installd守护进程的优化文件生成流程,改进版installd在执行步骤\n4.2.2创建优化目标文件、更改权限,获得该优化目标文件的读写操作句柄后,并不直接执行本机编译过程,而是执行步骤M1判断待安装APK文件是否为可用的优化版安装包,若是则执行步骤M2(使用该文件进行快速安装,安装完直接结束),若不是则执行步骤4.2.3调用安卓内置的可执行程序执行APK文件优化操作,生成最终执行所用的优化目标文件;\n[0031] 2.2改变原installd的应用安装结束流程,改进版installd在执行步骤4.2.3调用安卓内置的可执行程序执行APK文件优化操作,生成最终执行所用的优化目标文件后,先执行步骤M3向机器码上传模块发送上传优化文件请求(参数为App标识、优化目标文件)并上传该优化目标文件,而后结束安装过程。\n[0032] 第三步,云端应用商城运行,初始化应用中心数据库。系统管理员通过App应用管理模块将提供给用户使用的App的相关内容即App标识,App分类标识,App原始安装包录入应用中心数据库App应用数据表中。对通过用户上传打包、按终端类型编译方式获得的App优化安装包,系统管理员也通过App应用管理模块将它们保存到App应用数据表中App标识对应的App优化安装包列表中。\n[0033] 第四步,移动智能设备在基于定制安卓平台的应用快速部署系统支持下并行部署应用,方法是:\n[0034] 4.1移动智能设备正常运行。App应用获取模块按4.1.1所述方法定期下载云端应用商场提供的App列表,同时App应用获取模块按4.1.2所述方法接收用户的操作指令,按不同指令进行操作。\n[0035] 4.1.1App应用获取模块使用安卓系统内置定时器,定期(一般设置为每天或每小时,由用户根据能耗、流量自行定义)向App应用管理模块发送下载App列表请求,将从App应用管理模块得到的App列表在移动智能设备上显示出来,给用户提供下载应用的界面。\n[0036] 4.1.2App应用获取模块根据移动智能设备上显示的App列表从键盘或触摸屏接收用户操作,若需安装应用则转4.2,无需操作则转4.1.2。\n[0037] 4.2App应用获取模块向App应用管理模块发送下载App请求(参数为App标识、终端系统特征码);\n[0038] 4.3App应用管理模块将应用安装包发送给App应用获取模块,方法是:App应用管理模块接收App应用获取模块发送的下载App的请求(参数为App标识、终端系统特征码),从App应用数据表中查找得到App标识对应的App原始安装包和App优化安装包列表,再从App优化安装包列表查找终端系统特征码对应的优化版安装包,若存在该优化版安装包则将该优化版安装包传递回App应用获取模块,若不存在则将App原始安装包传递回App应用获取模块。\n[0039] 4.4App应用获取模块通过触发PackageInstaller的APK安装动作,向PackageManager发起安装请求(参数为待安装应用安装包即待安装APK文件)。\n[0040] 4.5PackageManager以binder方式将安装请求发送给服务层的\nPackageManagerSerivce。\n[0041] 4.6PackageManagerSerivce接收安装请求后,使用socket内部进程通讯方式将安装请求提交给改进版服务进程installd。\n[0042] 4.7改进版服务进程installd执行安装和APK优化,方法是:\n[0043] 4.7.1执行do_install函数,调用安卓系统的install函数,完成APK文件复制、目录创建、权限更改等操作。\n[0044] 4.7.2执行do_dexopt函数,调用安卓系统的dexopt函数,执行APK优化,方法是:\n[0045] 4.7.2.1根据从PackageManagerSerivce传来的参数计算待生成优化目标文件的路径。\n[0046] 4.7.2.2创建优化目标文件、更改权限,获得该优化目标文件的读写操作句柄。\n[0047] 4.7.2.3判断由App应用获取模块通过步骤4.4传递的待安装应用安装包是否为可用的优化版安装包,若是则转4.7.2.4,若不是则转4.7.2.5进行本机编译。\n[0048] 4.7.2.4执行快速安装过程。installd从待安装的应用安装包中解压得到优化目标文件target.file,并通过4.7.2.2步骤中取得的读写操作句柄将target.file保存到指定的文件中。转4.11。\n[0049] 4.7.2.5调用安卓内置的可执行程序dex2oat或dexopt执行APK文件优化操作,生成最终执行所用的优化目标文件,完成应用的本机安装过程。\n[0050] 4.7.3installd向机器码上传模块发送上传优化文件请求。\n[0051] 4.8机器码上传模块接收到installd发送的上传优化文件的请求后,向机器码集成模块发送优化目标文件上传请求,以上传应用运行时所需的优化目标文件。\n[0052] 4.9机器码集成模块接收优化目标文件,生成优化版安装包,向App应用管理模块发送添加优化安装包的请求,方法是:机器码集成模块接收机器码上传模块发送的上传优化文件请求,得到机器码上传模块发送的优化目标文件,同时向App应用管理模块发送获取应用安装包请求,得到App原始安装包,而后将优化目标文件target.file植入App原始安装包并对安装包重新签名,得到优化版安装包,并向App应用管理模块发送添加优化安装包的请求。\n[0053] 4.10App应用管理模块把优化安装包存入App应用数据表中,方法是:App应用管理模块接收机器码集成模块发送的添加优化安装包的请求,从App应用数据表中查找得到App标识对应的App优化安装包列表,将从机器码集成模块传送来的终端系统特征码、优化版安装包存入App优化安装包列表中。\n[0054] 4.11完成应用安装任务,转4.1。\n[0055] 采用本发明可以达到以下技术效果:\n[0056] 1、本发明第二步改进了安卓系统服务进程installd,进而在第四步改进了安卓系统的APK包格式和应用安装流程。通过内置终端系统执行所需的优化目标文件的方式,在保证应用安装包兼容性的同时,有效提高应用安装速度。\n[0057] 2、本发明第四步改进了应用商城的一般服务方式。通过商城客户端携带终端系统特征码的方式,向应用商城请求应用安装包,应用商城通过终端系统特征码给不同版本的设备提供相应改进版安装包,提高商城服务的针对性。\n[0058] 3、本发明第四步提供了设备间共享优化目标文件的方案。通过服务进程installd与商城客户端配合,将终端编译生成的优化目标文件上传至云端应用商城,生成针对该型终端的改进版安装包,以实现更广泛的快速安装效果。\n附图说明\n[0059] 图1是背景技术所述安卓系统应用安装逻辑关系图;\n[0060] 图2是安卓系统的App原始安装包(即原始APK文件)结构图;\n[0061] 图3是背景技术所述安卓系统应用安装流程图;\n[0062] 图4是本发明App应用数据表的表项示意图;\n[0063] 图5是本发明优化版安装包(即改进版APK文件)结构图;\n[0064] 图6是本发明采用改进版服务进程installd进行应用安装时的安装流程与图3的对比图;\n[0065] 图7是本发明第一步构建的基于定制安卓平台的应用快速部署系统的总体结构图;\n[0066] 图8是本发明总体流程图;\n[0067] 图9是本发明第一步构建的基于定制安卓平台的应用快速部署系统中软件逻辑结构图。\n具体实施方式\n[0068] 图4是本发明App应用数据表的表项示意图。App应用数据表有P项,P为App的个数。\n每个表项有4个域,分别为App标识,App分类标识,App原始安装包,App优化安装包列表,其中:App标识是表明App是何种应用的唯一标识;App分类标识表明App所属的分类类别,如社交聊天、影音播放、图片编辑等;App原始安装包中存放原始APK安装文件;App优化安装包列表是一个二维数组,其每行内容均由终端系统特征码、优化版安装包两项组成,优化版安装包存放终端系统特征码所对应的移动智能设备优化后的APK安装文件。终端系统特征码是移动智能设备所属类型的唯一标识,同一类型移动智能设备间硬件版本、系统软件版本完全相同,因此同一类型移动智能设备间最终运行App时所用的优化目标文件可以通用。1个App标识对应1个App优化安装包列表,每个App优化安装包列表有n项,n为连接云端应用商城的移动智能设备的类型数量。P,n均为正整数。\n[0069] 图5是本发明优化版安装包(即改进版APK文件)结构图。优化版安装包也和与背景技术所描述的安卓系统的App原始安装包一样,也是一个后缀名为.apk的压缩文件。与App原始安装包相比,优化版安装包多了一项内容,即优化目标文件target.file。\n[0070] 图6是本发明采用改进版服务进程installd进行应用安装时的安装流程与图3的对比图。与原应用安装流程图3相比,新的应用安装流程修改如下:\n[0071] 2.1改变原installd守护进程的优化文件生成流程,改进版installd在执行步骤\n4.2.2创建优化目标文件、更改权限,获得该优化目标文件的读写操作句柄后,并不直接执行本机编译过程,而是执行步骤M1判断待安装APK文件是否为可用的优化版安装包,若是则执行步骤M2(使用该文件进行快速安装,安装完直接结束),若不是则执行步骤4.2.3调用安卓内置的可执行程序执行APK文件优化操作,生成最终执行所用的优化目标文件;\n[0072] 2.2改变原installd的应用安装结束流程,改进版installd在执行步骤4.2.3调用安卓内置的可执行程序执行APK文件优化操作,生成最终执行所用的优化目标文件后,先执行步骤M3向机器码上传模块发送上传优化文件请求(参数为App标识、优化目标文件)并上传该优化目标文件,而后结束安装过程。\n[0073] 图7是本发明第一步构建的基于定制安卓平台的应用快速部署系统的总体结构图。与图1相比,增加了云端应用商城、应用商城客户端,改进了installd服务进程。其中,云端应用商城位于服务器端,后两者运行于移动智能设备。云端应用商城主要用于提供支持快速部署的APK安装包文件;应用商城客户端用于显示云端应用商城中可用的App列表、下载支持快速部署的APK文件,以及根据用户设定上传本机编译生成的特定应用的优化目标文件;改进的installd用于增加对植入优化目标文件的apk安装文件的支持,以实现快速安装部署。\n[0074] 图8为本发明总体流程图。本发明包括以下步骤:\n[0075] 第一步,构建基于定制安卓平台的应用快速部署系统。该系统由两层构成:一是运行于云服务器中的云端应用商城;二是运行于移动智能设备上的应用商城客户端。\n[0076] 图9是本发明第一步构建的基于定制安卓平台的应用快速部署系统中软件逻辑结构图。如图9所示,云服务器中部署着全网唯一的云端应用商城,云端应用商城由App应用管理模块、机器码集成模块、应用中心数据库组成。云端应用商城以并行方式为所有连接它的移动智能设备提供App应用下载、App列表下载、应用运行时所需的优化文件上传服务。应用中心数据库中有App应用数据表。\n[0077] 每一个移动智能设备上都运行着应用商城客户端,应用商城客户端由App应用获取模块、机器码上传模块组成,应用商城客户端用于显示云端应用商城中可用的App列表、下载支持快速部署的APK文件,以及上传本机编译生成的特定应用的优化目标文件。\n[0078] App应用管理模块与机器码集成模块、App应用获取模块、应用中心数据库相连,用于为App应用获取模块提供App列表下载、App下载服务,并为机器码集成模块提供APK文件。\nApp应用管理模块接收机器码集成模块发送的获取应用安装包的请求(参数为App标识),从App应用数据表中查找得到App标识对应的App原始安装包,并将该App原始安装包传递回机器码集成模块。App应用管理模块也接收机器码集成模块发送的添加优化安装包的请求(参数为App标识、终端系统特征码、优化版安装包),从App应用数据表中查找得到App标识对应的App优化安装包列表,将从机器码集成模块传来的终端系统特征码、优化版安装包存入App标识对应的App优化安装包列表中。App应用管理模块也接收App应用获取模块发送的下载App列表的请求(参数为App分类标识),从App应用数据表中查找得到属于该App分类标识的所有App,从而形成一个App列表(包含App应用数据表中App标识、App分类标识两项信息),并将此App列表传递回App应用获取模块。App应用管理模块还接收App应用获取模块发送的下载App的请求(参数为App标识、终端系统特征码),从App应用数据表中查找得到App标识对应的App原始安装包和App优化安装包列表,再从App优化安装包列表查找终端系统特征码对应的优化版安装包,若存在该优化版安装包则将该优化版安装包传递回App应用获取模块,若不存在则将App原始安装包传递回App应用获取模块。\n[0079] 机器码集成模块与App应用管理模块、机器码上传模块相连,用于接收优化目标文件,并集成该优化目标文件到App的原始安装包中从而生成针对特定终端系统的优化版安装包。机器码集成模块接收机器码上传模块发送的优化目标文件上传的请求(参数为App标识,终端系统特征码,优化目标文件),得到机器码上传模块发送的优化目标文件target.file,同时向App应用管理模块发送获取应用安装包请求(参数为App标识),得到App原始安装包,而后将优化目标文件target.file植入App原始安装包并对安装包重新签名,得到优化版安装包。机器码集成模块还向App应用管理模块发送添加优化安装包的请求(参数为App标识、终端系统特征码、优化版安装包),从而将优化版安装包保存到App应用数据表中。植入优化目标文件target.file的过程,就是将target.file存入如图2所示的原始安装包的过程,得到的优化版安装包格式如图5所示,即在resources.arsc文件之后增加了target.file,并打包成一个zip压缩包。\n[0080] App应用获取模块与App应用管理模块、服务进程installd相连,用于在移动智能设备上以列表方式显示云端应用商城中的App,从云端应用商城下载用户指定的应用安装包以及接收用户触摸点击事件触发应用安装过程。App应用获取模块向App应用管理模块发送下载App列表请求(参数为App分类标识),从App应用管理模块得到App列表(包含App标识、App分类标识两项信息),并在当前移动智能设备的应用显示列表中显示出来,给用户提供下载应用的界面。在用户下载某应用时,App应用获取模块还向App应用管理模块发送下载App请求(参数为App标识、终端系统特征码),得到App应用管理模块传递回来的优化版安装包后,通过安卓系统内部的PackageInstaller向installd发送应用安装请求(参数为应用安装包),从而完成应用安装任务。\n[0081] 机器码上传模块与机器码集成模块、服务进程installd相连,用于上传所属移动智能设备编译生成的应用运行时所需的目标文件,实现目标文件共享。机器码上传模块接收installd发送的上传优化文件的请求(参数为App标识、优化目标文件),从installd接收到App标识、优化目标文件后,携带所属移动智能设备的终端系统特征码向机器码集成模块发送优化目标文件上传请求(参数为App标识,终端系统特征码,优化目标文件),以上传应用运行时所需的优化目标文件。\n[0082] 第二步,改进安卓系统服务进程installd。\n[0083] 第三步,云端应用商城运行,初始化应用中心数据库。系统管理员通过App应用管理模块将提供给用户使用的App的相关内容即App标识,App分类标识,App原始安装包录入应用中心数据库App应用数据表中。对通过用户上传打包、按终端类型编译方式获得的App优化安装包,系统管理员也通过App应用管理模块将它们保存到App应用数据表中App标识对应的App优化安装包列表中。\n[0084] 第四步,移动智能设备在基于定制安卓平台的应用快速部署系统支持下并行部署应用,方法是:\n[0085] 4.1移动智能设备正常运行。App应用获取模块按4.1.1所述方法定期下载云端应用商场提供的App列表,同时App应用获取模块按4.1.2所述方法接收用户的操作指令,按不同指令进行操作。\n[0086] 4.1.1App应用获取模块使用安卓系统内置定时器,定期(一般设置为每天或每小时,由用户根据能耗、流量自行定义)向App应用管理模块发送下载App列表请求,将从App应用管理模块得到的App列表在移动智能设备上显示出来,给用户提供下载应用的界面。\n[0087] 4.1.2App应用获取模块根据移动智能设备上显示的App列表从键盘或触摸屏接收用户操作,若需安装应用则转4.2,无需操作则转4.1.2。\n[0088] 4.2App应用获取模块向App应用管理模块发送下载App请求(参数为App标识、终端系统特征码);\n[0089] 4.3App应用管理模块将应用安装包发送给App应用获取模块,方法是:App应用管理模块接收App应用获取模块发送的下载App的请求(参数为App标识、终端系统特征码),从App应用数据表中查找得到App标识对应的App原始安装包和App优化安装包列表,再从App优化安装包列表查找终端系统特征码对应的优化版安装包,若存在该优化版安装包则将该优化版安装包传递回App应用获取模块,若不存在则将App原始安装包传递回App应用获取模块。\n[0090] 4.4App应用获取模块通过触发PackageInstaller的APK安装动作,向PackageManager发起安装请求(参数为待安装应用安装包即待安装APK文件)。\n[0091] 4.5PackageManager以binder方式将安装请求发送给服务层的\nPackageManagerSerivce。\n[0092] 4.6PackageManagerSerivce接收安装请求后,使用socket内部进程通讯方式将安装请求提交给改进版服务进程installd。\n[0093] 4.7改进版服务进程installd执行安装和APK优化,方法是:\n[0094] 4.7.1执行do_install函数,调用安卓系统的install函数,完成APK文件复制、目录创建、权限更改等操作。\n[0095] 4.7.2执行do_dexopt函数,调用安卓系统的dexopt函数,执行APK优化,方法是:\n[0096] 4.7.2.1根据从PackageManagerSerivce传来的参数计算待生成优化目标文件的路径。\n[0097] 4.7.2.2创建优化目标文件、更改权限,获得该优化目标文件的读写操作句柄。\n[0098] 4.7.2.3判断由App应用获取模块通过步骤4.4传递的待安装应用安装包是否为可用的优化版安装包,若是则转4.7.2.4,若不是则转4.7.2.5进行本机编译。\n[0099] 4.7.2.4执行快速安装过程。installd从待安装的应用安装包中解压得到优化目标文件target.file,并通过4.7.2.2步骤中取得的读写操作句柄将target.file保存到指定的文件中。转4.11。\n[0100] 4.7.2.5调用安卓内置的可执行程序dex2oat或dexopt执行APK文件优化操作,生成最终执行所用的优化目标文件,完成应用的本机安装过程。\n[0101] 4.7.3installd向机器码上传模块发送上传优化文件请求。\n[0102] 4.8机器码上传模块接收到installd发送的上传优化文件的请求后,向机器码集成模块发送优化目标文件上传请求,以上传应用运行时所需的优化目标文件。\n[0103] 4.9机器码集成模块接收优化目标文件,生成优化版安装包,向App应用管理模块发送添加优化安装包的请求,方法是:机器码集成模块接收机器码上传模块发送的上传优化文件请求,得到机器码上传模块发送的优化目标文件,同时向App应用管理模块发送获取应用安装包请求,得到App原始安装包,而后将优化目标文件target.file植入App原始安装包并对安装包重新签名,得到优化版安装包,并向App应用管理模块发送添加优化安装包的请求。\n[0104] 4.10App应用管理模块把优化安装包存入App应用数据表中,方法是:App应用管理模块接收机器码集成模块发送的添加优化安装包的请求,从App应用数据表中查找得到App标识对应的App优化安装包列表,将从机器码集成模块传送来的终端系统特征码、优化版安装包存入App优化安装包列表中。\n[0105] 4.11完成应用安装任务,转4.1。
法律信息
- 2018-01-19
- 2017-10-17
实质审查的生效
IPC(主分类): G06F 9/445
专利申请号: 201710357945.2
申请日: 2017.05.19
- 2017-09-15
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2016-04-27
|
2015-12-16
| | |
2
| |
2015-04-01
|
2014-11-26
| | |
3
| |
2014-07-09
|
2013-01-07
| | |
4
| |
2015-09-09
|
2015-06-17
| | |
5
| |
2016-09-28
|
2015-12-25
| | |
6
| |
2011-01-26
|
2009-07-17
| | |
7
| | 暂无 |
2015-03-20
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |