[发明专利]一种运行应用程序的APK插件的方法及装置在审
| 申请号: | 201510977737.3 | 申请日: | 2015-12-23 |
| 公开(公告)号: | CN106909409A | 公开(公告)日: | 2017-06-30 |
| 发明(设计)人: | 荣涛 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
| 主分类号: | G06F9/445 | 分类号: | G06F9/445 |
| 代理公司: | 北京国昊天诚知识产权代理有限公司11315 | 代理人: | 许志勇,黄熊 |
| 地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 运行 应用程序 apk 插件 方法 装置 | ||
技术领域
本申请涉及计算机技术领域,尤其涉及一种运行应用程序的APK插件的方法及装置。
背景技术
智能终端在日常生活中扮演了越来越重要的角色,以Android智能手机为例,为满足各种需求,可以将主应用程序即APK(Android Package,Android安装包)安装在系统平台中,当需要某些功能时,就可以打开安装在系统平台中的应该程序,来实现某些功能。
但是随着各行业的进步,应用程序的集成的功能更加丰富且界面更加人性化、绚丽,所以导致了应用程序的体积越来越大,由于应用程序集成的每个功能可能都由不同的开发团队开发,所以不同功能的更新周期都不尽相同,如果仅为了某个集成在应用程序中的功能就重新安装应用程序的整个安装包,显然即浪费网络传输资源,又浪费智能手机的处理资源。况且,有些功能不一定所有人都需要,所以可以将集成在应用程序中功能做成插件,当需要某个功能时,运行对应的插件就可以了。比如,以导航软件为例,主程序包含最基本的导航功能,然而为了满足个性化的需求,可以在导航软件中集成拥堵提示,限行提示,违章查询等。可以将这些功能做成APK插件,当用户需要时,下载对应的插件,运行即可。
而现有技术在实现APK插件的功能时,需要先将APK插件安装在系统平台中,然后再运行,如果插件很多,就需要全部安装。比如,依旧以上文的导航软件为例,如果需要拥堵提示、限行提示以及违章查询,就需要下载对应的APK插件,并全部安装在系统平台中,占用系统平台的存储空间。也就是还不 能够在仅下载而不安装APK插件的情况下,运行该APK插件。
发明内容
本申请实施例提供一种运行应用程序的APK插件的方法,用于在不安装插件的情况下,运行该插件。
本申请实施例提供一种运行应用程序的APK插件的装置,用于在不安装插件的情况下,运行该插件。
本申请实施例采用下述技术方案:
一种运行应用程序的APK插件的方法,包括:
加载APK插件,加载过程中在所述主程序目录中生成Dex文件,所述APK插件为未在应用程序所在平台上安装的插件;
当加载成功后,调用所述加载成功的APK插件中的方法以实现插件的功能;
通过虚拟机运行所述Dex文件,以运行所述APK插件。
优选地,加载APK插件,包括:生成ClassLoader类加载器的对象;根据生成的所述类加载器的对象设置所述应用程序的调用插件活动组件类的子类的实例Context;将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。
优选地,调用所述加载成功的APK插件中的方法以实现插件的功能,包括:实例化所述APK插件中插件活动组件类对应的Activity;应用程序的调用插件活动组件类的子类以插件形式调用所述Activity的实例,以实现插件的功能。
优选地,加载APK插件之前,所述方法还包括:收集所述应用程序所在平台的信息,并将所述信息发送到云端服务器,以便云端服务器根据所述信息匹配与所述信息相适应的APK插件,并将所述相适应的APK插件或所述APK插件的下载地址返回给所述应用程序所在平台。
优选地,在所述应用程序所在平台获得所述APK插件后,所述方法还包括对所述APK插件按照下述步骤进行合法性鉴权:获取所述APK插件的PackageInfo包信息类;根据PackageInfo包信息类获取Signature签名对象,并确定Signature签名对象的MD5值;对比所述MD5值与合法签名是否一致。
一种运行应用程序的APK插件的装置,包括:加载单元、调用单元以及运行单元,其中,
所述加载单元,用于加载APK插件,加载过程中在所述主程序目录中生成Dex文件,所述APK插件为未在应用程序所在平台上安装的插件;
所述调用单元,用于当加载成功后,调用所述加载成功的APK插件中的方法以实现插件功能;
所述运行单元,用于通过虚拟机运行所述Dex文件,以运行所述APK插件。
优选地,所述加载单元具体用于:生成ClassLoader类加载器的对象;根据生成的所述类加载器的对象设置所述应用程序的调用插件活动组件类的子类的实例Context;将所述实例Context赋值给所述APK插件中插件活动组件类的子类的实例中,以实现对应用程序的APK插件的加载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510977737.3/2.html,转载请声明来源钻瓜专利网。





