CN102830992B - 插件加载方法及系统 - Google Patents

插件加载方法及系统 Download PDF

Info

Publication number
CN102830992B
CN102830992B CN201210271506.7A CN201210271506A CN102830992B CN 102830992 B CN102830992 B CN 102830992B CN 201210271506 A CN201210271506 A CN 201210271506A CN 102830992 B CN102830992 B CN 102830992B
Authority
CN
China
Prior art keywords
plug
unit
operating system
information
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.)
Active
Application number
CN201210271506.7A
Other languages
English (en)
Other versions
CN102830992A (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.)
Beijing Qizhi Business Consulting Co ltd
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201210271506.7A priority Critical patent/CN102830992B/zh
Publication of CN102830992A publication Critical patent/CN102830992A/zh
Application granted granted Critical
Publication of CN102830992B publication Critical patent/CN102830992B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本申请提供了一种插件加载方法及系统,其中所述方法包括:收集操作系统平台信息,所述操作系统平台信息包括操作系统版本、安装所述操作系统的终端厂商信息、终端型号;将所述操作系统平台信息传给服务器;服务器依据所述操作系统版本、安装所述操作系统的终端厂商信息、终端型号确定当前匹配的操作系统,并提取所述操作系统适配的插件;服务器返回所述插件下载地址;根据所述插件下载地址下载所述插件;加载所述下载的插件。本申请可以使加载的插件与加载插件的操作系统相兼容,保证加载的插件能够正常运行,并且适用于各种开源性的操作系统,减少了适配开发的工作量。

Description

插件加载方法及系统
技术领域
本申请涉及计算机数据处理技术领域,特别是涉及一种插件加载方法及系统。
背景技术
在软件开发中,为了方便对软件进行功能扩展,往往采用插件方式进行开发,将软件所能实现的一个一个功能封装在插件中,最后将各个插件集成在软件主程序包中,通过与主程序代码文件一同发布实现插件的加载。
由于现有的很多操作系统,例如Android系统,都具有开源性,很多基于这些开源性操作系统的终端厂商会对原生系统进行适应性的修改以实现终端的多样性,满足市场需求。这就可能出现同时存在基于不同版本修改的多种操作系统,因为插件是需要基于操作系统开发,所以,当某个插件在基于某个操作系统的某个版本开发后,若该操作系统出现了多种版本,那么通过现有的插件加载方法就无法保证该插件被加载后在该操作系统的其他版本上正常运行,即可能出现安装后的插件无法正常使用的情况。因此,现有的插件加载方法无法满足常见的开源性的操作系统。
发明内容
本申请提供一种插件加载方法及系统,能够插件加载后无法正常适用以及与开源性操作系统无法很好适配的问题。
为了解决上述问题,本申请公开了一种插件加载方法,包括:
收集操作系统平台信息,所述操作系统平台信息包括操作系统版本、安装所述操作系统的终端厂商信息、终端型号;
将所述操作系统平台信息传给服务器;
服务器依据所述操作系统版本、安装所述操作系统的终端厂商信息、终端型号确定当前匹配的操作系统,并提取所述操作系统适配的插件;
服务器返回所述插件下载地址;
根据所述插件下载地址下载所述插件;
加载所述下载的插件。
优选地,所述收集操作系统平台信息包括:
在需要进行插件加载之前收集并存储在操作系统中,当需要时直接提取所述操作系统平台信息;或
在需要进行插件加载时实时收集。
优选地,所述服务器依据操作系统版本、安装所述操作系统的终端厂商信息、终端型号确定当前匹配的操作系统,并提取所述操作系统适配的插件的步骤包括:
将所述操作系统版本、安装所述操作系统的终端厂商信息、终端型号与预先收集的操作系统的特征信息进行匹配比较,找到匹配的操作系统;
根据预先收集的操作系统与插件的对应关系,确定与所述操作系统适配的插件。
优选地,在所述根据所述插件下载地址下载所述插件之后还包括:
验证所述下载得到的插件的合法性,若验证通过,则加载所述下载的插件。
优选地,所述验证所述下载得到的插件的合法性包括:
创建所述插件的MD5值;
使用所述插件的公钥解密所述插件中被加密的MD5值;
比较所述解密的MD5值和所述新创建的MD5值是否匹配,如果匹配,则验证通过,如果不匹配,则验证不通过;
优选地,所述操作系统为Android系统。
优选地,所述加载所述下载的插件的步骤之后,还包括:
根据升级协议来增加新插件,删除所述插件和/或更新所述插件。
优选地,所述增加新插件的步骤为,在所述操作系统平台信息中加入新插件的结构信息,并由客户端下载所述插件;
和/或,所述删除插件的步骤为,将待删除插件的状态置为不可用;
和/或,所述更新插件的步骤为,将新版本插件的版本号与下载地址置于插件的特征信息中。
本申请实施例还公开了一种插件加载系统,包括:
信息收集模块,用于收集操作系统平台信息,所述操作系统平台信息包括操作系统版本、安装所述操作系统的终端厂商信息、终端型号;
信息发送模块,用于将所述操作系统平台信息传给服务器;
位于服务器的匹配提取模块,用于依据所述操作系统版本、安装所述操作系统的终端厂商信息、终端型号确定当前匹配的操作系统,并提取所述操作系统适配的插件;
位于服务器的信息接收模块,用于返回所述插件下载地址;
插件下载模块,用于根据所述插件下载地址下载所述插件;
加载模块,用于加载所述下载的插件。
优选地,所述位于服务器的信息接收模块包括:
信息匹配子模块,用于将所述操作系统版本、安装所述操作系统的终端厂商信息、终端型号与预先收集的操作系统的特征信息进行匹配,找到匹配的操作系统;和
插件选取子模块,用于根据预先收集的操作系统与插件的对应关系,确定与所述操作系统适配的插件。
优选地,所述系统还包括:
验证模块,用于验证所述插件下载模块下载得到的插件的合法性,若验证通过,则加载所述下载的插件。
优选地,所述验证模块包括:
创建特征值子模块,用于创建所述插件的MD5值;
解密特征值子模块,用于将所述插件中被加密的MD5值使用所述插件的公钥进行解密;
比较子模块,用于比较所述解密的MD5值和所述新创建的MD5值是否匹配,如果匹配,则验证通过,如果不匹配,则验证不通过。
优选地,所述系统还包括:
升级模块,用于加载所述下载的插件之后,根据升级协议来增加新插件,删除所述插件和更新所述插件。
与现有技术相比,本申请包括以下优点:
本申请的插件加载方法及系统通过将操作系统所在终端平台的信息进行收集,并发送给服务器进行比较后,由服务器选取适合当前操作系统的插件包,即插件包的选取具有针对性,为动态过程,从而使加载的插件与加载插件的操作系统能够兼容,保证加载的插件能够正常运行,从而更适用于各种开源性的操作系统,减少了适配开发的工作量。
当然,实施本申请的任一产品不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的插件加载方法实施例一的流程图;
图2是本申请的插件加载方法实施例二的流程图;
图3是本申请的插件加载方法实例的流程图;
图4是本申请的插件加载系统实施例一的结构示意图;
图5是本申请的插件加载系统实施例二的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本申请保护的范围。
参照图1,示出本申请的一种插件加载方法实施例一,包括以下步骤:
步骤101,收集操作系统平台信息,所述操作系统平台信息包括操作系统版本、安装所述操作系统的终端厂商信息、终端型号。
操作系统平台信息可以在需要进行插件加载之前收集并存储在操作系统中,当需要时直接提取所述操作系统平台信息即可。例如,在插件加载系统被安装于当前操作系统中时就进行收集。操作系统平台信息也可以在需要进行插件加载时,实时收集。
操作系统平台信息包括操作系统版本、安装所述操作系统的终端厂商信息、终端型号等能够表示当前操作系统的特征信息。因为某些操作系统的开源性特点,很多操作系统在被使用到某些终端时已经经过了二次开发,例如,Android系统。通过对操作系统平台信息的收集,可以能够准确的对操作系统的特征进行表述,从而确定适合当前操作系统的插件。
步骤102,将所述操作系统平台信息传给服务器。
为了获得配所述操作系统的适配插件,需要将所述操作系统平台信息,即操作系统版本、安装所述操作系统的终端厂商信息和终端型号等信息传递给服务器,由服务器进行下一步的操作。
步骤103,服务器依据所述操作系统版本、安装所述操作系统的终端厂商信息、终端型号确定当前匹配的操作系统,并提取所述操作系统适配的插件。
具体的,服务器中预先收集了各种可能出现的操作系统特征信息以及对应的插件信息。通过将操作系统平台信息与这些预先收集的特征信息进行匹配比较,找到与操作系统平台信息匹配的特征信息,与所述特征信息对应的插件即为适合当前操作系统的插件。
步骤104,服务器返回所述插件下载地址。
获得所述操作系统适配的插件之后,服务器可以将插件下载地址返回给插件加载系统。例如,服务器可以返回插件的配置结构,其中包括了url节点,该url节点即为该插件的下载地址。
步骤105,根据所述插件下载地址下载所述插件。
下载所述插件可以由插件动态记载系统完成。另外,也可以由插件加载系统将下载地址传递给需要加载插件的主程序,由所述主程序根据下载地址下载所述插件。
步骤106,加载所述下载的插件。
可以理解,加载插件可以采用常见的加载方法,例如,采用系统提供的类加载器,如引导加载器(Bootstrapclassloader)、扩展加载器(Extensionsclassloader)、系统加载器等等。可以理解,加载插件还可以采用自定的类加载器来实现加载。例如,通过继承java.lang.ClassLoader类的方式实现的类加载器,从而满足特殊的需求。具体的加载过程本申请对此并不限制。
优选地,本申请采用DexClassLoader类来进行插件的加载,在加载过程中在插件的根目录生成与插件同名的Dex文件。
优选地,在加载过程中,会将插件中的实例赋予给主程序内公开的接口,从而使后续对插件使用时,可以直接通过该接口来调用插件的实例,从而避免使用反射机制来实现实例的调用,简化了调用流程。
参照图2,示出本申请的插件加载方法实施例二,在实施例一的步骤105和106之间还包括如下步骤:
步骤201,验证所述下载得到的插件的合法性。
因为下载的插件可以能会被非法篡改,也可能在网络传输过程中出现数据错误,为了保证插件的正常使用,避免因为出现异常而导致反复下载或加载而增加的时间成本和流程成本,可以在处理中增加验证插件的合法性步骤。
验证下载得到的插件的合法性可以通过多种方法来实现,例如,比较下载得到的插件和合法插件的特征值是否相同等等。本申请采用如下方式来验证:
S11,创建所述插件的MD5值;
S12,使用所述插件的公钥解密所述插件中被加密的MD5值;
S13,比较所述解密的MD5值和所述新创建的MD5值是否匹配,如果匹配,则验证通过,如果不匹配,则验证不通过。
具体的,本申请实施例中通过MD5算法(MessageDigestAlgorithmMD5,消息摘要算法第五版)计算出所述下载得到的插件的唯一hash(哈希)值,即MD5值。MD5算法的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。MD5算法将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。
当然,本领域技术人员根据实际情况采用其它算法计算可执行文件的哈希值均是可行的,例如采用sha-1、RIPEMD以及Haval等算法,本申请对此无需加以限制。
数字签名(DigitalSignature)是使用数字证书来识别软件的发布商和使用hash算法来确保软件的完整性一种技术。在Windows操作系统中,微软认证码技术使用Windows受信任的根证书颁发机构颁发的代码签名证书,对软件代码进行数字签名,从而保证了软件代码来自真实的发行者和保证软件代码没有被非法篡改。软件代码数字签名仍然采用PKI(PublicKeyInfrastructure,公钥基础设施)双钥技术,整个数字签名过程是,数据源发送方使用自己的私钥对数据校验和或其他与数据内容有关的变量进行加密处理,完成对数据的合法“签名”,数据接收方则利用对方的公钥来解读收到的“数字签名”,并将解读结果用于对数据完整性的检验,以确认签名的合法性。
举例而言,生成数字签名的过程为:
1)对要签名的所述插件创建MD5值;
2)使用所述插件的私钥来加密上述MD5值;
3)将被加密的MD5值和所述插件的数字证书插入到要签名的所述插件。
相应地,数字签名的验证过程为:
1)对要验证的所述插件创建MD5值;
2)使用所述插件的公钥来解密被加密的MD5值;
3)比较解密的MD5值和新创建的MD5值,如果匹配说明所述插件验证通过,反之,则说明验证未通过。
若验证通过,则可以进行后续加载步骤,若验证未通过,则停止加载。优选地,在停止加载后,还可以增加相应的处理步骤。例如,重新请求服务器匹配,或者给出其它的下载地址重新下载插件等等,并重复验证,直到验证通过。
在实施例一的步骤106之后,还包括以下步骤:
步骤202,根据升级协议来增加新插件,删除所述插件和更新所述插件。
步骤202中所述增加新插件还包括以下子步骤:
S21,在所述操作系统平台信息中加入新插件的结构信息,并由客户端下载所述插件。
步骤202中所述删除插件还包括以下子步骤:
S22,将待删除插件的状态置为不可用。
步骤202中所述更新插件还包括以下子步骤:
S23,将新版本插件的版本号与下载地址置于插件的特征信息中。
因为终端与服务器端已经定义了升级协议,可以根据升级协议来控制插件的增加,删除和更新。对于增加新插件,可以再返回终端客户端,在所述操作系统平台信息中加入新插件的结构信息,并由客户端下载所述插件。对于删除所述插件,可以将待删除插件的状态置为不可用。例如,在接口配置中可以设置要删除的结点中的enable结点为0。对于更新所述插件,可以将新版本插件的版本号与下载地址置于插件的特征信息中,更新所述插件。
参照图3,示出本申请的插件加载方法具体实例的流程图。本实例中,以终端平台中的Android系统为例进行说明。
首先,在终端平台的Android系统中启动插件加载系统软件。插件加载系统的启动可以根据主程序提出加载插件请求来启动。插件加载系统在启动后,会收集当前终端平台中Android系统的平台信息,这些信息包括Android的版本,终端厂商信息,终端型号等。本步骤可以通过构造配置接口的方式来实现,接口中包含有数据节点,具体包括:plugins节点、plugin结点、type结点、version结点、Platform结点、model结点sdk-version结点、hardware结点和Host-version结点。其中,plugins为插件结点,在该结点中包含了主程序当前安装过的所有插件的信息;plugin结点是具体的插件的信息,在plugins结点中可以包含多个plugin结点。type结点为该插件的类型编号;version结点为该插件的版本号;Platform结点是系统平台的参数;model结点为该终端的型号;sdk-version结点为该终端的android的版本;hardware结点为该终端采用的解决方案;Host-version结点为该终端安装的主程序的版本。
插件加载系统在收集完Android系统的平台信息后,需要将这些数据传至云端服务器。云端服务器根据接收的数据在数据库中进行比较匹配,找到与当前数据匹配的插件,并将插件相关信息返回给插件加载系统,例如,插件下载地址等等。本步骤的具体实现也可以通过构造接口的方式来实现数据交互,过程如下:当服务器端得到插件请求后,根据platform的参数和请求的插件的type判断该目前该类型插件是否需要升级,并返回结果。返回的结果的数据接口的结点具体为:plugins是所有插件的根节点,plugin是插件的具体信息。enable结点为该插件是否还有效,用于终止使用特定插件。type,version与请求接口中的结点相同。must-update结点代表该插件必须升级才能正常使用。description结点为该版本结点的说明信息,url结点为该插件的下载地址。
终端在接收插件下载地址后,会将下载地址转给提出加载插件请求的主程序,然后由主程序根据下载地址下载所述插件。
在插件被下载完成后,首先需要对其进行合法性验证,以避免插件被恶意篡改,或在网络传输过程中数据出错。具体步骤为:创建所述插件的MD5值;使用所述插件的公钥解密所述插件中被加密的MD5值;比较所述解密的MD5值和所述新创建的MD5值是否匹配。如果匹配,则验证通过,继续后续加载步骤。如果不匹配,则验证不通过,返回错误(ERROR),停止加载;
当验证该插件的合法性后,就可以通过实用反射机制加载该插件。以加载实现了PluginEnv接口的PluginEnvImpl类为例,一般分以下几个步骤:使用DexClassLoader类加载插件,获取Class对象。DexClassLoader在加载过程中会在插件目录生成同名的Dex文件;通过class实例化对象。
其中,因为是在Android系统中加载的插件,其格式为在Android系统终端平台能够安装的格式APK(AndroidPackage),使用DexClassLoader类加载插件的具体加载过程如下:
首先将Apk文件复制到data/app目录下;
解压Apk文件并扫描插件,将其中的classes.dex安装至data/dalvik-cache目录下;
在data/data目录下创建对应的应用数据目录。
使用Dalvik虚拟机运行.dex文件。
在Android系统手机平台上使用经过优化的Dalvik虚拟机,它能够运行Java平台应用程序,这些应用程序被转换成紧凑的Dalvik可执行格式(.dex文件),该格式适合内存和处理速度受限的系统。Davlik虚拟机使用DexClassLoader通过反射机制加载dex文件并创建类的实例。
至此插件已经加载完毕,主程序调用功能时可以使用接口类直接调用插件内的实例。
通过前述两个步骤可以获取PluginEnv的实例化对象,就可以在主程序中当做普通的Java类来使用了。当实现类中构造函数有参数时,也可以通过c.getConstructors()来获取构造函数,以此实例化类。
优选地,还可以对插件进行更新,例如增加、删除和修改。因为终端与服务器端已经定义了升级协议,可以根据升级协议来控制插件的增加,删除和修改。对于增加新插件,可以再返回终端请求的接口plugins结点中加入新的插件结构信息,并通过终端下载运行;对于删除插件,在接口配置中可以设置要删除的plugin结点中的enable结点为0;对于更新插件,在接口配置中可以设置新版本插件的版本号与下载地址即可。
参照图4,示出本申请的插件加载系统实施例一,包括信息收集模块10、信息发送模块20、位于服务器的匹配提取模块30、位于服务器的信息接收模块40、插件下载模块50和加载模块60。
信息收集模块10,用于收集操作系统平台信息,所述操作系统平台信息包括操作系统版本、安装所述操作系统的终端厂商信息、终端型号。优选地,所述信息收集模块收集的操作系统平台信息包括:在需要进行插件加载之前收集并存储在操作系统中,当需要时直接提取所述操作系统平台信息;或在需要进行插件加载时实时收集。
信息发送模块20,用于将所述操作系统平台信息传给服务器。
位于服务器的匹配提取模块30,依据所述操作系统版本、安装所述操作系统的终端厂商信息、终端型号确定当前匹配的操作系统,并提取所述操作系统适配的插件。优选地,所述服务器包括信息匹配子模块和插件选取子模块,其中,信息匹配子模块,用于将所述操作系统版本、安装所述操作系统的终端厂商信息、终端型号与预先收集的操作系统的特征信息进行匹配,找到匹配的操作系统;插件选取子模块,用于根据预先收集的操作系统与插件的对应关系,确定与所述操作系统适配的插件。
位于服务器的信息接收模块40,用于返回所述插件下载地址;
插件下载模块50,用于根据所述插件下载地址下载所述插件;
加载模块60,用于加载所述下载的插件。
参照图5,示出本申请的插件加载系统实施例二,该系统还包括验证模块70,用于验证所述插件下载模块下载得到的插件的合法性,若验证通过,则加载所述下载的插件。
优选地,验证模块可以包括创建特征值子模块、解密特征值子模块和比较子模块。其中,所述创建特征值子模块,用于创建所述插件的MD5值。所述解密特征值子模块,用于将所述插件中被加密的MD5值使用所述插件的公钥进行解密。所述比较子模块,用于比较所述解密的MD5值和所述新创建的MD5值是否匹配,如果匹配,则验证通过,如果不匹配,则验证不通过。
本申请优选的实施例中,所述系统还可以包括升级模块80,用于加载所述下载的插件之后,根据升级协议来增加新插件,删除所述插件和更新所述插件。具体而言,所述升级模块80中可以包括以下子模块:
增加插件子模块801,用于在所述操作系统平台信息中加入新插件的结构信息,并由客户端下载所述插件;
删除插件子模块802,用于将待删除插件的状态置为不可用;
更新插件子模块803,用于将新版本插件的版本号与下载地址置于插件的特征信息中。
本申请的插件加载方法及系统通过将操作系统所在终端平台的信息进行收集,并发送给服务器进行比较后,由服务器选取适合当前操作系统的插件包,即插件包的选取具有针对性,为动态过程,从而使加载的插件与加载插件的操作系统能够兼容,保证加载的插件能够正常运行,从而更适用于各种开源性的操作系统,减少了适配开发的工作量。
其次,在加载过程中,会将插件中的实例赋予给主程序内公开的接口,从而使后续对插件使用时,可以直接通过该接口来调用插件的实例,从而避免使用反射机制来实现实例的调用,简化了调用流程。
另外,在前述插件被加载后,因为终端与服务器端已经定义了升级协议,可以根据升级协议来控制插件的增加,删除和修改。对于增加新插件,可以在所述操作系统平台信息中加入新插件的结构信息,并由客户端下载所述插件。对于删除插件,可以将待删除插件的状态置为不可用。对于更新插件,可以将新版本插件的版本号与下载地址置于插件的特征信息中。因此,本申请的插件加载方法及系统可以在不更新主程序的情况下,可以实现主程序在具有差异性的操作系统终端上的正确运行,提高了主程序的兼容性,减少了适配开发的工作量。
对于装置实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (11)

1.一种插件加载方法,其特征在于,包括以下步骤:
收集操作系统平台信息,所述操作系统平台信息包括操作系统版本、安装所述操作系统的终端厂商信息、终端型号;
将所述操作系统平台信息传给服务器;所述服务器中预先收集了操作系统特征信息以及对应的插件信息;
服务器依据所述操作系统版本、安装所述操作系统的终端厂商信息、终端型号确定当前匹配的操作系统,并提取所述操作系统适配的插件;
服务器返回所述插件下载地址;
根据所述插件下载地址下载所述插件;
加载所述下载的插件;
其中,所述服务器依据操作系统版本、安装所述操作系统的终端厂商信息、终端型号确定当前匹配的操作系统,并提取所述操作系统适配的插件的步骤包括:
将所述操作系统版本、安装所述操作系统的终端厂商信息、终端型号与预先收集的操作系统的特征信息进行匹配比较,找到匹配的操作系统;
根据预先收集的操作系统与插件的对应关系,确定与所述操作系统适配的插件。
2.如权利要求1所述的插件加载方法,其特征在于,所述收集操作系统平台信息包括:
在需要进行插件加载之前收集并存储在操作系统中,当需要时直接提取所述操作系统平台信息;或
在需要进行插件加载时实时收集。
3.如权利要求1至2任一项所述的插件加载方法,其特征在于,在所述根据所述插件下载地址下载所述插件之后还包括:
验证所述下载得到的插件的合法性,若验证通过,则加载所述下载的插件。
4.如权利要求3所述的插件加载方法,其特征在于,所述验证所述下载得到的插件的合法性包括:
创建所述插件的MD5值;
使用所述插件的公钥解密所述插件中被加密的MD5值;
比较所述解密的MD5值和新创建的MD5值是否匹配,如果匹配,则验证通过,如果不匹配,则验证不通过。
5.如权利要求1至2任一项所述的插件加载方法,其特征在于,所述操作系统为Android系统。
6.如权利要求1至2任一项所述的插件加载方法,其特征在于,所述加载所述下载的插件的步骤之后,还包括:
根据升级协议来增加新插件,删除所述插件和/或更新所述插件。
7.如权利要求6所述的插件加载方法,其特征在于,所述增加新插件的步骤为,在所述操作系统平台信息中加入新插件的结构信息,并由客户端下载所述新插件;
和/或,所述删除插件的步骤为,将待删除插件的状态置为不可用;
和/或,所述更新插件的步骤为,将新版本插件的版本号与下载地址置于插件的特征信息中。
8.一种插件加载系统,其特征在于,包括:
信息收集模块,用于收集操作系统平台信息,所述操作系统平台信息包括操作系统版本、安装所述操作系统的终端厂商信息、终端型号;
信息发送模块,用于将所述操作系统平台信息传给服务器;所述服务器中预先收集了操作系统特征信息以及对应的插件信息;
位于服务器的匹配提取模块,用于依据所述操作系统版本、安装所述操作系统的终端厂商信息、终端型号确定当前匹配的操作系统,并提取所述操作系统适配的插件;
位于服务器的信息接收模块,用于返回所述插件下载地址;
插件下载模块,用于根据所述插件下载地址下载所述插件;
加载模块,用于加载所述下载的插件;
其中,所述位于服务器的匹配提取模块包括:
信息匹配子模块,用于将所述操作系统版本、安装所述操作系统的终端厂商信息、终端型号与预先收集的操作系统的特征信息进行匹配,找到匹配的操作系统;和
插件选取子模块,用于根据预先收集的操作系统与插件的对应关系,确定与所述操作系统适配的插件。
9.如权利要求8所述的插件加载系统,其特征在于,所述系统还包括:
验证模块,用于验证所述插件下载模块下载得到的插件的合法性,若验证通过,则加载所述下载的插件。
10.如权利要求9所述的插件加载系统,其特征在于,所述验证模块包括:
创建特征值子模块,用于创建所述插件的MD5值;
解密特征值子模块,用于将所述插件中被加密的MD5值使用所述插件的公钥进行解密;
比较子模块,用于比较所述解密的MD5值和新创建的MD5值是否匹配,如果匹配,则验证通过,如果不匹配,则验证不通过。
11.如权利要求8所述的插件加载系统,其特征在于,所述系统还包括:
升级模块,用于加载所述下载的插件之后,根据升级协议来增加新插件,删除所述插件和更新所述插件。
CN201210271506.7A 2012-07-31 2012-07-31 插件加载方法及系统 Active CN102830992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210271506.7A CN102830992B (zh) 2012-07-31 2012-07-31 插件加载方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210271506.7A CN102830992B (zh) 2012-07-31 2012-07-31 插件加载方法及系统

Publications (2)

Publication Number Publication Date
CN102830992A CN102830992A (zh) 2012-12-19
CN102830992B true CN102830992B (zh) 2015-11-25

Family

ID=47334141

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210271506.7A Active CN102830992B (zh) 2012-07-31 2012-07-31 插件加载方法及系统

Country Status (1)

Country Link
CN (1) CN102830992B (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104123152A (zh) * 2013-04-28 2014-10-29 百度在线网络技术(北京)有限公司 移动终端中应用程序的更新方法、装置和移动终端
CN104123151B (zh) * 2013-04-28 2018-07-10 百度在线网络技术(北京)有限公司 移动终端中应用程序的插件管理方法、装置和移动终端
CN103763354B (zh) * 2014-01-06 2017-07-28 北京奇安信科技有限公司 一种升级数据下载的方法及装置
CN104951322B (zh) * 2014-03-27 2019-10-11 腾讯科技(深圳)有限公司 插件管理方法、装置及系统
CN103927180B (zh) * 2014-04-21 2017-02-15 广州市久邦数码科技有限公司 一种基于安卓系统的功能插件的实现方法及其系统
CN105320853B (zh) * 2014-07-09 2021-03-02 腾讯科技(深圳)有限公司 一种信息监控方法、装置及终端
CN105335187B (zh) * 2014-08-14 2019-12-13 阿里巴巴集团控股有限公司 一种应用的处理方法及装置
CN104239054A (zh) * 2014-09-12 2014-12-24 广州市久邦数码科技有限公司 一种基于安卓系统的插件加载方法及其系统
CN104391716B (zh) * 2014-11-14 2018-06-05 百度在线网络技术(北京)有限公司 基于插件的应用程序实现方法及装置
CN105677377A (zh) * 2014-11-19 2016-06-15 北京娜迦信息科技发展有限公司 安卓应用的升级方法和装置
CN105744511B (zh) * 2014-12-11 2021-05-04 科大讯飞股份有限公司 安卓系统适配模块动态更新方法、客户端及服务器
CN106155709B (zh) * 2015-03-25 2019-10-01 北京世界星辉科技有限责任公司 插件加载方法、装置及设备
CN104717301B (zh) * 2015-03-27 2016-11-09 北京奇虎科技有限公司 插件下载方法及装置
CN104834534A (zh) * 2015-06-09 2015-08-12 北京奇虎科技有限公司 扩展应用程序功能的方法、装置及系统
CN105893070A (zh) * 2015-11-25 2016-08-24 乐视云计算有限公司 应用的sdk的升级方法及系统
CN106878099B (zh) * 2015-12-11 2020-10-30 中国移动通信集团公司 一种流量管理方法、终端设备、服务器及系统
CN105898022B (zh) * 2015-12-15 2022-07-29 天津智融创新科技发展有限公司 一种终端应用适配提醒方法及终端
CN106909406A (zh) * 2015-12-23 2017-06-30 北京奇虎科技有限公司 一种加载应用程序的apk插件的方法及装置
CN106155739A (zh) * 2016-06-30 2016-11-23 北京奇虎科技有限公司 一种插件控量方法、服务器、客户端及控量平台
CN106354832B (zh) * 2016-08-31 2020-09-25 广州品唯软件有限公司 一种数据发布方法、设备及系统
CN106201638A (zh) * 2016-08-31 2016-12-07 广州品唯软件有限公司 一种插件加载方法、系统、客户端和服务端
CN108021583B (zh) * 2016-10-28 2022-05-06 阿里巴巴集团控股有限公司 页面加载方法及客户端
CN107391177B (zh) * 2017-06-28 2020-09-08 广州华多网络科技有限公司 一种插件下载校验逻辑性能优化方法、设备及计算机系统
CN107317716A (zh) * 2017-07-25 2017-11-03 北京市天元网络技术股份有限公司 一种终端管理系统及其应用方法
CN109729116B (zh) * 2017-10-30 2021-06-08 腾讯科技(深圳)有限公司 插件信息的传输方法、装置、存储介质及电子装置
CN107995038A (zh) * 2017-12-05 2018-05-04 福建升腾资讯有限公司 一种智能外设的集中管理方法及系统
CN108366127B (zh) * 2018-03-07 2021-05-04 北京奇艺世纪科技有限公司 一种软件包的获取方法及装置
CN108509265B (zh) * 2018-04-04 2021-01-01 奇安信科技集团股份有限公司 移动端应用app状态处理方法及装置
CN109035622A (zh) * 2018-07-17 2018-12-18 中国建设银行股份有限公司 金融插件管理方法及装置
CN109218393B (zh) * 2018-07-24 2021-09-21 百度在线网络技术(北京)有限公司 一种推送的实现方法、装置、设备和计算机存储介质
CN109284147B (zh) * 2018-09-06 2024-02-09 平安科技(深圳)有限公司 一种插件适配方法和装置
CN111064720B (zh) * 2019-12-10 2022-09-16 大唐半导体科技有限公司 一种配置网关数据协议转换方法及装置
CN111294556A (zh) * 2020-02-07 2020-06-16 山东浪潮通软信息科技有限公司 一种基于gb/t28181的视频前端处理方法
CN111475193B (zh) * 2020-06-04 2021-03-30 成都安易迅科技有限公司 一种插件的动态更新方法、装置,电子设备及存储介质
CN115129357A (zh) * 2021-03-22 2022-09-30 北京字跳网络技术有限公司 一种专用计算能力配置方法及装置
CN113141538B (zh) * 2021-04-25 2023-08-11 广州酷狗计算机科技有限公司 媒体资源播放方法、装置、终端、服务器及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102043649A (zh) * 2009-10-23 2011-05-04 阿里巴巴集团控股有限公司 插件下载控制方法及插件下载控制系统
CN102081535A (zh) * 2010-12-17 2011-06-01 东莞宇龙通信科技有限公司 基于Android的应用程序升级方法、系统及应用开发平台

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102043649A (zh) * 2009-10-23 2011-05-04 阿里巴巴集团控股有限公司 插件下载控制方法及插件下载控制系统
CN102081535A (zh) * 2010-12-17 2011-06-01 东莞宇龙通信科技有限公司 基于Android的应用程序升级方法、系统及应用开发平台

Also Published As

Publication number Publication date
CN102830992A (zh) 2012-12-19

Similar Documents

Publication Publication Date Title
CN102830992B (zh) 插件加载方法及系统
CN107220083B (zh) 一种安卓系统中免安装运行应用程序的方法和系统
Bellissimo et al. Secure Software Updates: Disappointments and New Challenges.
CN102880456B (zh) 插件加载方法及系统
KR102618665B1 (ko) 블록체인을 사용한 버전 이력 관리
CN112153040B (zh) 一种区块链系统应用智能合约安装部署管理方法
CN103577206A (zh) 一种应用软件的安装方法和装置
US20170270319A1 (en) Method and device for providing verifying application integrity
US7953225B2 (en) Mobile wireless communications device with software installation and verification features and related methods
US20080189695A1 (en) Updating of Data Instructions
Falsina et al. Grab'n run: Secure and practical dynamic code loading for android applications
Mbakoyiannis et al. Secure over-the-air firmware updating for automotive electronic control units
CN104683303A (zh) App管理方法
US8646070B1 (en) Verifying authenticity in data storage management systems
CN110135149A (zh) 一种应用安装的方法及相关装置
CN111460410A (zh) 服务器登录方法、装置、系统与计算机可读存储介质
WO2023124420A1 (zh) 应用签名方法、系统、交易终端及服务平台
CN107145342B (zh) 应用的渠道信息的处理方法和装置
CN111880781A (zh) 一种rpm安装包的生成方法、装置、设备及存储介质
KR20130093847A (ko) 어플리케이션 보안 시스템 및 방법
KR20130125245A (ko) 모바일 디바이스에서 소프트웨어 무결성 유지 방법 및 시스템
CN101388772B (zh) 一种数字签名方法和系统
KR101054079B1 (ko) 홈 네트워크 서비스에 사용되는 단말기 소프트웨어의업그레이드 시스템 및 그 방법
CN106648770A (zh) 一种应用程序安装包的生成方法、加载方法及装置
CN104484198A (zh) 一种安装应用程序的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee after: Beijing Qizhi Business Consulting Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Qizhi software (Beijing) Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20240112

Address after: Room 801, 8th floor, No. 104, floors 1-19, building 2, yard 6, Jiuxianqiao Road, Chaoyang District, Beijing 100015

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Patentee before: Beijing Qizhi Business Consulting Co.,Ltd.

TR01 Transfer of patent right