[发明专利]一种安卓应用免安装启动的方法、装置及终端在审
申请号: | 201510821255.9 | 申请日: | 2015-11-23 |
公开(公告)号: | CN106775793A | 公开(公告)日: | 2017-05-31 |
发明(设计)人: | 刘华友 | 申请(专利权)人: | 卓望数码技术(深圳)有限公司 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 深圳市顺天达专利商标代理有限公司44217 | 代理人: | 李琴 |
地址: | 518057 广东省深圳市南山区高*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 应用 安装 启动 方法 装置 终端 | ||
技术领域
本发明涉及计算机技术领域,更具体地说,涉及一种安卓应用免安装启动的方法、装置及终端。
背景技术
现有的Android安装包(AndroidPackage,apk)免安装启动采用一个程序,称为宿主程序,去动态加载apk并将其放在宿主程序的进程中执行,如图1所示,宿主程序使用DexClassLoader动态加载放在sd卡上的apk后,使得宿主程序可以使用反射机制访问安装包里的各个class类,通过proxy的activity去执行apk中的activity从而达到免安装启动的效果。
然而,将apk加载到宿主程序中去执行,就无法通过宿主程序的Context(上下文)去获取到apk中的资源文件,比如图片、文本等,原因在于,apk已经不存在Context了,它执行时所采用的上下文是宿主程序的上下文,用宿主程序的Context是无法得到自己的资源。另外,还有一个问题是activity的生命周期,在apk被宿主程序加载执行后,它的activity其实就是一个普通的类,正常情况下,activity的生命周期是由系统来管理的,在被宿主程序接管后,无法自动由系统管理。
发明内容
本发明要解决的技术问题在于,针对现有的Android安装包免安装启动的上述缺陷,提供一种安卓应用免安装启动的方法、装置及终端。
本发明解决上述问题的技术方案是提供了一种安卓应用免安装启动的方法,该方法包括:
调用界面发起免安装启动安卓应用的apk的请求;
构造类加载器,并构造访问所述apk的资源文件的Context;
使用动态加载代理反射所述apk的初始化模块,将所述Context传输给所述apk;
根据所述类加载器和所述Context分别加载所述apk的各个组件。
在上述安卓应用免安装启动的方法中,所述构造类加载器的步骤包括:
检查所述安卓应用的所述apk是否已解压到调用程序的目录下;
在所述安卓应用的所述apk未已解压到调用程序的目录下时,所述采用zip算法将所述安卓应用的所述apk解压到所述调用程序的目录下;
在所述安卓应用的所述apk已解压到所述调用程序的目录下时,通过所述apk的路径,将解压的dex路径和lib路径构造所述类加载器。
在上述安卓应用免安装启动的方法中,所述构造访问所述apk的资源文件的Context的步骤包括:
重新创建资源管理器,并使用addAssetPath函数把所述apk的资源文件的路径修改为所述apk的路径;
使用所述资源管理器创建新的资源Resources类,其中,所述资源Resources类是指向所述apk的;
重写父类的getResources函数和getAssets函数,并返回所述资源Resources类和所述资源管理器。
在上述安卓应用免安装启动的方法中,所述方法还包括:
根据插件对象类名使用动态加载代理反射所述apk内的各个插件对象,其中,每一所述插件对象使用所述Context访问各自的资源文件;
在被调用端界面访问所述插件对象时,使用createFragment函数返回一个UI元素给调用界面显示。
在上述安卓应用免安装启动的方法中,所述插件对象继承于同一个抽象插件对象,且所述抽象插件对象定义各个生命周期函数。
本发明还提供了一种安卓应用免安装启动的装置,该装置包括请求模块、构造模块、传输模块和加载模块,其中,所述构造模块包括第一构造单元和第二构造单元;所述请求模块用于调用界面发起免安装启动安卓应用的apk的请 求;所述第一构造单元用于构造类加载器;所述第二构造单元构造访问所述apk的资源文件的Context;所述传输模块用于使用动态加载代理反射所述apk的初始化模块,将所述Context传输给所述apk;所述加载模块根据所述类加载器类和所述Context分别加载所述apk的各个组件。
在上述安卓应用免安装启动的装置中,所述第一构造单元包括:
检查子单元,用于检查所述安卓应用的所述apk是否已解压到调用程序的目录下;
解压子单元,用于在所述安卓应用的所述apk未已解压到调用程序的目录下时,采用zip算法将所述安卓应用的所述apk解压到所述调用程序的目录下。
构造子单元,用于在所述安卓应用的所述apk已解压到所述调用程序的目录下时,通过所述apk的路径,将解压的dex路径和lib路径构造所述类加载器。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于卓望数码技术(深圳)有限公司,未经卓望数码技术(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510821255.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种智能终端的锁屏画面生成方法
- 下一篇:一种输入法客户端安装方法和装置