CN106131612A - 安卓app动态加载资源功能模块的方法及*** - Google Patents

安卓app动态加载资源功能模块的方法及*** Download PDF

Info

Publication number
CN106131612A
CN106131612A CN201610506610.8A CN201610506610A CN106131612A CN 106131612 A CN106131612 A CN 106131612A CN 201610506610 A CN201610506610 A CN 201610506610A CN 106131612 A CN106131612 A CN 106131612A
Authority
CN
China
Prior art keywords
subelement
module
resource function
function module
file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610506610.8A
Other languages
English (en)
Other versions
CN106131612B (zh
Inventor
王明
丁鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Urumqi Bangbangjun Technology Co ltd
Original Assignee
Wuhan Douyu Network Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Wuhan Douyu Network Technology Co Ltd filed Critical Wuhan Douyu Network Technology Co Ltd
Priority to CN201610506610.8A priority Critical patent/CN106131612B/zh
Publication of CN106131612A publication Critical patent/CN106131612A/zh
Application granted granted Critical
Publication of CN106131612B publication Critical patent/CN106131612B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26291Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for providing content or additional data updates, e.g. updating software modules, stored at the client
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/458Scheduling content for creating a personalised stream, e.g. by combining a locally stored advertisement with an incoming stream; Updating operations, e.g. for OS modules ; time-related management operations
    • H04N21/4586Content update operation triggered locally, e.g. by comparing the version of software modules in a DVB carousel to the version stored locally

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

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

Description

安卓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目录下该包名的文件是否大于预设的本地缓存模块数量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动态加载功能模块的用途包括不限于直播间动态加载,具有重要的市场价值。
附图说明
图1为本发明实施例的与服务器交互的流程图。
图2为本发明实施例的模块安全验证及动态更新流程图。
图3为本发明实施例的流程图。
具体实施方式
下面通过实施例并结合附图,对本发明的技术方案作进一步具体的说明。
为了能更好的说明本发明的技术方案,实施例以直播间动态加载为例来说明,但本发明技术方案包括而不限于直播间动态加载,聊天、社区、扩展功能、广告、主题、游戏、工具等资源功能模块同样能够适用。
1.可以独立维护的功能模块
实施例的模块生成过程,包括在服务器端生成单独的资源功能模块。在开发中,将直播间单独做成模块,当用户需要使用直播间时,客户端会向服务器请求下载该直播间模块。下载成功后,客户端将对该模块进行安全验证。验证通过后,将会向模块中传入房间号,及用户信息来打开该直播间。其他的请求服务,弹幕服务等都是由该模块来完成的。这样直播间的整体功能及资源就可以单独维护,可以大大缩小主App的安装包的大小。
这样的好处除了可以单独维护和缩小主App的安装包大小外,还有一点就是独立模块的运行对主App是没有任何影响的。如果模块因为某些原因出问题了,不会让主App崩溃。并且这个时候会启动模块的自动修复功能,让模块继续正确运行。
2.安卓app动态加载资源功能模块安全验证及动态更新
在App的不断发展中,总会迎来App中功能的更新,这样的更新在给用户带来新功能体验的同时也会带来不太好的体验(用户需要不断的升级)。如果有一种技术能让用户的App功能自动升级,这就解决了该用户体验不太好的问题。为了解决这个问题,动态更新应运而生。
在用户打开模块的时候,程序将模块的包名及其他信息传入进行判断。首先通过该包名判断程序中是否已经加载了该模块。如果加载了该模块,则联网判断该模块的安全性及更新状况。如果没有加载该模块,则去模块目录中扫描是否有文件的包名与之符合,如果有符合的话,取版本最高的。如果没有符合的,则去assert目录中寻找是否有符合的,有就加载,如果还是没有,则带上该包名去请求api,返回该模块最新的下载信息,去下载,下载完毕后则重复进行加载的过程。
实施例的动态验证更新过程,用于在客户端检验资源功能模块的安全性和更新资源功能模块,具体流程参见图2所示:
步骤1,当用户打开模块,首先用包名判断是否加载,如果已加载,进入步骤9,否则进入步骤2;
步骤2,扫描plugin目录下该包名的文件是否存在,存在则进入步骤3,否则进入步骤5;
步骤3,判断有几个文件,大于1则取最新的版本进入步骤4,否则直接进入步骤4;
步骤4,进行加载,加载成功则进入步骤9,加载失败则进入步骤5;
步骤5,在assert目录下寻找是否存在该文件,存在则进入步骤6,不存在则进入步骤7;
步骤6,从assert目录复制到plugin目录,然后进入步骤4;
步骤7,请求api,加上该包名,进入步骤8;
步骤8,下载该插件,进入步骤4;
步骤9,联网判断安全性及更新;
步骤10,判断返回数据,若插件不安全或有更新返回步骤8,若插件安全且没有更新,打开插件。
3.加载模块
直播间模块在第一次使用或更新的时候是需要下载的,为了统一用户下载该模块的版本及正确性,需要约定下载逻辑。
在需要下载之前,开发者需要传入url下载地址,文件hash,md5(由包名,versioncode,渠道号生成)这三个参数,并在plugin目录中新建名称为temp的文件夹(如果存在则可省略不新建)。接着开始执行下载,将下载的文件名命名为md5,下载完毕后,检测该文件的hash是否与传入的hash一致,如果一致的话则将文件移动到模块目录中,并检测目录中是否有大于n个该包名的文件,如果有,则删除最老的版本。执行完操作后通过下载回调返回。
实施例的加载过程,用于在客户端下载及加载资源功能模块,具体逻辑如图3所示:
步骤1,传入包名、versioncode和渠道号生成md5字符串,并传入url下载地址,文件hash;
步骤2,在plugin目录中新建名称为temp的文件夹,并根据url下载地址,下载该模块,下载完成则进入步骤3,下载失败则任务终止;
步骤3,校验hash,并移动到plugin文件夹中;如果校验成功则进入步骤4,否则任务终止;
步骤4,扫描plugin目录下该包名的文件是否大于n(n为本地缓存的该模块数量,具体实施时可以根据不同的需求来进行调整,由本领域技术人员预先设定),是则进入步骤5,否则小于等于n,进入步骤6;
步骤5,根据扫描文件夹中所有该模块的版本号,并进行排序,删除较老版本的模块文件,直到剩下n个模块的文件,为了防止用户升级后的版本出现致命错误,可以回退做备份,进入步骤6;
步骤6,本次下载完成,开始进行加载并提示用户,实现下载回调。
任务终止是,可以用户提示下载失败,请稍后再试。
4.打开模块前的交互
在手机上的安卓app作为主程序来打开直播间模块,这个主程序和服务器进行交互。为了解决恶意用户篡改和模块升级这个模块,本发明进一步提出,在打开模块之前加上图1的判断,这部分是需要跟服务器交互的,将模块的各种信息上传到服务器进行验证,验证通过后返回信息给手机进行相应的操作,如果是返回-2,或者请求失败则终止启动模块,并给用户提示。
参见图2,网络验证开始,手机主程序上传模块网络信息,包括包名、签名、校验码、版本、渠道、文件hash、客户端版本,然后服务器判断并返回标识,手机客户端主程序根据标识确定后续处理逻辑:
如果返回是-1,则调用图3所示流程下载。
如果返回是1,则是调用图2所示流程打开。
如果返回是2,则是给予用户提示,由用户选择打开还是下载。
如果返回3,则是让用户等待,先调用图3所示流程下载,安装后再调用图2所示流程打开。
如果是返回4,则直接调用图2所示流程打开,并且在后台调用图3所示流程下载,用户感知不到下载。
如果是返回5,则提示用户需要跟新客户端app。
如果是返回-2或者请求失败,则终止启动模块,并给用户提示。
服务器判断并返回标识的具体方式可以为:
服务器根据手机传过来的模块信息与服务器本地最新的模块信息进行对比,首先,如果md5与服务的md5匹配,则直接返回标识1,如果不匹配,则开始进行其他的数据匹配:
如果包名不对,则返回标识-2,
如果签名或校验码不对,则返回标识-1,并将正确的模块地址一并下发给手机的主程序;
如果版本不对,则需要更新,获取服务器后台设定的参数,来确定该更新是2“建议更新”、3“强制更新”或4“静默更新”,然后再下发信息到手机的主程序;
最后会判断客户端版本,与服务器存储的该模块所需要的客户端版本是否一致,如果不一致则下发标识5到手机的主程序,提示用户需要更新客户端才能打开该模块。
具体实施时,本发明所提供方法可基于软件技术实现自动运行流程,也可采用模块化方式实现相应***。
本发明还相应提供一种安卓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,用于进行加载并提示用户,实现下载回调。
各模块具体实现可参见相应步骤,本发明不予赘述。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

Claims (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或者请求失败,则终止启动资源功能模块,并给用户提示。
CN201610506610.8A 2016-06-30 2016-06-30 安卓app动态加载资源功能模块的方法及*** Active CN106131612B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610506610.8A CN106131612B (zh) 2016-06-30 2016-06-30 安卓app动态加载资源功能模块的方法及***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610506610.8A CN106131612B (zh) 2016-06-30 2016-06-30 安卓app动态加载资源功能模块的方法及***

Publications (2)

Publication Number Publication Date
CN106131612A true CN106131612A (zh) 2016-11-16
CN106131612B CN106131612B (zh) 2019-03-05

Family

ID=57467642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610506610.8A Active CN106131612B (zh) 2016-06-30 2016-06-30 安卓app动态加载资源功能模块的方法及***

Country Status (1)

Country Link
CN (1) CN106131612B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107624211A (zh) * 2017-06-09 2018-01-23 畅充科技(上海)有限公司 充电方法及装置
CN108664265A (zh) * 2018-05-15 2018-10-16 玩咖欢聚文化传媒(北京)有限公司 安卓应用程序的插值化方法以及***
CN109213534A (zh) * 2017-06-30 2019-01-15 武汉斗鱼网络科技有限公司 一种扩展直播软件功能的方法及装置
CN109582684A (zh) * 2018-11-30 2019-04-05 深圳市盟天科技有限公司 一种本地缓存数据的更新方法、装置、服务器及存储介质
CN110069505A (zh) * 2017-09-21 2019-07-30 张锐 离线数据处理方法及离线数据更新装置
CN110069729A (zh) * 2017-11-15 2019-07-30 百度在线网络技术(北京)有限公司 一种应用的离线缓存方法和***
CN110162727A (zh) * 2019-05-29 2019-08-23 上海有谱网络科技有限公司 Android***HTML5资源本地缓存的方法
CN110417912A (zh) * 2019-08-08 2019-11-05 成都九洲电子信息***股份有限公司 一种文件下载完成后回调的方法
CN110784540A (zh) * 2019-10-31 2020-02-11 四川巧夺天工信息安全智能设备有限公司 一种基于多终端决策的数字媒体分发平台流量削减和加速的方法
CN111416842A (zh) * 2020-03-06 2020-07-14 科大讯飞股份有限公司 一种资源集群自动分发及热更新***及方法
CN113850941A (zh) * 2021-09-08 2021-12-28 深圳柏成科技有限公司 一种无人值守的门禁***远程升级方法
CN114528038A (zh) * 2022-01-06 2022-05-24 厦门游动网络科技有限公司 App内实时加载模块的方法、***、电子装置和存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140173389A1 (en) * 2012-12-13 2014-06-19 Hon Hai Precision Industry Co., Ltd. Updating system and method
CN104699511A (zh) * 2015-03-27 2015-06-10 北京奇虎科技有限公司 插件升级方法及装置
CN104714828A (zh) * 2015-03-31 2015-06-17 北京奇虎科技有限公司 应用安装、运行方法及装置
CN104717301A (zh) * 2015-03-27 2015-06-17 北京奇虎科技有限公司 插件下载方法及装置
CN105373396A (zh) * 2015-08-14 2016-03-02 腾讯科技(深圳)有限公司 插件平台中的插件更新方法和装置
CN105607935A (zh) * 2015-12-24 2016-05-25 北京奇虎科技有限公司 应用程序更新方法及其终端、服务器

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140173389A1 (en) * 2012-12-13 2014-06-19 Hon Hai Precision Industry Co., Ltd. Updating system and method
CN104699511A (zh) * 2015-03-27 2015-06-10 北京奇虎科技有限公司 插件升级方法及装置
CN104717301A (zh) * 2015-03-27 2015-06-17 北京奇虎科技有限公司 插件下载方法及装置
CN104714828A (zh) * 2015-03-31 2015-06-17 北京奇虎科技有限公司 应用安装、运行方法及装置
CN105373396A (zh) * 2015-08-14 2016-03-02 腾讯科技(深圳)有限公司 插件平台中的插件更新方法和装置
CN105607935A (zh) * 2015-12-24 2016-05-25 北京奇虎科技有限公司 应用程序更新方法及其终端、服务器

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107624211A (zh) * 2017-06-09 2018-01-23 畅充科技(上海)有限公司 充电方法及装置
CN109213534A (zh) * 2017-06-30 2019-01-15 武汉斗鱼网络科技有限公司 一种扩展直播软件功能的方法及装置
CN110069505A (zh) * 2017-09-21 2019-07-30 张锐 离线数据处理方法及离线数据更新装置
CN110069729B (zh) * 2017-11-15 2022-07-01 上海优扬新媒信息技术有限公司 一种应用的离线缓存方法和***
CN110069729A (zh) * 2017-11-15 2019-07-30 百度在线网络技术(北京)有限公司 一种应用的离线缓存方法和***
CN108664265A (zh) * 2018-05-15 2018-10-16 玩咖欢聚文化传媒(北京)有限公司 安卓应用程序的插值化方法以及***
CN109582684A (zh) * 2018-11-30 2019-04-05 深圳市盟天科技有限公司 一种本地缓存数据的更新方法、装置、服务器及存储介质
CN110162727A (zh) * 2019-05-29 2019-08-23 上海有谱网络科技有限公司 Android***HTML5资源本地缓存的方法
CN110417912B (zh) * 2019-08-08 2022-01-28 成都九洲电子信息***股份有限公司 一种文件下载完成后回调的方法
CN110417912A (zh) * 2019-08-08 2019-11-05 成都九洲电子信息***股份有限公司 一种文件下载完成后回调的方法
CN110784540A (zh) * 2019-10-31 2020-02-11 四川巧夺天工信息安全智能设备有限公司 一种基于多终端决策的数字媒体分发平台流量削减和加速的方法
CN110784540B (zh) * 2019-10-31 2022-03-04 四川巧夺天工信息安全智能设备有限公司 一种基于多终端决策的数字媒体分发平台流量削减和加速的方法
CN111416842A (zh) * 2020-03-06 2020-07-14 科大讯飞股份有限公司 一种资源集群自动分发及热更新***及方法
CN113850941A (zh) * 2021-09-08 2021-12-28 深圳柏成科技有限公司 一种无人值守的门禁***远程升级方法
CN114528038A (zh) * 2022-01-06 2022-05-24 厦门游动网络科技有限公司 App内实时加载模块的方法、***、电子装置和存储介质

Also Published As

Publication number Publication date
CN106131612B (zh) 2019-03-05

Similar Documents

Publication Publication Date Title
CN106131612A (zh) 安卓app动态加载资源功能模块的方法及***
CN103744686B (zh) 智能终端中应用安装的控制方法和***
CN107239288B (zh) 一种移动终端的版本升级方法及装置
CN100501675C (zh) 一种用于软件升级的方法及装置
US9792623B2 (en) Advertisement processing method and apparatus
CN101305555B (zh) 使用元数据的多媒体中间件装置和用于控制多媒体中间件的方法
CN105138347A (zh) 一种差分升级包生成方法、软件升级方法及相应装置
CN102300065A (zh) 基于安卓平台的智能电视软件安全认证的方法
CN103905651A (zh) 智能终端中应用权限管理方法及***
CN102227732A (zh) 用于管理软件版本的方法、装置和计算机程序产品
CN106919843A (zh) 漏洞修复***、方法及设备
US7558963B2 (en) Communication device and program
CN109863475A (zh) 一种安全元件中的应用的升级方法及相关设备
US11003435B2 (en) Manifest trialing techniques
CN105786636B (zh) 一种***修复方法及装置
CN110879713A (zh) 一种android端强加密插件热更新管理方法
CN105872842A (zh) 一种多桌面独立升级方法及装置
WO2022257927A1 (zh) 密钥烧录方法、装置、电子设备板卡及存储介质
CN108958785B (zh) 一种应用程序升级方法及装置
CN104158907A (zh) 应用程序文件下载方法及装置
EP1705919A1 (en) Method for signature authentication in a broadcast receiver
CN106708494B (zh) Jar升级方法及装置
CN114048463A (zh) 程序运行校验方法、装置、存储介质及电子设备
CN108259556A (zh) 参数配置方法及终端
CN109348472B (zh) 一种基于单点推送的ota升级方法及***

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20240306

Address after: 830000, Room 17A, Building 17, Block A, Times Square Community, No. 59 Guangming Road, Tianshan District, Urumqi, Xinjiang Uygur Autonomous Region BD00244

Patentee after: Urumqi Bangbangjun Technology Co.,Ltd.

Country or region after: China

Address before: 430000 East Lake Development Zone, Wuhan City, Hubei Province, China Science and Technology Park Innovation Enterprise Base 2 A Unit 2

Patentee before: WUHAN DOUYU NETWORK TECHNOLOGY Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right