安卓app动态加载资源功能模块的方法及系统技术方案

技术编号:14012624 阅读:72 留言:0更新日期:2016-11-17 14:03
本发明专利技术提供一种安卓app动态加载资源功能模块的方法及系统,包括模块生成过程,包括在服务器端生成单独的资源功能模块;动态验证更新过程,在客户端检验资源功能模块的安全性和更新资源功能模块,联网判断模块的安全性及更新状况取版本最高的文件;加载过程,用于在客户端下载及加载资源功能模块,包括校验hash,根据扫描文件夹中所有该资源功能模块的版本号进行排序,删除较老版本的文件,直到剩下n个资源功能模块的文件,下载完成后开始进行加载并提示用户。本发明专利技术所提供安卓app动态加载功能模块的用途包括不限于直播间动态加载,具有重要的市场价值。

【技术实现步骤摘要】

本专利技术涉及视频应用
,尤其是涉及一种安卓应用动态加载资源功能模块的方法及系统。
技术介绍
当前,视频直播方式已经得到了广泛的应用。人们可以通过互联网随时随地在平板电脑、手机等多种客户端,通过安装的应用来观看视频直播。对于视频直播行业来说,直播间改版和直播间需求增加以前播放性能优化是常有的事情,但是通过现有的技术每开发一个新功能都将会触发升级来让用户去体验这些新功能,导致新功能覆盖时间久,版本碎片化严重。这个时候,动态加载技术就显得非常重要,在将用户体验提升到最好的情况下,也能不断的更新应用本身的功能及资源。相关术语及解释如下:App Android系统需要安装的应用,Application的缩写url 统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。assert Android应用包自带的资源文件包versioncode Android应用的版本号,每次新版本该版本号会随之增加文件hash 确定文件唯一性的一串字符,用以确定该文件的唯一性plugin 安卓app动态加载功能模块的总称md5 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。Api API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力
技术实现思路
针对现有技术的以上缺陷,本专利技术提供了一种安卓app动态加载资源功能模块的方法及系统。本专利技术的技术方案包括一种安卓app动态加载资源功能模块的方法,包括模块生成过程、动态验证更新过程和加载过程,所述模块生成过程,包括在服务器端生成单独的资源功能模块;所述动态验证更新过程,用于在客户端检验资源功能模块的安全性和更新资源功能模块,所述加载过程,用于在客户端下载及加载资源功能模块。而且,所述动态验证更新过程包括以下步骤,步骤A1,当用户打开资源功能模块,首先用包名判断是否加载,如果已加载,进入步骤A9,否则进入步骤A2;步骤A2,扫描plugin目录下该包名的文件是否存在,存在则进入步骤A3,否则进入步骤A5;步骤A3,判断有几个文件,大于1则取最新的版本进入步骤A4,否则直接进入步骤A4;步骤A4,进行加载,加载成功则进入步骤A9,加载失败则进入步骤A5;步骤A5,在assert目录下寻找是否存在该文件,存在则进入步骤A6,不存在则进入步骤A7;步骤A6,从assert目录复制到plugin目录,然后进入步骤A4;步骤A7,请求api,加上包名,进入步骤A8;步骤A8,下载该插件,进入步骤A4;步骤A9,联网判断安全性及更新;步骤A10,判断返回数据,若插件不安全或有更新返回步骤A8,若插件安全且没有更新,打开插件;所述加载过程包括以下步骤,步骤B1,传入包名、versioncode和渠道号生成md5字符串,并传入url下载地址,文件hash;步骤B2,在plugin目录中新建名称为temp的文件夹,并根据url下载地址下载该资源功能模块,下载完成则进入步骤B3,下载失败则任务终止;步骤B3,校验hash,并移动到plugin文件夹中;如果校验成功则进入步骤B4,否则任务终止;步骤B4,扫描plugin目录下该包名的文件是否大于预设的本地缓存模块数量n,是则进入步骤B5,否则进入步骤B6;步骤B5,根据扫描文件夹中所有该资源功能模块的版本号,并进行排序,删除较老版本的文件,直到剩下n个资源功能模块的文件,进入步骤B6;步骤B6,进行加载并提示用户,实现下载回调。而且,当安卓app作为主程序来打开资源功能模块时,主程序和服务器进行交互,主程序上传模块信息,服务器根据模块信息判断并返回标识,主程序根据标识确定后续处理逻辑。而且,服务器判断并返回标识的方式如下,服务器根据主程序上传的模块信息与服务器本地最新的模块信息进行对比,首先,如果md5与服务的md5匹配,则直接返回标识1,如果不匹配,则开始进行其他的数据匹配如下,如果包名不对,则返回标识-2,如果签名或校验码不对,则返回标识-1,并将正确的模块地址一并下发给主程序;如果版本不对,则需要更新,获取服务器后台设定的参数,确定该更新是2“建议更新”、3“强制更新”或4“静默更新”,然后再下发信息到手机的主程序;最后判断客户端版本,与服务器存储的该模块所需要的客户端版本是否一致,如果不一致则下发标识5到手机的主程序,提示用户需要更新客户端才能打开该资源功能模块。而且,主程序根据标识确定后续处理逻辑的实现方式如下,如果返回是-1,则调用下载过程进行下载;如果返回是1,则是调用动态验证更新过程打开;如果返回是2,则是给予用户提示,由用户选择打开还是下载;如果返回3,则是让用户等待,先调用下载过程进行下载,安装后再调用动态验证更新过程打开;如果是返回4,则直接调用动态验证更新过程打开,并且在后台调用下载过程进行下载,用户感知不到下载;如果是返回5,则提示用户需要跟新客户端app;如果是返回-2或者请求失败,则终止启动资源功能模块,并给用户提示。本专利技术还相应提供一种安卓app动态加载资源功能模块的系统,包括在服务器端设置的模块生成单元,在客户端设置的动态验证更新单元和加载单元,所述直播间模块生成单元,用于在服务器端生成单独的资源功能模块;所述动态验证更新单元,用于在客户端检验资源功能模块的安全性和更新资源功能模块,所述加载单元,用于在客户端下载及加载资源功能模块。而且,所述动态验证更新单元包括以下子单元,子单元A1,用于当用户打开资源功能模块,首先用包名判断是否加载,如果已加载,命令子单元A9工作,否则命令子单元A2工作;子单元A2,用于扫描plugin目录下该包名的文件是否存在,存在则命令子单元A3工作,否则命令子单元A5工作;子单元A3,用于判断有几个文件,大于1则取最新的版本命令子单元A4工作,否则直接命令子单元A4工作;子单元A4,用于进行加载,加载成功则命令子单元A9工作,加载失败则命令子单元A5工作;子单元A5,用于在assert目录下寻找是否存在该文件,存在则命令子单元A6工作,不存在则命令子单元A7工作;子单元A6,用于从assert目录复制到plugin目录,然后命令子单元A4工作;子单元A7,用于请求api,加上包名,命令子单元A8工作;子单元A8,用于下载该插件,命令子单元A4工作;子单元A9,用于联网判断安全性及更新;子单元A10,用于判断返回数据,若插件不安全或有更新返回子单元A8,若插件安全且没有更新,打开插件;所述加载单元包括以下子单元,子单元B1,用于传入包名、versioncode和渠道号生成md5字符串,并传入url下载地址,文件hash;子单元B2,用于在plugin目录中新建名称为temp的文件夹,并根据url下载地址下载该资源功能模块,下载完成则命令子单元B3工作,下载失败则任务终止;子单元B3,用于校验hash,并移动到plugin文件夹中;如果校验成功则命令子单元B4工作,否则任务终止;子单元B4,用于扫描plugin本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/62/201610506610.html" title="安卓app动态加载资源功能模块的方法及系统原文来自X技术">安卓app动态加载资源功能模块的方法及系统</a>

【技术保护点】
一种安卓app动态加载资源功能模块的方法,其特征在于:包括模块生成过程、动态验证更新过程和加载过程,所述模块生成过程,包括在服务器端生成单独的资源功能模块;所述动态验证更新过程,用于在客户端检验资源功能模块的安全性和更新资源功能模块,所述加载过程,用于在客户端下载及加载资源功能模块。

【技术特征摘要】
1.一种安卓app动态加载资源功能模块的方法,其特征在于:包括模块生成过程、动态验证更新过程和加载过程,所述模块生成过程,包括在服务器端生成单独的资源功能模块;所述动态验证更新过程,用于在客户端检验资源功能模块的安全性和更新资源功能模块,所述加载过程,用于在客户端下载及加载资源功能模块。2.根据权利要求1所述安卓app动态加载资源功能模块的方法,其特征在于:所述动态验证更新过程包括以下步骤,步骤A1,当用户打开资源功能模块,首先用包名判断是否加载,如果已加载,进入步骤A9,否则进入步骤A2;步骤A2,扫描plugin目录下该包名的文件是否存在,存在则进入步骤A3,否则进入步骤A5;步骤A3,判断有几个文件,大于1则取最新的版本进入步骤A4,否则直接进入步骤A4;步骤A4,进行加载,加载成功则进入步骤A9,加载失败则进入步骤A5;步骤A5,在assert目录下寻找是否存在该文件,存在则进入步骤A6,不存在则进入步骤A7;步骤A6,从assert目录复制到plugin目录,然后进入步骤A4;步骤A7,请求api,加上包名,进入步骤A8;步骤A8,下载该插件,进入步骤A4;步骤A9,联网判断安全性及更新;步骤A10,判断返回数据,若插件不安全或有更新返回步骤A8,若插件安全且没有更新,打开插件;所述加载过程包括以下步骤,步骤B1,传入包名、versioncode和渠道号生成md5字符串,并传入url下载地址,文件hash;步骤B2,在plugin目录中新建名称为temp的文件夹,并根据url下载地址下载该资源功能模块,下载完成则进入步骤B3,下载失败则任务终止;步骤B3,校验hash,并移动到plugin文件夹中;如果校验成功则进入步骤B4,否则任务终止;步骤B4,扫描plugin目录下该包名的文件是否大于预设的本地缓存模块数量n,是则进入步骤B5,否则进入步骤B6;步骤B5,根据扫描文件夹中所有该资源功能模块的版本号,并进行排序,删除较老版本的文件,直到剩下n个资源功能模块的文件,进入步骤B6;步骤B6,进行加载并提示用户,实现下载回调。3.根据权利要求2所述安卓app动态加载资源功能模块的方法,其特征在于:当安卓app作为主程序来打开资源功能模块时,主程序和服务器进行交互,主程序上传模块信息,服务器根据模块信息判断并返回标识,主程序根据标识确定后续处理逻辑。4.根据权利要求3所述安卓app动态加载资源功能模块的方法,其特征在于:服务器判断并返回标识的方式如下,服务器根据主程序上传的模块信息与服务器本地最新的模块信息进行对比,首先,如果md5与服务的md5匹配,则直接返回标识1,如果不匹配,则开始进行其他的数据匹配如下,如果包名不对,则返回标识-2,如果签名或校验码不对,则返回标识-1,并将正确的模块地址一并下发给主程序;如果版本不对,则需要更新,获取服务器后台设定的参数,确定该更新是2“建议更新”、3“强制更新”或4“静默更新”,然后再下发信息到手机的主程序;最后判断客户端版本,与服务器存储的该模块所需要的客户端版本是否一致,如果不一致则下发标识5到手机的主程序,提示用户需要更新客户端才能打开该资源功能模块。5.根据权利要求4所述安卓app动态加载资源功能模块的方法,其特征在于:主程序根据标识确定后续处理逻辑的实现方式如下,如果返回是-1,则调用下载过程进行下载;如果返回是1,则是调用动态验证更新过程打开;如果返回是2,则是给予用户提示,由用户选择打开还是下载;如果返回3,则是让用户等待,先调用下载过程进行下载,安装后再调用动态验证更新过程打开;如果是返回4,则直接调用动态验证更新过程打开,并且在后台调用下载过程进行下载,用户感知不到下载;如果是返回5,则提示用户需要跟新客户端app;如果是返回-2或者请求失败,则终止启动资源功能模块,并给用户提示。6.一种安卓app动态加载资源功能模块的系统,其特征在于:包括在服务器端设置的模块生成单元,在客户端设置的动态验证更新单元和...

【专利技术属性】
技术研发人员:王明丁鹏
申请(专利权)人:武汉斗鱼网络科技有限公司
类型:发明
国别省市:湖北;42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1