随着app的迭代,嵌入的html5界面越来越多了,Webview这个强大组件引起的问题越发的多起来,例如:
1、WebView导致的oom问题
2、Android版本不同,采用了不同的内核,兼容性crash
3、不同版本实现不同,甚至URI不规范也会引起不同程度的问题
为了解决以上问题,我们把WebView模块做成独立进程
WebView独立进程
Android允许一个app同时存在多个进程,可以根据需要把不同的模块放到不同进程中处理。
比如微信v2.X+版本的时候把Network部分做轻重进程分离,独立到一个单独的进程(:push)中,而上面两个层级依然跑在微信的主进程(:workder)中。而对于有内存泄露问题的webview或者其他不频繁使用的功能,再把其分离到独立的工具进程(:tools)中。通过分离进程,微信第一次重构解决了系统因为微信资源消耗,主动干掉微信服务的困境。
WebView独立进程的好处
有效增大App的运存,减少由webview引起的内存泄露对主进程内存的占用。