掌桥专利:专业的专利平台
掌桥专利
首页

一种基于虚拟多开的webview加载优化方法

文献发布时间:2023-06-19 13:45:04



技术领域

本发明涉及信息化软件系统、Android开发领域,尤其涉及一种基于虚拟多开 的webview加载优化方法。

背景技术

Android项目为了实现跨平台的快速开发,基本都会采用HyBird的混合开发 技术来实现这一目标。HyBird技术通过webview内核实现H5界面的加载,但是 webview不管是初始化还是加载H5界面都需要进行优化,以便能更接近原生的展 示效果。但,不管是功能拓展还是优化,都需要提前规划好,无法实现线上跟随 业务及时更新优化方案。

发明内容

为了解决以上技术问题,本发明提供了一种基于虚拟多开的webview加载优 化方法,通过多进程的形式,实现多类型webApp预加载。通过代理系统类,实现 宿主内部安全沙箱内的安装卸载,从而实现webApp加载优化策略可以实时更新。

本发明的技术方案是:

一种基于虚拟多开的webview加载优化方法,通过多进程的形式,将webview 独立成一个webApp,webApp作为独立的app通过拓展系统API和通过内置的 JsBridge实现类似于浏览器的功能,通过AIDL实现宿主和webApp的通信。

为了安全考虑,webApp的权限等都需要通过宿主进行代理请求。通过代理系 统类,实现webApp在宿主中的安装、卸载,从而实现可以在线上实时更新webview 各种加载优化策略的方案。

进一步的,通过多进程的形式,实现多类型webApp预加载。通过代理系 统类,实现宿主内部安全沙箱内的安装卸载,从而实现webApp加载优化策略 可以实时更新

通过动态代理,将webApp的安装卸载、启动、更新指向宿主;通过多用户的 安全沙盒模式,保证每个webApp数据是独立的且同一类型webApp可安装多个; 通过多进程的模式,实现同一类型或不同类型webApp的同时运行;通过自定义 aidlBridge,实现权限的代理申请和数据交互;

通过java提供的动态代理API,将宿主内webApp的安装卸载、启动、更新等 通过代理的系统类后,最终指向宿主的实现。

宿主通过多用户的安全沙盒模式,实现同一类型webApp安装在不同用户路径 下的安全沙盒内;

新开webApp,根据进程池中是否有空闲进程,选择是复用还是新开进程。多进 程模式实现了,多个相同或不同webApp可以同时运行。

自定义aidlBridge,实现宿主和webApp数据交互。

webApp需要的权限,基于最小使用原则通过aidlBridge,通过宿主代理申请。 且webApp申请使用的权限不能多余宿主在Androidmanifest中注册的。

进一步的,

在宿主App启动后,对需要的多开系统类进行代理。在合适的时机,根据业 务进行不同类型的webApp的预安装和预启动。安装时在宿主的安全沙箱内通过代 理的系统安装类。若都是不同类型的webApp,可以通过安装在同一安全沙盒内; 若是同一类型的webApp,则需要通过多用户路径进行webApp的安装。启动时,通 过多开新的进程,并通过代理的系统类启动目标webApp。多开的webApp通过自 定义aidlBridge与宿主进行跨进程通信和数据传递。基于安全考虑,webApp申请 使用的权限,需要通过aidlBridge通过宿主代理后进行申请,同样webApp申请 的权限不得多于宿主在Androidmanifest中注册的。

进一步的,具体步骤如下:

在宿主App启动后,首先对多开需要的安装卸载、启动需要的系统类进行代 理;

根据业务需要对不同类型的webApp进行预安装;通过预置或者网络,获取需 要预安装的webApp;通过代理的系统的类将不同类型或同一类型的数个webApp, 安装到同一或者不同的安全沙盒内;通过代理安装的webApp,实际上安装到了宿 主内部的安全沙盒,不会在桌面产生图标;

启动webApp的时候判断当前进程池是否有空闲的目标进程;若有,则复用进 程,加速打开;若没有,则新开进程,将webApp运行在新的进程中;通过新开进 程的形式,可以实现同一时间运行一个以上同一类型的webApp;

webApp通过自定义的aidlBridge与宿主进行跨进程通信和数据交换,通过自 定义的数据解析器,对数据进行解析;webApp需要用到的权限,同样需要通过 aidlBridge,通过宿主代为申请。

基于安全和个人信息保护的原则,webApp申请的权限不得多于宿主在Androidmanifest中注册的。

当安装的webApp有新的更新时,可以下载新的更新包,然后通过系统代理类 进行webApp的升级安装。

本发明的有益效果是

(一)本发明提出的基于虚拟多开的webview加载优化方案,通过网络下发 新webApp的形式,更新已安装的webApp,保证webApp内部的加载策略和Bug可 以及时更新。

(二)本发明提出的基于虚拟多开的webview加载优化方案,通过多用户路径 可以进行多个同一或者不同类型的webApp的安装,保障每一个webApp数据存储 互不干扰。

(三)本发明提出的基于虚拟多开的webview加载优化方案,通过多进程的缓 存池复用,提高webApp的加载速度,提高内存使用率。

(四)本发明提出的基于虚拟多开的webview加载优化方案,webApp权限的申 请需要通过宿主代理且权限不得多余宿主,保证了用户使用的安全和信息不会不 滥用。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将对本发明实 施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一 部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明 保护的范围。

本发明通过多进程的形式,将webview独立成一个webApp,webApp作为独立 的app通过拓展系统API和通过内置的JsBridge实现类似于浏览器的功能,通过 AIDL实现宿主和webApp的通信。为了安全考虑,webApp的权限等都需要通过宿 主进行代理请求。通过代理系统类,实现webApp在宿主中的安装、卸载,从而实 现可以在线上实时更新webview各种加载优化策略的方案。

本发明提出的基于虚拟多开的webview加载优化方案,在宿主App启动后, 对需要的多开系统类进行代理。在合适的时机,根据业务进行不同类型的webApp 的预安装和预启动。安装时在宿主的安全沙箱内通过代理的系统安装类。若都是 不同类型的webApp,可以通过安装在同一安全沙盒内;若是同一类型的webApp, 则需要通过多用户路径进行webApp的安装。启动时,通过多开新的进程,并通过 代理的系统类启动目标webApp。多开的webApp通过自定义aidlBridge与宿主进 行跨进程通信和数据传递。基于安全考虑,webApp申请使用的权限,需要通过 aidlBridge通过宿主代理后进行申请,同样webApp申请的权限不得多于宿主在 Androidmanifest中注册的。

在宿主App启动后,首先对多开需要的安装卸载、启动需要的系统类进行代 理。

在合适的时机,根据业务需要对不同类型的webApp进行预安装。通过预置或 者网络,获取需要预安装的webApp。通过代理的系统的类将不同类型或同一类型 的多个webApp,安装到同一或者不同的安全沙盒内。通过代理安装的webApp,实 际上安装到了宿主内部的安全沙盒,不会在桌面产生图标。

启动webApp的时候判断当前进程池是否有空闲的目标进程。若有,则复用进 程,加速打开。若没有,则新开进程,将webApp运行在新的进程中。通过新开进 程的形式,可以实现同一时间运行多个同一类型的webApp。

webApp通过自定义的aidlBridge与宿主进行跨进程通信和数据交换,通过自 定义的数据解析器,对数据进行解析。webApp需要用到的权限,同样需要通过 aidlBridge,通过宿主代为申请。基于安全和个人信息保护的原则,webApp申请 的权限不得多于宿主在Androidmanifest中注册的。

当安装的webApp有新的更新时,可以下载新的更新包,然后通过系统代理类 进行webApp的升级安装。

以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非 用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、 等同替换、改进等,均包含在本发明的保护范围内。

相关技术
  • 一种基于虚拟多开的webview加载优化方法
  • 一种基于热度算法的webview缓存优化方法
技术分类

06120113793141