利索能及
我要发布
收藏
专利号: 2016105066108
申请人: 武汉斗鱼网络科技有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2024-12-10
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

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动态加载资源功能模块的系统,其特征在于:包括在服务器端设置的模块生成单元,在客户端设置的动态验证更新单元和加载单元,所述直播间模块生成单元,用于在服务器端生成单独的资源功能模块;

所述动态验证更新单元,用于在客户端检验资源功能模块的安全性和更新资源功能模块,所述加载单元,用于在客户端下载及加载资源功能模块。

7.根据权利要求6所述安卓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,用于进行加载并提示用户,实现下载回调。

8.根据权利要求7所述安卓app动态加载资源功能模块的系统,其特征在于:当安卓app作为主程序来打开资源功能模块时,主程序和服务器进行交互,主程序上传模块信息,服务器根据模块信息判断并返回标识,主程序根据标识确定后续处理逻辑。

9.根据权利要求8所述安卓app动态加载资源功能模块的系统,其特征在于:服务器判断并返回标识的方式如下,服务器根据主程序上传的模块信息与服务器本地最新的模块信息进行对比,首先,如果md5与服务的md5匹配,则直接返回标识1,如果不匹配,则开始进行其他的数据匹配如下,如果包名不对,则返回标识-2,如果签名或校验码不对,则返回标识-1,并将正确的模块地址一并下发给主程序;

如果版本不对,则需要更新,获取服务器后台设定的参数,确定该更新是2“建议更新”、

3“强制更新”或4“静默更新”,然后再下发信息到手机的主程序;

最后判断客户端版本,与服务器存储的该模块所需要的客户端版本是否一致,如果不一致则下发标识5到手机的主程序,提示用户需要更新客户端才能打开该资源功能模块。

10.根据权利要求9所述安卓app动态加载资源功能模块的系统,其特征在于:主程序根据标识确定后续处理逻辑的实现方式如下,如果返回是-1,则调用下载过程进行下载;

如果返回是1,则是调用动态验证更新过程打开;

如果返回是2,则是给予用户提示,由用户选择打开还是下载;

如果返回3,则是让用户等待,先调用下载过程进行下载,安装后再调用动态验证更新过程打开;

如果是返回4,则直接调用动态验证更新过程打开,并且在后台调用下载过程进行下载,用户感知不到下载;

如果是返回5,则提示用户需要跟新客户端app;

如果是返回-2或者请求失败,则终止启动资源功能模块,并给用户提示。