[go: up one dir, main page]

CN106131612A - The method and system of Android app dynamic load resource function module - Google Patents

The method and system of Android app dynamic load resource function module 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
resource function
module
subelement
function module
download
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
Chinese (zh)
Other versions
CN106131612B (en
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.)
Sanya Leifeng Information 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/en
Publication of CN106131612A publication Critical patent/CN106131612A/en
Application granted granted Critical
Publication of CN106131612B publication Critical patent/CN106131612B/en
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动态加载功能模块的用途包括不限于直播间动态加载,具有重要的市场价值。

The present invention provides a method and system for dynamically loading resource function modules in an Android app, including a module generation process, including generating a separate resource function module on the server side; a dynamic verification update process, and checking the security and update of the resource function module on the client side For the resource function module, the file with the highest version is used to determine the security and update status of the module on the network; the loading process is used to download and load the resource function module on the client, including verifying the hash, according to all the resource function modules in the scanned folder The version numbers are sorted, and the files of older versions are deleted until the files of n resource function modules are left. After the download is completed, the loading starts and the user is prompted. The application of the Android app dynamic loading function module provided by the present invention includes not limited to the dynamic loading in the live broadcast room, and has important market value.

Description

安卓app动态加载资源功能模块的方法及系统Method and system for dynamically loading resource function modules in Android app

技术领域technical field

本发明涉及视频应用技术领域,尤其是涉及一种安卓应用动态加载资源功能模块的方法及系统。The present invention relates to the technical field of video applications, in particular to a method and system for dynamically loading resource function modules by Android applications.

背景技术Background technique

当前,视频直播方式已经得到了广泛的应用。人们可以通过互联网随时随地在平板电脑、手机等多种客户端,通过安装的应用来观看视频直播。Currently, live video broadcasting has been widely used. People can use the Internet to watch live video anytime, anywhere on a variety of clients such as tablet computers and mobile phones, through installed applications.

对于视频直播行业来说,直播间改版和直播间需求增加以前播放性能优化是常有的事情,但是通过现有的技术每开发一个新功能都将会触发升级来让用户去体验这些新功能,导致新功能覆盖时间久,版本碎片化严重。For the video live broadcast industry, it is common to optimize playback performance before live room revisions and live room demand increase, but every new function developed through existing technologies will trigger an upgrade to allow users to experience these new functions. As a result, the coverage of new functions takes a long time, and the version fragmentation is serious.

这个时候,动态加载技术就显得非常重要,在将用户体验提升到最好的情况下,也能不断的更新应用本身的功能及资源。At this time, dynamic loading technology is very important. In the case of improving the user experience to the best, it can also continuously update the functions and resources of the application itself.

相关术语及解释如下:The relevant terms and explanations are as follows:

App Android系统需要安装的应用,Application的缩写App Android system needs to install the application, the abbreviation of Application

url 统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。url Uniform resource locator is a concise representation of the location and access method of resources that can be obtained from the Internet, and is the address of standard resources on the Internet.

assert Android应用包自带的资源文件包assert The resource file package that comes with the Android application package

versioncode Android应用的版本号,每次新版本该版本号会随之增加versioncode The version number of the Android application, which will increase with each new version

文件hash 确定文件唯一性的一串字符,用以确定该文件的唯一性File hash A string of characters to determine the uniqueness of the file, used to determine the uniqueness of the file

plugin 安卓app动态加载功能模块的总称plugin Android app dynamic loading function module general term

md5 Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。md5 Message Digest Algorithm MD5 (Chinese name is the fifth edition of Message Digest Algorithm) is a hash function widely used in the field of computer security to provide message integrity protection.

Api API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力Api API (Application Programming Interface, application programming interface) is some predefined functions, the purpose is to provide applications and developers with the ability to access a set of routines based on certain software or hardware

发明内容Contents of the invention

针对现有技术的以上缺陷,本发明提供了一种安卓app动态加载资源功能模块的方法及系统。Aiming at the above defects of the prior art, the present invention provides a method and system for dynamically loading resource function modules in an Android app.

本发明的技术方案包括一种安卓app动态加载资源功能模块的方法,包括模块生成过程、动态验证更新过程和加载过程,The technical solution of the present invention includes a method for dynamically loading resource function modules in an Android app, including a module generation process, a dynamic verification update process and a loading process,

所述模块生成过程,包括在服务器端生成单独的资源功能模块;The module generation process includes generating a separate resource function module on the server side;

所述动态验证更新过程,用于在客户端检验资源功能模块的安全性和更新资源功能模块,The dynamic verification update process is used to verify the security of the resource function module and update the resource function module on the client side,

所述加载过程,用于在客户端下载及加载资源功能模块。The loading process is used to download and load resource function modules on the client side.

而且,所述动态验证更新过程包括以下步骤,Moreover, the dynamic verification update process includes the following steps,

步骤A1,当用户打开资源功能模块,首先用包名判断是否加载,如果已加载,进入步骤A9,否则进入步骤A2;Step A1, when the user opens the resource function module, first use the package name to judge whether it is loaded, if it has been loaded, go to step A9, otherwise go to step A2;

步骤A2,扫描plugin目录下该包名的文件是否存在,存在则进入步骤A3,否则进入步骤A5;Step A2, scan whether the file with the package name in the plugin directory exists, if it exists, go to step A3, otherwise go to step A5;

步骤A3,判断有几个文件,大于1则取最新的版本进入步骤A4,否则直接进入步骤A4;Step A3, determine how many files there are, if it is greater than 1, take the latest version and enter step A4, otherwise directly enter step A4;

步骤A4,进行加载,加载成功则进入步骤A9,加载失败则进入步骤A5;Step A4, carry out loading, if the loading is successful, go to step A9, and if the loading fails, go to step A5;

步骤A5,在assert目录下寻找是否存在该文件,存在则进入步骤A6,不存在则进入步骤A7;Step A5, find whether the file exists in the assert directory, if it exists, go to step A6, if it does not exist, go to step A7;

步骤A6,从assert目录复制到plugin目录,然后进入步骤A4;Step A6, copy from the assert directory to the plugin directory, and then go to step A4;

步骤A7,请求api,加上包名,进入步骤A8;Step A7, request api, add the package name, and enter step A8;

步骤A8,下载该插件,进入步骤A4;Step A8, download the plug-in, and go to step A4;

步骤A9,联网判断安全性及更新;Step A9, judging security and updating through networking;

步骤A10,判断返回数据,若插件不安全或有更新返回步骤A8,若插件安全且没有更新,打开插件;Step A10, judging the returned data, if the plug-in is not safe or updated, return to step A8, if the plug-in is safe and not updated, open the plug-in;

所述加载过程包括以下步骤,The loading process includes the following steps,

步骤B1,传入包名、versioncode和渠道号生成md5字符串,并传入url下载地址,文件hash;Step B1, pass in package name, versioncode and channel number to generate md5 string, and pass in url download address and file hash;

步骤B2,在plugin目录中新建名称为temp的文件夹,并根据url下载地址下载该资源功能模块,下载完成则进入步骤B3,下载失败则任务终止;Step B2, create a folder named temp in the plugin directory, and download the resource function module according to the url download address. After the download is completed, enter step B3. If the download fails, the task is terminated;

步骤B3,校验hash,并移动到plugin文件夹中;如果校验成功则进入步骤B4,否则任务终止;Step B3, verify the hash, and move it to the plugin folder; if the verification is successful, enter step B4, otherwise the task is terminated;

步骤B4,扫描plugin目录下该包名的文件是否大于预设的本地缓存模块数量n,是则进入步骤B5,否则进入步骤B6;Step B4, scan whether the file with the package name in the plugin directory is greater than the preset number n of local cache modules, if yes, go to step B5, otherwise go to step B6;

步骤B5,根据扫描文件夹中所有该资源功能模块的版本号,并进行排序,删除较老版本的文件,直到剩下n个资源功能模块的文件,进入步骤B6;Step B5, according to the version numbers of all the resource function modules in the scanned folder, and sort them, delete files of older versions until there are n files of resource function modules left, and enter step B6;

步骤B6,进行加载并提示用户,实现下载回调。Step B6, carry out loading and prompt the user to realize download callback.

而且,当安卓app作为主程序来打开资源功能模块时,主程序和服务器进行交互,主程序上传模块信息,服务器根据模块信息判断并返回标识,主程序根据标识确定后续处理逻辑。Moreover, when the Android app is used as the main program to open the resource function module, the main program interacts with the server, the main program uploads the module information, the server judges and returns the identification according to the module information, and the main program determines the follow-up processing logic according to the identification.

而且,服务器判断并返回标识的方式如下,Moreover, the way the server judges and returns the ID is as follows,

服务器根据主程序上传的模块信息与服务器本地最新的模块信息进行对比,首先,如果md5与服务的md5匹配,则直接返回标识1,如果不匹配,则开始进行其他的数据匹配如下,The server compares the module information uploaded by the main program with the latest local module information on the server. First, if the md5 matches the md5 of the service, it will directly return the identifier 1. If it does not match, start other data matching as follows,

如果包名不对,则返回标识-2,If the package name is incorrect, return ID -2,

如果签名或校验码不对,则返回标识-1,并将正确的模块地址一并下发给主程序;如果版本不对,则需要更新,获取服务器后台设定的参数,确定该更新是2“建议更新”、3“强制更新”或4“静默更新”,然后再下发信息到手机的主程序;If the signature or verification code is wrong, return the ID -1, and send the correct module address to the main program; if the version is wrong, it needs to be updated, obtain the parameters set by the server background, and determine that the update is 2" Suggest update", 3 "forced update" or 4 "silent update", and then send the information to the main program of the mobile phone;

最后判断客户端版本,与服务器存储的该模块所需要的客户端版本是否一致,如果不一致则下发标识5到手机的主程序,提示用户需要更新客户端才能打开该资源功能模块。Finally, judge whether the client version is consistent with the client version required by the module stored in the server, and if not, then send the identification 5 to the main program of the mobile phone, prompting the user to update the client to open the resource function module.

而且,主程序根据标识确定后续处理逻辑的实现方式如下,Moreover, the main program determines the implementation of the follow-up processing logic according to the identification as follows,

如果返回是-1,则调用下载过程进行下载;If the return is -1, call the download process to download;

如果返回是1,则是调用动态验证更新过程打开;If the return is 1, the dynamic verification update process is called to open;

如果返回是2,则是给予用户提示,由用户选择打开还是下载;If the return is 2, it will give the user a prompt, and the user can choose to open or download;

如果返回3,则是让用户等待,先调用下载过程进行下载,安装后再调用动态验证更新过程打开;If it returns 3, the user is asked to wait, first call the download process to download, and then call the dynamic verification update process to open after installation;

如果是返回4,则直接调用动态验证更新过程打开,并且在后台调用下载过程进行下载,用户感知不到下载;If it returns 4, directly call the dynamic verification update process to open, and call the download process in the background to download, and the user cannot perceive the download;

如果是返回5,则提示用户需要跟新客户端app;If 5 is returned, the user is prompted to update the client app;

如果是返回-2或者请求失败,则终止启动资源功能模块,并给用户提示。If -2 is returned or the request fails, the resource function module will be terminated and a prompt will be given to the user.

本发明还相应提供一种安卓app动态加载资源功能模块的系统,包括在服务器端设置的模块生成单元,在客户端设置的动态验证更新单元和加载单元,The present invention also correspondingly provides a system for dynamically loading resource function modules of an Android app, including a module generation unit set on the server side, a dynamic verification update unit and a loading unit set on the client side,

所述直播间模块生成单元,用于在服务器端生成单独的资源功能模块;The live room module generation unit is used to generate a separate resource function module on the server side;

所述动态验证更新单元,用于在客户端检验资源功能模块的安全性和更新资源功能模块,The dynamic verification and updating unit is used to verify the security of the resource function module and update the resource function module on the client side,

所述加载单元,用于在客户端下载及加载资源功能模块。The loading unit is used for downloading and loading resource function modules on the client side.

而且,所述动态验证更新单元包括以下子单元,Moreover, the dynamic verification update unit includes the following subunits,

子单元A1,用于当用户打开资源功能模块,首先用包名判断是否加载,如果已加载,命令子单元A9工作,否则命令子单元A2工作;Subunit A1 is used to determine whether to load the resource function module by the package name first when the user opens it. If it has been loaded, order subunit A9 to work, otherwise order subunit A2 to work;

子单元A2,用于扫描plugin目录下该包名的文件是否存在,存在则命令子单元A3工作,否则命令子单元A5工作;Subunit A2 is used to scan whether the file with the package name in the plugin directory exists, and if it exists, order subunit A3 to work, otherwise order subunit A5 to work;

子单元A3,用于判断有几个文件,大于1则取最新的版本命令子单元A4工作,否则直接命令子单元A4工作;Subunit A3 is used to judge how many files there are. If it is greater than 1, the latest version will be used to order subunit A4 to work, otherwise directly order subunit A4 to work;

子单元A4,用于进行加载,加载成功则命令子单元A9工作,加载失败则命令子单元A5工作;Subunit A4 is used for loading. If the loading is successful, the subunit A9 is ordered to work, and if the loading fails, the subunit A5 is ordered to work;

子单元A5,用于在assert目录下寻找是否存在该文件,存在则命令子单元A6工作,不存在则命令子单元A7工作;Subunit A5 is used to find whether the file exists in the assert directory, if it exists, order subunit A6 to work, and if it does not exist, order subunit A7 to work;

子单元A6,用于从assert目录复制到plugin目录,然后命令子单元A4工作;Subunit A6 is used to copy from the assert directory to the plugin directory, and then order subunit A4 to work;

子单元A7,用于请求api,加上包名,命令子单元A8工作;Subunit A7 is used to request api, add the package name, and order subunit A8 to work;

子单元A8,用于下载该插件,命令子单元A4工作;Subunit A8 is used to download the plug-in and order subunit A4 to work;

子单元A9,用于联网判断安全性及更新;Sub-unit A9 is used to judge security and update through networking;

子单元A10,用于判断返回数据,若插件不安全或有更新返回子单元A8,若插件安全且没有更新,打开插件;Subunit A10 is used to judge the returned data. If the plug-in is not safe or updated, return to sub-unit A8. If the plug-in is safe and not updated, open the plug-in;

所述加载单元包括以下子单元,The loading unit includes the following subunits,

子单元B1,用于传入包名、versioncode和渠道号生成md5字符串,并传入url下载地址,文件hash;Subunit B1 is used to pass in package name, versioncode and channel number to generate md5 string, and pass in url download address and file hash;

子单元B2,用于在plugin目录中新建名称为temp的文件夹,并根据url下载地址下载该资源功能模块,下载完成则命令子单元B3工作,下载失败则任务终止;Subunit B2 is used to create a new folder named temp in the plugin directory, and download the resource function module according to the url download address. After the download is completed, the subunit B3 is ordered to work. If the download fails, the task is terminated;

子单元B3,用于校验hash,并移动到plugin文件夹中;如果校验成功则命令子单元B4工作,否则任务终止;Subunit B3 is used to verify the hash and move it to the plugin folder; if the verification is successful, order subunit B4 to work, otherwise the task is terminated;

子单元B4,用于扫描plugin目录下该包名的文件是否大于预设的本地缓存模块数量n,是则命令子单元B5工作,否则命令子单元B6工作;Subunit B4 is used to scan whether the file of the package name in the plugin directory is greater than the preset number n of local cache modules, and if so, order subunit B5 to work, otherwise order subunit B6 to work;

子单元B5,用于根据扫描文件夹中所有该资源功能模块的版本号,并进行排序,删除较老版本的文件,直到剩下n个资源功能模块的文件,命令子单元B6工作;The subunit B5 is used to scan and sort the version numbers of all the resource function modules in the folder, delete files of older versions, and order the subunit B6 to work until the files of n resource function modules remain;

子单元B6,用于进行加载并提示用户,实现下载回调。The subunit B6 is used for loading and prompting the user to implement download callback.

而且,当安卓app作为主程序来打开资源功能模块时,主程序和服务器进行交互,主程序上传模块信息,服务器根据模块信息判断并返回标识,主程序根据标识确定后续处理逻辑。Moreover, when the Android app is used as the main program to open the resource function module, the main program interacts with the server, the main program uploads the module information, the server judges and returns the identification according to the module information, and the main program determines the follow-up processing logic according to the identification.

而且,服务器判断并返回标识的方式如下,Moreover, the way the server judges and returns the ID is as follows,

服务器根据主程序上传的模块信息与服务器本地最新的模块信息进行对比,首先,如果md5与服务的md5匹配,则直接返回标识1,如果不匹配,则开始进行其他的数据匹配如下,The server compares the module information uploaded by the main program with the latest local module information on the server. First, if the md5 matches the md5 of the service, it will directly return the identifier 1. If it does not match, start other data matching as follows,

如果包名不对,则返回标识-2,If the package name is incorrect, return ID -2,

如果签名或校验码不对,则返回标识-1,并将正确的模块地址一并下发给主程序;如果版本不对,则需要更新,获取服务器后台设定的参数,确定该更新是2“建议更新”、3“强制更新”或4“静默更新”,然后再下发信息到手机的主程序;If the signature or verification code is wrong, return the ID -1, and send the correct module address to the main program; if the version is wrong, it needs to be updated, obtain the parameters set by the server background, and determine that the update is 2" Suggest update", 3 "forced update" or 4 "silent update", and then send the information to the main program of the mobile phone;

最后判断客户端版本,与服务器存储的该模块所需要的客户端版本是否一致,如果不一致则下发标识5到手机的主程序,提示用户需要更新客户端才能打开该资源功能模块。Finally, judge whether the client version is consistent with the client version required by the module stored in the server, and if not, then send the identification 5 to the main program of the mobile phone, prompting the user to update the client to open the resource function module.

而且,主程序根据标识确定后续处理逻辑的实现方式如下,Moreover, the main program determines the implementation of the follow-up processing logic according to the identification as follows,

如果返回是-1,则调用下载过程进行下载;If the return is -1, call the download process to download;

如果返回是1,则是调用动态验证更新过程打开;If the return is 1, the dynamic verification update process is called to open;

如果返回是2,则是给予用户提示,由用户选择打开还是下载;If the return is 2, it will give the user a prompt, and the user can choose to open or download;

如果返回3,则是让用户等待,先调用下载过程进行下载,安装后再调用动态验证更新过程打开;If it returns 3, the user is asked to wait, first call the download process to download, and then call the dynamic verification update process to open after installation;

如果是返回4,则直接调用动态验证更新过程打开,并且在后台调用下载过程进行下载,用户感知不到下载;If it returns 4, directly call the dynamic verification update process to open, and call the download process in the background to download, and the user cannot perceive the download;

如果是返回5,则提示用户需要跟新客户端app;If 5 is returned, the user is prompted to update the client app;

如果是返回-2或者请求失败,则终止启动资源功能模块,并给用户提示。If -2 is returned or the request fails, the resource function module is terminated and a prompt is given to the user.

本发明将资源文件及新的功能打包成一个资源功能模块文件放置在服务器,当用户通过客户端请求服务器时,服务器会将这个模块文件的信息返回给客户端。用户如果需要打开这个新的功能时,客户端会调用下载来下载这个模块文件,然后在本地验证安全性并打开。本发明所提供安卓app动态加载功能模块的用途包括不限于直播间动态加载,具有重要的市场价值。The present invention packs resource files and new functions into a resource function module file and places it on the server. When the user requests the server through the client, the server will return the information of the module file to the client. If the user needs to open this new function, the client will call the download to download the module file, and then verify the security locally and open it. The application of the Android app dynamic loading function module provided by the present invention includes not limited to the dynamic loading in the live broadcast room, and has important market value.

附图说明Description of drawings

图1为本发明实施例的与服务器交互的流程图。FIG. 1 is a flowchart of interaction with a server according to an embodiment of the present invention.

图2为本发明实施例的模块安全验证及动态更新流程图。Fig. 2 is a flowchart of module security verification and dynamic update according to the embodiment of the present invention.

图3为本发明实施例的流程图。Fig. 3 is a flowchart of an embodiment of the present invention.

具体实施方式detailed description

下面通过实施例并结合附图,对本发明的技术方案作进一步具体的说明。The technical solutions of the present invention will be further specifically described below through the embodiments and in conjunction with the accompanying drawings.

为了能更好的说明本发明的技术方案,实施例以直播间动态加载为例来说明,但本发明技术方案包括而不限于直播间动态加载,聊天、社区、扩展功能、广告、主题、游戏、工具等资源功能模块同样能够适用。In order to better illustrate the technical solution of the present invention, the embodiment takes the dynamic loading of the live room as an example to illustrate, but the technical solution of the present invention includes but not limited to the dynamic loading of the live room, chat, community, extended functions, advertisements, themes, games , tools and other resource function modules are also applicable.

1.可以独立维护的功能模块1. Functional modules that can be maintained independently

实施例的模块生成过程,包括在服务器端生成单独的资源功能模块。在开发中,将直播间单独做成模块,当用户需要使用直播间时,客户端会向服务器请求下载该直播间模块。下载成功后,客户端将对该模块进行安全验证。验证通过后,将会向模块中传入房间号,及用户信息来打开该直播间。其他的请求服务,弹幕服务等都是由该模块来完成的。这样直播间的整体功能及资源就可以单独维护,可以大大缩小主App的安装包的大小。The module generation process of the embodiment includes generating a separate resource function module at the server side. During development, the live broadcast room is made into a separate module. When the user needs to use the live broadcast room, the client will request the server to download the live broadcast room module. After the download is successful, the client will perform security verification on the module. After the verification is passed, the room number and user information will be passed to the module to open the live room. Other request services, barrage services, etc. are all completed by this module. In this way, the overall functions and resources of the live broadcast room can be maintained separately, which can greatly reduce the size of the installation package of the main app.

这样的好处除了可以单独维护和缩小主App的安装包大小外,还有一点就是独立模块的运行对主App是没有任何影响的。如果模块因为某些原因出问题了,不会让主App崩溃。并且这个时候会启动模块的自动修复功能,让模块继续正确运行。The advantage of this is that apart from maintaining and reducing the size of the main App's installation package separately, another point is that the operation of independent modules has no impact on the main App. If the module fails for some reason, it will not crash the main app. And at this time, the automatic repair function of the module will be activated to allow the module to continue to run correctly.

2.安卓app动态加载资源功能模块安全验证及动态更新2. Android app dynamically loads resource function module security verification and dynamic update

在App的不断发展中,总会迎来App中功能的更新,这样的更新在给用户带来新功能体验的同时也会带来不太好的体验(用户需要不断的升级)。如果有一种技术能让用户的App功能自动升级,这就解决了该用户体验不太好的问题。为了解决这个问题,动态更新应运而生。In the continuous development of the App, there will always be an update of the functions in the App. Such an update will not only bring new functional experience to users, but also bring a bad experience (users need to constantly upgrade). If there is a technology that can automatically upgrade the user's App functions, this will solve the problem of poor user experience. In order to solve this problem, dynamic update came into being.

在用户打开模块的时候,程序将模块的包名及其他信息传入进行判断。首先通过该包名判断程序中是否已经加载了该模块。如果加载了该模块,则联网判断该模块的安全性及更新状况。如果没有加载该模块,则去模块目录中扫描是否有文件的包名与之符合,如果有符合的话,取版本最高的。如果没有符合的,则去assert目录中寻找是否有符合的,有就加载,如果还是没有,则带上该包名去请求api,返回该模块最新的下载信息,去下载,下载完毕后则重复进行加载的过程。When the user opens the module, the program passes in the package name and other information of the module for judgment. First, judge whether the module has been loaded in the program through the package name. If the module is loaded, the security and update status of the module are judged online. If the module is not loaded, go to the module directory to scan whether the package name of the file matches it. If there is a match, take the highest version. If there is no match, go to the assert directory to find if there is a match, and load it if there is one. If there is still no match, then bring the package name to request the api, return the latest download information of the module, and download it. After the download is complete, repeat The process of loading.

实施例的动态验证更新过程,用于在客户端检验资源功能模块的安全性和更新资源功能模块,具体流程参见图2所示:The dynamic verification update process of the embodiment is used to check the security of the resource function module and update the resource function module on the client side. The specific process is shown in FIG. 2:

步骤1,当用户打开模块,首先用包名判断是否加载,如果已加载,进入步骤9,否则进入步骤2;Step 1, when the user opens the module, first use the package name to determine whether it is loaded, if it is loaded, go to step 9, otherwise go to step 2;

步骤2,扫描plugin目录下该包名的文件是否存在,存在则进入步骤3,否则进入步骤5;Step 2, scan whether the file with the package name in the plugin directory exists, if it exists, go to step 3, otherwise go to step 5;

步骤3,判断有几个文件,大于1则取最新的版本进入步骤4,否则直接进入步骤4;Step 3, determine how many files there are, if it is greater than 1, take the latest version and go to step 4, otherwise go directly to step 4;

步骤4,进行加载,加载成功则进入步骤9,加载失败则进入步骤5;Step 4, carry out loading, if the loading is successful, go to step 9, if the loading fails, go to step 5;

步骤5,在assert目录下寻找是否存在该文件,存在则进入步骤6,不存在则进入步骤7;Step 5, find whether the file exists in the assert directory, if it exists, go to step 6, if it does not exist, go to step 7;

步骤6,从assert目录复制到plugin目录,然后进入步骤4;Step 6, copy from the assert directory to the plugin directory, and then go to step 4;

步骤7,请求api,加上该包名,进入步骤8;Step 7, request api, add the package name, and go to step 8;

步骤8,下载该插件,进入步骤4;Step 8, download the plug-in, go to step 4;

步骤9,联网判断安全性及更新;Step 9, network to determine security and update;

步骤10,判断返回数据,若插件不安全或有更新返回步骤8,若插件安全且没有更新,打开插件。Step 10, judge the returned data, if the plug-in is not safe or there is an update, return to step 8, if the plug-in is safe and not updated, open the plug-in.

3.加载模块3. Load the module

直播间模块在第一次使用或更新的时候是需要下载的,为了统一用户下载该模块的版本及正确性,需要约定下载逻辑。The live room module needs to be downloaded when it is used or updated for the first time. In order to unify the version and correctness of the module downloaded by users, it is necessary to agree on the download logic.

在需要下载之前,开发者需要传入url下载地址,文件hash,md5(由包名,versioncode,渠道号生成)这三个参数,并在plugin目录中新建名称为temp的文件夹(如果存在则可省略不新建)。接着开始执行下载,将下载的文件名命名为md5,下载完毕后,检测该文件的hash是否与传入的hash一致,如果一致的话则将文件移动到模块目录中,并检测目录中是否有大于n个该包名的文件,如果有,则删除最老的版本。执行完操作后通过下载回调返回。Before the download is required, the developer needs to pass in the three parameters of url download address, file hash, md5 (generated from package name, versioncode, channel number), and create a new folder named temp in the plugin directory (if it exists, then Can be omitted without creating a new one). Then start to download, and name the downloaded file as md5. After the download is complete, check whether the hash of the file is consistent with the incoming hash. n files with the package name, if there are, delete the oldest version. Returns via the download callback after performing the operation.

实施例的加载过程,用于在客户端下载及加载资源功能模块,具体逻辑如图3所示:The loading process of the embodiment is used to download and load resource function modules on the client side, and the specific logic is as shown in Figure 3:

步骤1,传入包名、versioncode和渠道号生成md5字符串,并传入url下载地址,文件hash;Step 1, pass in the package name, versioncode and channel number to generate an md5 string, and pass in the url download address and file hash;

步骤2,在plugin目录中新建名称为temp的文件夹,并根据url下载地址,下载该模块,下载完成则进入步骤3,下载失败则任务终止;Step 2, create a new folder named temp in the plugin directory, and download the module according to the url download address. After the download is completed, enter step 3. If the download fails, the task is terminated;

步骤3,校验hash,并移动到plugin文件夹中;如果校验成功则进入步骤4,否则任务终止;Step 3, verify the hash and move it to the plugin folder; if the verification is successful, go to step 4, otherwise the task is terminated;

步骤4,扫描plugin目录下该包名的文件是否大于n(n为本地缓存的该模块数量,具体实施时可以根据不同的需求来进行调整,由本领域技术人员预先设定),是则进入步骤5,否则小于等于n,进入步骤6;Step 4, scan whether the file of the package name in the plugin directory is greater than n (n is the number of modules in the local cache, which can be adjusted according to different needs during specific implementation, and is preset by those skilled in the art), and if so, enter the step 5, otherwise less than or equal to n, go to step 6;

步骤5,根据扫描文件夹中所有该模块的版本号,并进行排序,删除较老版本的模块文件,直到剩下n个模块的文件,为了防止用户升级后的版本出现致命错误,可以回退做备份,进入步骤6;Step 5, according to the version numbers of all the modules in the scanned folder, and sort them, delete the module files of older versions until there are n module files left. In order to prevent fatal errors in the upgraded version of the user, you can roll back Make a backup, go to step 6;

步骤6,本次下载完成,开始进行加载并提示用户,实现下载回调。Step 6, the download is complete, start loading and prompt the user to realize the download callback.

任务终止是,可以用户提示下载失败,请稍后再试。When the task is terminated, the user may be prompted that the download failed, please try again later.

4.打开模块前的交互4. Interaction before opening the module

在手机上的安卓app作为主程序来打开直播间模块,这个主程序和服务器进行交互。为了解决恶意用户篡改和模块升级这个模块,本发明进一步提出,在打开模块之前加上图1的判断,这部分是需要跟服务器交互的,将模块的各种信息上传到服务器进行验证,验证通过后返回信息给手机进行相应的操作,如果是返回-2,或者请求失败则终止启动模块,并给用户提示。The Android app on the mobile phone is used as the main program to open the live room module, and the main program interacts with the server. In order to solve malicious user tampering and module upgrade, this invention further proposes to add the judgment in Figure 1 before opening the module. This part needs to interact with the server, upload various information of the module to the server for verification, and pass the verification Then return information to the mobile phone to perform corresponding operations. If it returns -2, or the request fails, the startup module will be terminated and a prompt will be given to the user.

参见图2,网络验证开始,手机主程序上传模块网络信息,包括包名、签名、校验码、版本、渠道、文件hash、客户端版本,然后服务器判断并返回标识,手机客户端主程序根据标识确定后续处理逻辑:See Figure 2, the network verification starts, the main program of the mobile phone uploads the network information of the module, including the package name, signature, verification code, version, channel, file hash, and client version, and then the server judges and returns the identification, and the main program of the mobile phone client according to The identification determines the subsequent processing logic:

如果返回是-1,则调用图3所示流程下载。If the return is -1, call the process shown in Figure 3 to download.

如果返回是1,则是调用图2所示流程打开。If the return is 1, the process shown in Figure 2 is called to open.

如果返回是2,则是给予用户提示,由用户选择打开还是下载。If the return is 2, it will give the user a prompt, and the user can choose to open or download.

如果返回3,则是让用户等待,先调用图3所示流程下载,安装后再调用图2所示流程打开。If 3 is returned, the user is asked to wait, first call the process shown in Figure 3 to download, and then call the process shown in Figure 2 to open after installation.

如果是返回4,则直接调用图2所示流程打开,并且在后台调用图3所示流程下载,用户感知不到下载。If it returns 4, directly call the process shown in Figure 2 to open, and call the process shown in Figure 3 to download in the background, and the user cannot perceive the download.

如果是返回5,则提示用户需要跟新客户端app。If 5 is returned, the user is prompted to update the client app.

如果是返回-2或者请求失败,则终止启动模块,并给用户提示。If it returns -2 or the request fails, the startup module will be terminated and a prompt will be given to the user.

服务器判断并返回标识的具体方式可以为:The specific way for the server to judge and return the identifier can be as follows:

服务器根据手机传过来的模块信息与服务器本地最新的模块信息进行对比,首先,如果md5与服务的md5匹配,则直接返回标识1,如果不匹配,则开始进行其他的数据匹配:The server compares the module information transmitted by the mobile phone with the latest local module information of the server. First, if the md5 matches the md5 of the service, it will directly return the identifier 1. If it does not match, it will start other data matching:

如果包名不对,则返回标识-2,If the package name is incorrect, return ID -2,

如果签名或校验码不对,则返回标识-1,并将正确的模块地址一并下发给手机的主程序;If the signature or check code is incorrect, return the flag -1, and send the correct module address to the main program of the mobile phone;

如果版本不对,则需要更新,获取服务器后台设定的参数,来确定该更新是2“建议更新”、3“强制更新”或4“静默更新”,然后再下发信息到手机的主程序;If the version is wrong, it needs to be updated. Obtain the parameters set in the background of the server to determine whether the update is 2 "recommended update", 3 "forced update" or 4 "silent update", and then send the information to the main program of the mobile phone;

最后会判断客户端版本,与服务器存储的该模块所需要的客户端版本是否一致,如果不一致则下发标识5到手机的主程序,提示用户需要更新客户端才能打开该模块。Finally, it will judge whether the client version is consistent with the client version required by the module stored in the server. If not, it will send the identification 5 to the main program of the mobile phone, prompting the user to update the client to open the module.

具体实施时,本发明所提供方法可基于软件技术实现自动运行流程,也可采用模块化方式实现相应系统。During specific implementation, the method provided by the present invention can realize the automatic operation process based on software technology, and can also realize the corresponding system in a modular manner.

本发明还相应提供一种安卓app动态加载资源功能模块的系统,包括在服务器端设置的模块生成单元,在客户端设置的动态验证更新单元和加载单元,The present invention also correspondingly provides a system for dynamically loading resource function modules of an Android app, including a module generation unit set on the server side, a dynamic verification update unit and a loading unit set on the client side,

所述直播间模块生成单元,用于在服务器端生成单独的资源功能模块;The live room module generation unit is used to generate a separate resource function module on the server side;

所述动态验证更新单元,用于在客户端检验资源功能模块的安全性和更新资源功能模块,该单元包括以下子单元,The dynamic verification and updating unit is used to verify the security of the resource function module and update the resource function module on the client side, and the unit includes the following subunits,

子单元A1,用于当用户打开资源功能模块,首先用包名判断是否加载,如果已加载,命令子单元A9工作,否则命令子单元A2工作;Subunit A1 is used to determine whether to load the resource function module by the package name first when the user opens it. If it has been loaded, order subunit A9 to work, otherwise order subunit A2 to work;

子单元A2,用于扫描plugin目录下该包名的文件是否存在,存在则命令子单元A3工作,否则命令子单元A5工作;Subunit A2 is used to scan whether the file with the package name in the plugin directory exists, and if it exists, order subunit A3 to work, otherwise order subunit A5 to work;

子单元A3,用于判断有几个文件,大于1则取最新的版本命令子单元A4工作,否则直接命令子单元A4工作;Subunit A3 is used to judge how many files there are. If it is greater than 1, the latest version will be used to order subunit A4 to work, otherwise directly order subunit A4 to work;

子单元A4,用于进行加载,加载成功则命令子单元A9工作,加载失败则命令子单元A5工作;Subunit A4 is used for loading. If the loading is successful, the subunit A9 is ordered to work, and if the loading fails, the subunit A5 is ordered to work;

子单元A5,用于在assert目录下寻找是否存在该文件,存在则命令子单元A6工作,不存在则命令子单元A7工作;Subunit A5 is used to find whether the file exists in the assert directory, if it exists, order subunit A6 to work, and if it does not exist, order subunit A7 to work;

子单元A6,用于从assert目录复制到plugin目录,然后命令子单元A4工作;Subunit A6 is used to copy from the assert directory to the plugin directory, and then order subunit A4 to work;

子单元A7,用于请求api,加上包名,命令子单元A8工作;Subunit A7 is used to request api, add the package name, and order subunit A8 to work;

子单元A8,用于下载该插件,命令子单元A4工作;Subunit A8 is used to download the plug-in and order subunit A4 to work;

子单元A9,用于联网判断安全性及更新;Sub-unit A9 is used to judge security and update through networking;

子单元A10,用于判断返回数据,若插件不安全或有更新返回子单元A8,若插件安全且没有更新,打开插件;Subunit A10 is used to judge the returned data. If the plug-in is not safe or updated, return to sub-unit A8. If the plug-in is safe and not updated, open the plug-in;

所述加载单元,用于在客户端下载及加载资源功能模块,该单元包括以下子单元,The loading unit is used to download and load resource function modules on the client side, and the unit includes the following subunits,

子单元B1,用于传入包名、versioncode和渠道号生成md5字符串,并传入url下载地址,文件hash;Subunit B1 is used to pass in package name, versioncode and channel number to generate md5 string, and pass in url download address and file hash;

子单元B2,用于在plugin目录中新建名称为temp的文件夹,并根据url下载地址下载该资源功能模块,下载完成则命令子单元B3工作,下载失败则任务终止;Subunit B2 is used to create a new folder named temp in the plugin directory, and download the resource function module according to the url download address. After the download is completed, the subunit B3 is ordered to work. If the download fails, the task is terminated;

子单元B3,用于校验hash,并移动到plugin文件夹中;如果校验成功则命令子单元B4工作,否则任务终止;Subunit B3 is used to verify the hash and move it to the plugin folder; if the verification is successful, order subunit B4 to work, otherwise the task is terminated;

子单元B4,用于扫描plugin目录下该包名的文件是否大于预设的本地缓存模块数量n,是则命令子单元B5工作,否则命令子单元B6工作;Subunit B4 is used to scan whether the file of the package name in the plugin directory is greater than the preset number n of local cache modules, and if so, order subunit B5 to work, otherwise order subunit B6 to work;

子单元B5,用于根据扫描文件夹中所有该资源功能模块的版本号,并进行排序,删除较老版本的文件,直到剩下n个资源功能模块的文件,命令子单元B6工作;The subunit B5 is used to scan and sort the version numbers of all the resource function modules in the folder, delete files of older versions, and order the subunit B6 to work until the files of n resource function modules remain;

子单元B6,用于进行加载并提示用户,实现下载回调。The subunit B6 is used for loading and prompting the user to implement download callback.

各模块具体实现可参见相应步骤,本发明不予赘述。For the specific implementation of each module, reference may be made to the corresponding steps, which will not be described in detail in the present invention.

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。The specific embodiments described herein are merely illustrative of the spirit of the invention. Those skilled in the art to which the present invention belongs can make various modifications or supplements to the described specific embodiments or adopt similar methods to replace them, but they will not deviate from the spirit of the present invention or go beyond the definition of the appended claims range.

Claims (10)

1. the method for an Android app dynamic load resource function module, it is characterised in that: include that module generates process, dynamically Checking renewal process and loading procedure,
Described module generates process, is included in server end and generates single resource function module;
Described dynamic authentication renewal process, for client checkout resource functional module safety and update resource function mould Block,
Described loading procedure, in client downloads and loading resource function module.
The method of Android app dynamic load resource function module the most according to claim 1, it is characterised in that: described dynamically Checking renewal process comprises the following steps,
Step A1, when user opens resource function module, first judging whether to load by bag name, if loaded, entering step A9, otherwise enters step A2;
Step A2, under scanning plugin catalogue, whether the file of this bag name exists, and there is then entrance step A3, otherwise enters step A5;
Step A3, it is judged that have several file, takes up-to-date version and enters step A4, be otherwise directly entered step A4 more than 1;
Step A4, loads, and loads the most then entrance step A9, loads the most then entrance step A5;
Step A5, looks for whether to there is this document under assert catalogue, there is then entrance step A6, does not exists, enter step A7;
Step A6, copies to plugin catalogue from assert catalogue, subsequently into step A4;
Step A7, asks api, adds bag name, enters step A8;
Step A8, lower download the plugin, enter step A4;
Step A9, networking judges safety and renewal;
Step A10, it is judged that return data, if plug-in unit is dangerous or has renewal to return step A8, if plug-in security and not renewal, Open plug-in unit;
Described loading procedure comprises the following steps,
Step B1, incoming bag name, versioncode and channel number generate md5 character string, and incoming url download address, file hash;
Step B2, in plugin catalogue, new name is the file of temp, and downloads this resource merit according to url download address Energy module, has downloaded, has entered step B3, failed download then task termination;
Step B3, verifies hash, and moves in plugin file;If verifying successfully, enter step B4, otherwise task Terminate;
Step B4, under scanning plugin catalogue, whether the file of this bag name is more than the local cache module number n preset, and is to enter Enter step B5, otherwise enter step B6;
Step B5, the version number of these resource function modules all in pressing from both sides according to scanning file, and be ranked up, delete older version File, until the file of remaining n resource function module, entrance step B6;
Step B6, carries out loading and pointing out user, it is achieved download readjustment.
The method of Android app dynamic load resource function module the most according to claim 2, it is characterised in that: when Android app When opening resource function module as mastery routine, mastery routine and server interact, and mastery routine uploads module information, service Device judges and returns mark according to module information, and mastery routine determines subsequent processing logic according to mark.
The method of Android app dynamic load resource function module the most according to claim 3, it is characterised in that: server is sentenced Break and to return the mode of mark as follows,
The module information that server is uploaded according to the mastery routine module information up-to-date with server local contrasts, first, as Really md5 mates with the md5 of service, the most directly returns mark 1, if it does not match, the Data Matching proceeding by other is as follows, If bag name is the most right, then return mark-2,
If signature or check code are the most right, then return mark-1, and correct module's address is handed down to mastery routine in the lump;
If version is the most right, then needs to update, obtain the parameter that server background sets, determine this renewal be 2 " suggestion updates ", 3 " forcing to update " or 4 " renewals of mourning in silence ", descend the mastery routine of photos and sending messages machine in one's hands the most again;
Finally judge client release, the most consistent, if not with the client release required for this module of server storage Consistent then issue mark 5 to the mastery routines of mobile phone, prompting user needs to update client just can open this resource function module.
The method of Android app dynamic load resource function module the most according to claim 4, it is characterised in that: mastery routine root Determine that the implementation of subsequent processing logic is as follows according to mark,
If returning is-1, then calls downloading process and be downloaded;
If returning is 1, then it is to call dynamic authentication renewal process to open;
If returning is 2, then it is to give user prompting, user selects to open or download;
If returning 3, then it is to allow user wait, first calls downloading process and be downloaded, recall dynamic authentication after installation and update Process is opened;
If returning 4, then directly invoke dynamic authentication renewal process and open, and under Background scheduling downloading process is carried out Carrying, user's perception is less than download;
If returning 5, then prompting user needs with new client app;
If returning-2 or asking unsuccessfully, then terminate starting resource function module, and point out to user.
6. the system of an Android app dynamic load resource function module, it is characterised in that: it is included in the mould that server end is arranged Block signal generating unit, at dynamic authentication updating block and the loading unit of client setting,
Described direct broadcasting room module signal generating unit, for generating single resource function module at server end;
Described dynamic authentication updating block, for client checkout resource functional module safety and update resource function mould Block,
Described loading unit, in client downloads and loading resource function module.
The system of Android app dynamic load resource function module the most according to claim 6, it is characterised in that: described dynamically Checking updating block includes following subelement,
Subelement A1, for opening resource function module as user, first judges whether to load by bag name, if loaded, and life Subelement A9 is made to work, otherwise order subelement A2 work;
, for scanning whether the file of this bag name under plugin catalogue exists, there is then order subelement A3 work in subelement A2, Otherwise order subelement A5 work;
Subelement A3, has several file for judgement, takes up-to-date version command subelement A4 work more than 1, the most directly Order subelement A4 works;
Subelement A4, is used for loading, and loads the most then order subelement A9 work, loads the most then order subelement A5 work Make;
, for looking for whether to there is this document under assert catalogue, there is then order subelement A6 work, do not deposit in subelement A5 Work at then order subelement A7;
Subelement A6, for copying to plugin catalogue, then order subelement A4 work from assert catalogue;
Subelement A7, is used for asking api, adds bag name, and order subelement A8 works;
Subelement A8, for lower download the plugin, order subelement A4 works;
Subelement A9, being used for networking judges safety and renewal;
Subelement A10, is used for judging returning data, if plug-in unit is dangerous or has renewal to return subelement A8, if plug-in security and Do not update, open plug-in unit;
Described loading unit includes following subelement,
Subelement B1, generates md5 character string, and incoming url download address for incoming bag name, versioncode and channel number, File hash;
Subelement B2, is the file of temp for new name in plugin catalogue, and should according to the download of url download address Resource function module, has downloaded then order subelement B3 work, failed download then task termination;
Subelement B3, is used for verifying hash, and moves in plugin file;If verifying successfully, order subelement B4 work Make, otherwise task termination;
Subelement B4, for scanning whether the file of this bag name under plugin catalogue is more than the local cache module number n preset, It is then order subelement B5 work, otherwise order subelement B6 work;
Subelement B5, the version number of these resource function modules all in pressing from both sides according to scanning file, and be ranked up, delete relatively The file of early version, until the file of remaining n resource function module, order subelement B6 works;
Subelement B6, is used for carrying out loading and pointing out user, it is achieved download readjustment.
The system of Android app dynamic load resource function module the most according to claim 7, it is characterised in that: when Android app When opening resource function module as mastery routine, mastery routine and server interact, and mastery routine uploads module information, service Device judges and returns mark according to module information, and mastery routine determines subsequent processing logic according to mark.
The system of Android app dynamic load resource function module the most according to claim 8, it is characterised in that: server is sentenced Break and to return the mode of mark as follows,
The module information that server is uploaded according to the mastery routine module information up-to-date with server local contrasts, first, as Really md5 mates with the md5 of service, the most directly returns mark 1, if it does not match, the Data Matching proceeding by other is as follows, If bag name is the most right, then return mark-2,
If signature or check code are the most right, then return mark-1, and correct module's address is handed down to mastery routine in the lump;
If version is the most right, then needs to update, obtain the parameter that server background sets, determine this renewal be 2 " suggestion updates ", 3 " forcing to update " or 4 " renewals of mourning in silence ", descend the mastery routine of photos and sending messages machine in one's hands the most again;
Finally judge client release, the most consistent, if not with the client release required for this module of server storage Consistent then issue mark 5 to the mastery routines of mobile phone, prompting user needs to update client just can open this resource function module.
The system of Android app dynamic load resource function module the most according to claim 9, it is characterised in that: mastery routine root Determine that the implementation of subsequent processing logic is as follows according to mark,
If returning is-1, then calls downloading process and be downloaded;
If returning is 1, then it is to call dynamic authentication renewal process to open;
If returning is 2, then it is to give user prompting, user selects to open or download;
If returning 3, then it is to allow user wait, first calls downloading process and be downloaded, recall dynamic authentication after installation and update Process is opened;
If returning 4, then directly invoke dynamic authentication renewal process and open, and under Background scheduling downloading process is carried out Carrying, user's perception is less than download;
If returning 5, then prompting user needs with new client app;
If returning-2 or asking unsuccessfully, then terminate starting resource function module, and point out to user.
CN201610506610.8A 2016-06-30 2016-06-30 The method and system of Android app dynamically load resource function module Active CN106131612B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610506610.8A CN106131612B (en) 2016-06-30 2016-06-30 The method and system of Android app dynamically load resource function module

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610506610.8A CN106131612B (en) 2016-06-30 2016-06-30 The method and system of Android app dynamically load resource function module

Publications (2)

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

Family

ID=57467642

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610506610.8A Active CN106131612B (en) 2016-06-30 2016-06-30 The method and system of Android app dynamically load resource function module

Country Status (1)

Country Link
CN (1) CN106131612B (en)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107624211A (en) * 2017-06-09 2018-01-23 畅充科技(上海)有限公司 Charging method and device
CN108664265A (en) * 2018-05-15 2018-10-16 玩咖欢聚文化传媒(北京)有限公司 The interpolation method and system of Android application program
CN109213534A (en) * 2017-06-30 2019-01-15 武汉斗鱼网络科技有限公司 A kind of method and device of extension live streaming software function
CN109582684A (en) * 2018-11-30 2019-04-05 深圳市盟天科技有限公司 A kind of update method of local cache data, device, server and storage medium
CN110069729A (en) * 2017-11-15 2019-07-30 百度在线网络技术(北京)有限公司 A kind of offline cache method and system of application
CN110069505A (en) * 2017-09-21 2019-07-30 张锐 Off-line data processing method and off-line data updating device
CN110162727A (en) * 2019-05-29 2019-08-23 上海有谱网络科技有限公司 The method of android system HTML5 resource local cache
CN110417912A (en) * 2019-08-08 2019-11-05 成都九洲电子信息系统股份有限公司 A kind of method that file download is adjusted back after the completion
CN110784540A (en) * 2019-10-31 2020-02-11 四川巧夺天工信息安全智能设备有限公司 Method for reducing and accelerating flow of digital media distribution platform based on multi-terminal decision
CN111416842A (en) * 2020-03-06 2020-07-14 科大讯飞股份有限公司 Automatic resource cluster distribution and hot update system and method
CN113850941A (en) * 2021-09-08 2021-12-28 深圳柏成科技有限公司 Unattended access control system remote upgrading method
CN114528038A (en) * 2022-01-06 2022-05-24 厦门游动网络科技有限公司 Method, system, electronic device and storage medium for loading module in APP in real time

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 (en) * 2015-03-27 2015-06-10 北京奇虎科技有限公司 Plug-in upgrading method and plug-in upgrading device
CN104717301A (en) * 2015-03-27 2015-06-17 北京奇虎科技有限公司 Plug-in download method and device
CN104714828A (en) * 2015-03-31 2015-06-17 北京奇虎科技有限公司 Methods and devices for installing and operating application
CN105373396A (en) * 2015-08-14 2016-03-02 腾讯科技(深圳)有限公司 Method and device for updating plug-in in plug-in platform
CN105607935A (en) * 2015-12-24 2016-05-25 北京奇虎科技有限公司 Application updating method and terminal and server

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 (en) * 2015-03-27 2015-06-10 北京奇虎科技有限公司 Plug-in upgrading method and plug-in upgrading device
CN104717301A (en) * 2015-03-27 2015-06-17 北京奇虎科技有限公司 Plug-in download method and device
CN104714828A (en) * 2015-03-31 2015-06-17 北京奇虎科技有限公司 Methods and devices for installing and operating application
CN105373396A (en) * 2015-08-14 2016-03-02 腾讯科技(深圳)有限公司 Method and device for updating plug-in in plug-in platform
CN105607935A (en) * 2015-12-24 2016-05-25 北京奇虎科技有限公司 Application updating method and terminal and server

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107624211A (en) * 2017-06-09 2018-01-23 畅充科技(上海)有限公司 Charging method and device
CN109213534A (en) * 2017-06-30 2019-01-15 武汉斗鱼网络科技有限公司 A kind of method and device of extension live streaming software function
CN110069505A (en) * 2017-09-21 2019-07-30 张锐 Off-line data processing method and off-line data updating device
CN110069729B (en) * 2017-11-15 2022-07-01 上海优扬新媒信息技术有限公司 Offline caching method and system for application
CN110069729A (en) * 2017-11-15 2019-07-30 百度在线网络技术(北京)有限公司 A kind of offline cache method and system of application
CN108664265A (en) * 2018-05-15 2018-10-16 玩咖欢聚文化传媒(北京)有限公司 The interpolation method and system of Android application program
CN109582684A (en) * 2018-11-30 2019-04-05 深圳市盟天科技有限公司 A kind of update method of local cache data, device, server and storage medium
CN110162727A (en) * 2019-05-29 2019-08-23 上海有谱网络科技有限公司 The method of android system HTML5 resource local cache
CN110417912B (en) * 2019-08-08 2022-01-28 成都九洲电子信息系统股份有限公司 Method for calling back after file downloading is completed
CN110417912A (en) * 2019-08-08 2019-11-05 成都九洲电子信息系统股份有限公司 A kind of method that file download is adjusted back after the completion
CN110784540A (en) * 2019-10-31 2020-02-11 四川巧夺天工信息安全智能设备有限公司 Method for reducing and accelerating flow of digital media distribution platform based on multi-terminal decision
CN110784540B (en) * 2019-10-31 2022-03-04 四川巧夺天工信息安全智能设备有限公司 Method for reducing and accelerating flow of digital media distribution platform based on multi-terminal decision
CN111416842A (en) * 2020-03-06 2020-07-14 科大讯飞股份有限公司 Automatic resource cluster distribution and hot update system and method
CN113850941A (en) * 2021-09-08 2021-12-28 深圳柏成科技有限公司 Unattended access control system remote upgrading method
CN114528038A (en) * 2022-01-06 2022-05-24 厦门游动网络科技有限公司 Method, system, electronic device and storage medium for loading module in APP in real time

Also Published As

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

Similar Documents

Publication Publication Date Title
CN106131612A (en) The method and system of Android app dynamic load resource function module
US7480907B1 (en) Mobile services network for update of firmware/software in mobile handsets
CN100456805C (en) A TFTP-based IPTV set-top box software network upgrade method
RU2367005C2 (en) System and method for updating files through correction with compressed updates
TWI359597B (en) Method,computer system ,and computer-readable medi
JP2000059440A (en) Verification of data transfer based on specific id code
KR20050074993A (en) Upgrading of electronic files including automatic recovery from failure and errors occurring during the upgrade
CN110879713B (en) Android terminal strong encryption plug-in thermal update management method
WO2022142153A1 (en) Electricity meter upgrading method and system, smart meter, and storage medium
EP1991941A1 (en) Apparatus and methods for managing time sensitive application privileges on a wireless device
US7558963B2 (en) Communication device and program
CN104391729B (en) Programme upgrade method and device based on Root authority
US11003435B2 (en) Manifest trialing techniques
CN115515012B (en) Key burning method, device, electronic equipment board and storage medium
US8549166B2 (en) Execution of unverified programs in a wireless, device operating environment
CN107623735A (en) OpenSSL-based accurate update and upgrade system and method in a credit information machine system
CN108958785B (en) Application program upgrading method and device
CN105786636A (en) A system repair method and device
CN108259556A (en) Method for parameter configuration and terminal
CN111427607B (en) Configuration file repairing method, device and computer readable storage medium
CN111399867A (en) Software upgrading method, device, equipment and computer readable storage medium
US8646070B1 (en) Verifying authenticity in data storage management systems
CN119597538A (en) System updating method, device, electronic device and storage medium
CN113905263B (en) Set top box control method, equipment and storage medium
CN104426894B (en) A kind of register method of terminal applies, business platform equipment and terminal

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
TR01 Transfer of patent right

Effective date of registration: 20241209

Address after: Building A, 12th Floor, 1219-6, China Merchants Yazhou Bay Free Trade Center, Yazhou District, Sanya City, Hainan Province, China 572024

Patentee after: Sanya Leifeng Information Technology Co.,Ltd.

Country or region after: China

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

Patentee before: Urumqi Bangbangjun Technology Co.,Ltd.

Country or region before: China

TR01 Transfer of patent right