一种加载应用程序的APK插件的方法及装置制造方法及图纸

技术编号:15746335 阅读:93 留言:0更新日期:2017-07-03 01:25
本申请公开一种加载应用程序的APK插件的方法及装置,该方法包括:判断所述应用程序是否需要加载APK插件,所述APK插件为未在应用程序所在平台上安装的插件;当需要加载APK插件时,生成ClassLoader类加载器的对象;根据生成的所述类加载器的对象设置所述应用程序的调用插件活动组件类的子类的实例Context;将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。上述方法即装置,用于在不安装APK插件的情况下,加载APK插件。

Method and device for loading APK plug-in of application program

The method and the device for loading the application discloses a APK plug-in, the method includes: determining whether the application needs to load the APK plug-in, the APK plugin is not installed in the application of platform plug-in; when the need to load the APK plugin, ClassLoader class loader object is generated according to the generated; the class loader object to set the application program calls the plug-in activity components subclass instance Context; will be an example of the Context instance assigned to the plug-in plug-in component activity APK subclasses, in order to achieve the application of the APK plug-in loading. The method described above is used to load the APK plug-in without installing the APK plug-in.

【技术实现步骤摘要】
一种加载应用程序的APK插件的方法及装置
本申请涉及计算机
,尤其涉及一种加载应用程序的APK插件的方法及装置。
技术介绍
智能终端在日常生活中扮演了越来越重要的角色,以Android智能手机为例,为满足各种需求,可以将主应用程序即APK(AndroidPackage,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所示本文档来自技高网
...
一种加载应用程序的APK插件的方法及装置

【技术保护点】
一种加载应用程序的APK插件的方法,其特征在于,包括:判断所述应用程序是否需要加载APK插件,所述APK插件为未在应用程序所在平台上安装的插件;当需要加载APK插件时,生成ClassLoader类加载器的对象;根据生成的所述类加载器的对象设置所述应用程序的调用插件活动组件类的子类的实例Context;将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。

【技术特征摘要】
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插件的装置,其特征在于,包括:判断单元、生成单元、设置单元以及赋值单元,其中...

【专利技术属性】
技术研发人员:荣涛
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1