CN106909406A - 一种加载应用程序的apk插件的方法及装置 - Google Patents

一种加载应用程序的apk插件的方法及装置 Download PDF

Info

Publication number
CN106909406A
CN106909406A CN201510977372.4A CN201510977372A CN106909406A CN 106909406 A CN106909406 A CN 106909406A CN 201510977372 A CN201510977372 A CN 201510977372A CN 106909406 A CN106909406 A CN 106909406A
Authority
CN
China
Prior art keywords
units
plug
apk
unit
application program
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.)
Pending
Application number
CN201510977372.4A
Other languages
English (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.)
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 CN201510977372.4A priority Critical patent/CN106909406A/zh
Publication of CN106909406A publication Critical patent/CN106909406A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请公开一种加载应用程序的APK插件的方法及装置,该方法包括:判断所述应用程序是否需要加载APK插件,所述APK插件为未在应用程序所在平台上安装的插件;当需要加载APK插件时,生成ClassLoader类加载器的对象;根据生成的所述类加载器的对象设置所述应用程序的调用插件活动组件类的子类的实例Context;将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。上述方法即装置,用于在不安装APK插件的情况下,加载APK插件。

Description

一种加载应用程序的APK插件的方法及装置
技术领域
本申请涉及计算机技术领域,尤其涉及一种加载应用程序的APK插件的方法及装置。
背景技术
智能终端在日常生活中扮演了越来越重要的角色,以Android智能手机为例,为满足各种需求,可以将主应用程序即APK(Android Package,Android安装包)安装在系统平台中,当需要某些功能时,就可以打开安装在系统平台中的应该程序,来实现某些功能。
但是随着各行业的进步,应用程序的集成的功能更加丰富且界面更加人性化、绚丽,所以导致了应用程序的体积越来越大,由于应用程序集成的每个功能可能都由不同的开发团队开发,所以不同功能的更新周期都不尽相同,如果仅为了某个集成在应用程序中的功能就重新安装应用程序的整个安装包,显然即浪费网络传输资源,又浪费智能手机的处理资源。况且,有些功能不一定所有人都需要,所以可以将集成在应用程序中功能做成插件,当需要某个功能时,加载对应的插件就可以了。比如,以导航软件为例,主程序包含最基本的导航功能,然而为了满足个性化的需求,可以在导航软件中集成拥堵提示,限行提示,违章查询等。可以将这些功能做成APK插件,当用户需要时,下载对应的插件,加载并运行即可。
而现有技术在实现APK插件的功能时,需要先将APK插件安装在系统平台中,然后加载并运行,如果插件很多,就需要全部安装。比如,依旧以上文的导航软件为例,如果需要拥堵提示、限行提示以及违章查询,就需要下载对应的APK插件,并全部安装在系统平台中,占用系统平台的存储空间。也就是还不能够在仅下载而不安装APK插件的情况下,加载该APK插件。这也导致了存储资源的浪费。
发明内容
本申请实施例提供一种加载应用程序的APK插件的方法,用于在不安装APK插件的情况下,加载APK插件。
本申请实施例提供一种加载应用程序的APK插件的装置,用于在不安装APK插件的情况下,加载APK插件。
本申请实施例采用下述技术方案:
一种加载应用程序的APK插件的方法,包括:
判断所述应用程序是否需要加载APK插件,所述APK插件为未在应用程序所在平台上安装的插件;
当需要加载APK插件时,生成ClassLoader类加载器的对象;
根据生成的所述类加载器的对象设置所述应用程序的调用插件活动组件类的子类的实例Context;
将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。
优选地,在将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中后,所述方法还包括:判断所述插件活动组件类的子类的实例是否为空;当为空时,则继续执行将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中的步骤;当不为空时,则生成成功加载所述APK插件的提示信息。
优选地,在生成ClassLoader类加载器的对象之前,所述方法还包括:收集所述应用程序所在平台的信息,并将所述信息发送到云端服务器,以便云端服务器根据所述信息匹配与所述信息相适应的APK插件,并将所述相适应的APK插件或所述APK插件的下载地址返回给所述应用程序所在平台。
优选地,在所述应用程序所在平台获得所述APK插件后,所述方法还包括对所述APK插件按照下述步骤进行合法性鉴权:获取所述APK插件的PackageInfo包信息类;根据PackageInfo包信息类获取Signature签名对象,并确定Signature签名对象的MD5值;对比所述MD5值与合法签名是否一致。
优选地,收集所述应用程序所在平台的信息,具体包括收集应用程序所在平台终端的厂商信息、终端型号信息和/或所述应用程序所在平台安装的操作系统的版本信息。
一种加载应用程序的APK插件的装置,包括:判断单元、生成单元、设置单元以及赋值单元,其中,
所述判断单元,用于判断判断所述应用程序是否需要加载APK插件,所述APK插件为未在应用程序所在平台上安装的插件;
所述生成单元,用于当需要加载APK插件时,生成ClassLoader类加载器的对象;
所述设置单元,用于根据生成的所述类加载器对象设置所述应用程序的调用插件活动组件类的子类的实例Context;
所述赋值单元,用于将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。
优选地,所述装置还包括验证单元,具体用于:在将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中后,
判断所述插件活动组件类的子类的实例pluginActivity是否为空;
当为空时,则继续执行将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中的步骤;
当不为空时,则生成成功加载所述APK插件的提示消息。
优选地,所述装置还包括适配单元,具体用于,在生成ClassLoader类加载器的对象之前,收集所述应用程序所在平台的信息,并将所述信息发送到云端服务器,以便云端服务器根据所述信息匹配与所述信息相适应的APK插件,并将所述相适应的APK插件或所述APK插件的下载地址返回给所述应用程序所在平台。
优选地,所述装置还包括鉴权单元,具体用于:在所述应用程序所在平台获得所述APK插件后,对所述APK插件按照下述步骤进行合法性鉴权,包括:获取所述APK插件的PackageInfo包信息类;根据PackageInfo包信息类获取Signature签名对象,并确定Signature签名对象的MD5值;对比所述MD5值与合法签名是否一致。
优选地,所述装置还包括收集单元,具体用于:收集应用程序所在平台终端的厂商信息、终端型号信息和/或所述应用程序所在平台安装的操作系统的版本信息。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:在判断出应用程序需要进行加载后,生成ClassLoader类加载器的对象,并根据生成的类加载器的对象设置应用程序的调用插件活动组件类的子类的实例Context,再将Context赋值给所述APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。利用本实施例提供的方法,达到了跳过安装步骤,只需下载即可进行加载APK插件的目的。此外也节省了存储空间。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例1提供的一种加载应用程序的APK插件的方法的流程示意图;
图2为本申请实施例1提供的主程序的抽象父类的定义示意图;
图3为本申请实施例2提供的一种加载应用程序的APK插件的装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
实施例1
本申请实施例提出了一种加载应用程序的APK插件的方法,用于在不安装APK插件的情况下,加载APK插件。该方法的流程示意图如图1所示,包括下述步骤:
步骤11:判断应用程序是否需要加载APK插件。
当应用程序接收到用户发出的针对某个APK插件的加载请求时,应用程序就可以根据加载请求,去加载对应的APK插件,在本申请中,将应用程序看作是安装在系统平台中的主程序,为了方便加载APK插件,以便最终实现APK插件的功能,规避过多的使用反射机制,本发明将APK插件提供的功能抽象为两个抽象父类。其中用于加载APK插件的主程序的抽象父类为调用插件活动组件类(下文简称CallPluginActivity),APK插件的抽象父类为插件活动组件类(下文简称PluginActivity)。CallPluginActivity和PluginActivity均为抽象类,需要子类实现其相应的方法,因此本文后续描述的CallPluginActivity均也代表CallPluginActivity的实现类,PluginActivity均也代表PluginActivity的实现类,后面将不再赘述。
主程序的抽象父类CallPluginActivity主要是为了向APK插件中的PluginActivity提供实例,即上下文Context,并通过反射机制加载APK插件。在本发明实施例中,主程序的抽象父类的定义如图2所示。其中,LoadAPK()方法用于判断是否需要加载APK插件。
由于是本申请就是要在不安装的情况下加载APK插件,所以该步骤中判断的APK插件是未在应用程序所在平台上安装的插件。
步骤12:当需要加载APK插件时,生成ClassLoader类加载器的对象。
当需要加载APK插件时,可以再次利用LoadAPK()方法生成DexClassLoader和PackageInfo等句柄及文件,该句柄及文件就是成DexClassLoader类加载器的对象。
在实际应用中,由于主程序的差异、(Android)系统的差异可能会导致APK插件的适配问题,并且APK插件的安全检测也是比较重要的,所以,在一种实施方式中,生成DexClassLoader类加载器的对象之前,方法还可以包括:
收集主程序所在平台的信息,并将该信息发送到云端服务器,以便云端服务器根据该信息匹配与该信息相适应的APK插件,并将相适应的APK插件或APK插件的下载地址返回给主程序所在平台,主程序在接收到下载地址后,就可以下载获取到该APK插件。
具体地,启动主程序时,收集主程序的信息,这些信息包括下述至少一种:主程序的版本信息(如3.0或3.1等)、主程序所在的Android系统信息(如4.4.2或5.1等),主程序所属终端的厂商信息(如Google、HUAWEI等)、主程序所属终端的型号(Nexus 5、Nexus 6P)等。由于Android的开放性,各家终端厂商所使用的系统,基本都经过了二次开发,使得市场上的Android终端比较繁杂,收集这些的参数的意义在于能够准确其适配的APK插件;收集完相关数据后,需要将参数传至服务器,由服务器返回适配结果,服务器返回的适配结果中可以包含APK插件的下载地址,然后主程序会根据下载地址下载APK插件。
在实际应用中,为了避免APK插件被非法篡改,或在网络传输过程中数据出错,在一种实施方式中,主程序所在平台获得APK插件后,还可以对该APK插件进行合法性鉴权:获取该APK插件的PackageInfo包信息类;根据PackageInfo包信息类获取Signature签名对象,并确定Signature签名对象的MD5值;对比该MD5值与合法签名是否一致。该合法签名可以是伴随在服务器返回的适配结果中的,也可以预先存储在主程序中。图2所示的checkApk()方法可以用于对APK插件进行合法性鉴权。
步骤13:根据生成的类加载器的对象设置应用程序的调用插件活动组件类的子类的实例Context。
在步骤11中已经介绍,主程序的抽象父类CallPluginActivity主要是为了向APK插件中的PluginActivity提供实例,即上下文Context,所以可以根据DexClassLoader和PackageInfo等句柄及文件,设置Context,即CallPluginActivity子类的实例。
步骤14:将实例Context赋值给APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。
在得到Context后,就可以将Context赋值到APK插件的PluginActivity子类的实例当中,以主程序的Context替代被加载APK插件的Context,最终得到对应的PluginActivity实例(变量名为:pluginActivity),以实现对应用程序的APK插件的加载。
在实际应用中,为了实现APK插件的功能,除了加载APK插件外,还需要加载APK插件对应的资源,图2中,getOtherResources()方法用于通过反射方法加载APK插件的资源并生成Resources句柄(变量名为:pluginRes)。为了实现对应的功能,需要在子类中重写父类定义的如下方法:
重写以下方法替换当前CallPluginActivity的资源、样式为APK插件中的资源、样式:
//判断pluginActivity及pluginRes是否成功加载,若成功加载返回APK包的
Resources资源;否则以系统默认方式加载Resources资源;
●+getResources():Resources//
返回一个资源句柄(android.content.res.Resources)
●+getTheme():Theme//
返回一个样式句柄(android.content.res.Resources.Theme)
●+getAssets():AssetManager//
返回一个样式句柄(android.content.res.AssetManager)
本文中代码后“//…”的内容是代码的注释内容。
在一种实施方式中,为了验证加载APK插件是否成功,在将实例Context赋值给APK插件中插件活动组件类的子类的实例中后,判断插件活动组件类的子类的实例是否为空;
当为空时,则继续执行将实例Context赋值给APK插件中插件活动组件类的子类的实例中的步骤;
当不为空时,则生成成功加载APK插件的提示信息。比如可以返回一条成功加载的信息给调用、运行等操作的功能单元,还可以返回加载成功信息给用户界面。
采用实施例1提供的该加载方法,在判断出应用程序需要进行加载后,生成ClassLoader类加载器的对象,并根据生成的类加载器的对象设置应用程序的调用插件活动组件类的子类的实例Context,再将Context赋值给所述APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。利用本实施例提供的方法,达到了跳过安装步骤,只需下载即可进行加载APK插件的目的。此外也节省了存储空间。
实施例2
基于相同的发明构思,实施例2提供了一种加载应用程序的APK插件的方法,用于在不安装APK插件的情况下,加载APK插件。如图3所示结构框图,该装置包括:判断单元21、生成单元22、设置单元23以及赋值单元24,其中,
判断单元21,可以用于判断判断所述应用程序是否需要加载APK插件,所述APK插件为未在应用程序所在平台上安装的插件;
生成单元22,可以用于当需要加载APK插件时,生成ClassLoader类加载器的对象;
设置单元23,可以用于根据生成的所述类加载器对象设置所述应用程序的调用插件活动组件类的子类的实例Context;
赋值单元24,可以用于将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。
在一种实施方式中,该装置还包括验证单元,可以用于:在将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中后,
判断所述插件活动组件类的子类的实例pluginActivity是否为空;
当为空时,则继续执行将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中的步骤;当不为空时,则生成成功加载所述APK插件的提示消息。
在一种实施方式中,该装置还包括收集适配单元,可以用于,在生成DexClassLoader类加载器的对象之前,
收集所述应用程序所在平台的信息,并将所述信息发送到云端服务器,以便云端服务器根据所述信息匹配与所述信息相适应的APK插件,并将所述相适应的APK插件或所述APK插件的下载地址返回给所述应用程序所在平台。
在一种实施方式中,该装置还包括鉴权单元,可以用于:在所述应用程序所在平台获得所述APK插件后,对所述APK插件按照下述步骤进行合法性鉴权,包括:获取所述APK插件的PackageInfo包信息类;根据PackageInfo包信息类获取Signature签名对象,并确定Signature签名对象的MD5值;对比所述MD5值与合法签名是否一致。
在一种实施方式中,所述装置还包括收集单元,可以用于收集应用程序所在平台终端的厂商信息、终端型号信息和/或所述应用程序所在平台安装的操作系统的版本信息。
采用实施例2提供的该装置,在判断出应用程序需要进行加载后,生成ClassLoader类加载器的对象,并根据生成的类加载器的对象设置应用程序的调用插件活动组件类的子类的实例Context,再将Context赋值给所述APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。利用本实施例提供的方法,达到了跳过安装步骤,只需下载即可进行加载APK插件的目的。此外也节省了存储空间。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种加载应用程序的APK插件的方法,其特征在于,包括:
判断所述应用程序是否需要加载APK插件,所述APK插件为未在应用程序所在平台上安装的插件;
当需要加载APK插件时,生成ClassLoader类加载器的对象;
根据生成的所述类加载器的对象设置所述应用程序的调用插件活动组件类的子类的实例Context;
将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。
2.如权利要求1所述的方法,其特征在于,在将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中后,所述方法还包括:
判断所述插件活动组件类的子类的实例是否为空;
当为空时,则继续执行将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中的步骤;
当不为空时,则生成成功加载所述APK插件的提示信息。
3.如权利要求1所述的方法,其特征在于,在生成ClassLoader类加载器的对象之前,所述方法还包括:
收集所述应用程序所在平台的信息,并将所述信息发送到云端服务器,以便云端服务器根据所述信息匹配与所述信息相适应的APK插件,并将所述相适应的APK插件或所述APK插件的下载地址返回给所述应用程序所在平台。
4.如权利要求3所述的方法,其特征在于,在所述应用程序所在平台获得所述APK插件后,所述方法还包括对所述APK插件按照下述步骤进行合法性鉴权:
获取所述APK插件的PackageInfo包信息类;
根据PackageInfo包信息类获取Signature签名对象,并确定Signature签名对象的MD5值;
对比所述MD5值与合法签名是否一致。
5.如权利要求3所述的方法,其特征在于,收集所述应用程序所在平台的信息,具体包括收集
应用程序所在平台终端的厂商信息、终端型号信息和/或所述应用程序所在平台安装的操作系统的版本信息。
6.一种加载应用程序的APK插件的装置,其特征在于,包括:判断单元、生成单元、设置单元以及赋值单元,其中,
所述判断单元,用于判断判断所述应用程序是否需要加载APK插件,所述APK插件为未在应用程序所在平台上安装的插件;
所述生成单元,用于当需要加载APK插件时,生成ClassLoader类加载器的对象;
所述设置单元,用于根据生成的所述类加载器对象设置所述应用程序的调用插件活动组件类的子类的实例Context;
所述赋值单元,用于将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。
7.如权利要求6所述的装置,其特征在于,所述装置还包括验证单元,具体用于:在将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中后,
判断所述插件活动组件类的子类的实例pluginActivity是否为空;
当为空时,则继续执行将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中的步骤;
当不为空时,则生成成功加载所述APK插件的提示消息。
8.如权利要求6所述的装置,其特征在于,所述装置还包括适配单元,具体用于:在生成ClassLoader类加载器的对象之前,
收集所述应用程序所在平台的信息,并将所述信息发送到云端服务器,以便云端服务器根据所述信息匹配与所述信息相适应的APK插件,并将所述相适应的APK插件或所述APK插件的下载地址返回给所述应用程序所在平台。
9.如权利要求8所述的装置,其特征在于,所述装置还包括鉴权单元,具体用于:在所述应用程序所在平台获得所述APK插件后,
对所述APK插件按照下述步骤进行合法性鉴权,包括:
获取所述APK插件的PackageInfo包信息类;
根据PackageInfo包信息类获取Signature签名对象,并确定Signature签名对象的MD5值;
对比所述MD5值与合法签名是否一致。
10.如权利要求8所述的装置,其特征在于,所述装置还包括收集单元,具体用于:收集
应用程序所在平台终端的厂商信息、终端型号信息和/或所述应用程序所在平台安装的操作系统的版本信息。
CN201510977372.4A 2015-12-23 2015-12-23 一种加载应用程序的apk插件的方法及装置 Pending CN106909406A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510977372.4A CN106909406A (zh) 2015-12-23 2015-12-23 一种加载应用程序的apk插件的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510977372.4A CN106909406A (zh) 2015-12-23 2015-12-23 一种加载应用程序的apk插件的方法及装置

Publications (1)

Publication Number Publication Date
CN106909406A true CN106909406A (zh) 2017-06-30

Family

ID=59199393

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510977372.4A Pending CN106909406A (zh) 2015-12-23 2015-12-23 一种加载应用程序的apk插件的方法及装置

Country Status (1)

Country Link
CN (1) CN106909406A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491236A (zh) * 2018-03-23 2018-09-04 努比亚技术有限公司 一种插件加载方法、装置及计算机可读存储介质
CN108595203A (zh) * 2018-04-28 2018-09-28 努比亚技术有限公司 应用功能执行方法、移动终端和计算机可读存储介质
CN111338708A (zh) * 2020-02-25 2020-06-26 安徽以萨数据技术有限公司 基于安卓插件的应用程序处理方法、客户端及系统
CN111443959A (zh) * 2020-03-27 2020-07-24 北京金山云网络技术有限公司 任务的执行方法、装置和服务器
CN111459570A (zh) * 2020-03-30 2020-07-28 掌阅科技股份有限公司 Pdf插件加载方法、电子设备和计算机存储介质
CN111475171A (zh) * 2019-01-23 2020-07-31 阿里巴巴集团控股有限公司 应用程序组件下载方法、装置、电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102830992A (zh) * 2012-07-31 2012-12-19 北京奇虎科技有限公司 插件加载方法及系统
CN104049986A (zh) * 2013-03-14 2014-09-17 腾讯科技(深圳)有限公司 插件加载方法及装置
CN104714828A (zh) * 2015-03-31 2015-06-17 北京奇虎科技有限公司 应用安装、运行方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102830992A (zh) * 2012-07-31 2012-12-19 北京奇虎科技有限公司 插件加载方法及系统
CN104049986A (zh) * 2013-03-14 2014-09-17 腾讯科技(深圳)有限公司 插件加载方法及装置
CN104714828A (zh) * 2015-03-31 2015-06-17 北京奇虎科技有限公司 应用安装、运行方法及装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108491236A (zh) * 2018-03-23 2018-09-04 努比亚技术有限公司 一种插件加载方法、装置及计算机可读存储介质
CN108595203A (zh) * 2018-04-28 2018-09-28 努比亚技术有限公司 应用功能执行方法、移动终端和计算机可读存储介质
CN108595203B (zh) * 2018-04-28 2024-04-19 努比亚技术有限公司 应用功能执行方法、移动终端和计算机可读存储介质
CN111475171A (zh) * 2019-01-23 2020-07-31 阿里巴巴集团控股有限公司 应用程序组件下载方法、装置、电子设备
CN111475171B (zh) * 2019-01-23 2024-04-12 阿里巴巴集团控股有限公司 应用程序组件下载方法、装置、电子设备
CN111338708A (zh) * 2020-02-25 2020-06-26 安徽以萨数据技术有限公司 基于安卓插件的应用程序处理方法、客户端及系统
CN111443959A (zh) * 2020-03-27 2020-07-24 北京金山云网络技术有限公司 任务的执行方法、装置和服务器
CN111459570A (zh) * 2020-03-30 2020-07-28 掌阅科技股份有限公司 Pdf插件加载方法、电子设备和计算机存储介质
CN111459570B (zh) * 2020-03-30 2023-03-17 掌阅科技股份有限公司 Pdf插件加载方法、电子设备和计算机存储介质

Similar Documents

Publication Publication Date Title
CN106909406A (zh) 一种加载应用程序的apk插件的方法及装置
CN108027741B (zh) 基于补丁升级的文件处理方法、装置、终端以及存储介质
CN106909409A (zh) 一种运行应用程序的apk插件的方法及装置
CN109286724B (zh) 一种基于短信息的数据交互方法及装置
CN109144478B (zh) 组件框架系统以及组件框架系统的使用方法
CN107046482B (zh) 一种api服务的管理方法及装置
CN105337928A (zh) 用户身份识别方法、安全保护问题生成方法及装置
CN110516417B (zh) 一种智能合约的权限验证方法及装置
EP3313041A1 (en) Application download method and device
CN113553140B (zh) 资源调度方法、设备及系统
CN112612214A (zh) 用于功能界面生成的方法、系统和电子设备
CN110601896A (zh) 一种基于区块链节点的数据处理方法以及设备
CN105511935B (zh) 资源索引值的获取方法及装置
CN112882765A (zh) 数字孪生模型调度方法和装置
CN103152724B (zh) 一种硬件锁sim卡的方法及系统
CN105005497A (zh) 一种Java卡虚拟机中本地函数的调用方法及装置
RU2764288C1 (ru) Способ для развертывания ресурса, требуемого для сетевой функции, носитель данных и электронное устройство
CN109947435A (zh) 服务器集群软件环境的部署方法及系统
CN102148831A (zh) 一种终端应用的安全控制方法及系统
CN102547661B (zh) 一种Android系统与电信智能卡通信的方法及装置
CN115617471A (zh) 一种业务调用的方法、装置、存储介质及电子设备
CN106027639B (zh) 一种paas平台的广域网访问方法及装置
CN112732676B (zh) 基于区块链的数据迁移方法、装置、设备及存储介质
CN107562501A (zh) 一种智能设备管控方法及系统
CN114553608A (zh) 用于接入云平台的方法和装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20170630

RJ01 Rejection of invention patent application after publication