Android允许一个app同时存在多个进程,可以根据需要把不同的模块放到不同进程中处理。

一、WebView独立进程的好处

1.有效增大App的运存,减少由webview引起的内存泄露对主进程内存的占用。

2.避免WebView的Crash影响App主进程的运行。

3.拥有对WebView独立进程操控权。

弊端:WebView进程与其他进程通讯的方式,把webview独立进程之后会发现,埋点功能和接收主进程数据都不正常了,这里就涉及到进程间通讯的问题了;
进程通讯大概就是这几种,aidl,messager,content provider,广播;

二、webview的配置

下面贴上我自己的配置代码:

 public class WebViewConfig {

     //初始化WebView配置
public static void initWebViewConfig(WebView webview) {
// 设置WebView初始化尺寸,参数为百分比
webview.setInitialScale();
//设置WebView可触摸放大缩小
webview.getSettings().setSupportZoom(true);
webview.getSettings().setBuiltInZoomControls(true);
//WebView双击变大,再双击后变小,当手动放大后,双击可以恢复到原始大小
webview.getSettings().setUseWideViewPort(true);
// 获取WebSettings对象
WebSettings webSettings = webview.getSettings();
// 设置WebView支持运行普通的Javascript
webSettings.setJavaScriptEnabled(true);
// 设置WebChromeClient,以支持运行特殊的Javascript
webview.setWebChromeClient(new WebChromeClient() {
@Override
public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
return super.onJsAlert(view, url, message, result);
}
});
//(默认)根据cache-control决定是否从网络上取数据。
webSettings.setCacheMode(LOAD_DEFAULT);
// 阻止网络图片加載
webview.getSettings().setBlockNetworkImage(false);
} //销毁资源
public static void destroy(WebView webview) {
webview.stopLoading(); //停止加载
((ViewGroup) webview.getParent()).removeView(webview); //把webview从视图中移除
webview.removeAllViews(); //移除webview上子view
webview.clearCache(true); //清除缓存
webview.clearHistory(); //清除历史
webview.destroy(); //销毁webview自身
//Process.killProcess(Process.myPid()); //杀死WebView所在的进程
}
}

三、清单文件中,声明一下 process属性

 <activity
android:name=".ui.details.WebViewActivity"
android:process=":webview"
android:screenOrientation="portrait" />

WebView性能优化--独立进程的更多相关文章

  1. [PHP] – 性能优化 – Fcgi进程及PHP解析优化

    https://www.abcdocker.com/abcdocker/808------[PHP] – 性能优化 – Fcgi进程及PHP解析优化

  2. 性能优化-service进程防杀

    service作为后台服务,其重要性不言而喻,但很多时候service会被杀死,从而失去了我们原本想要其发挥的作用,在这种情况下我们该如何确保我们的service不被杀死就是本节需要讨论的内容了 se ...

  3. WebView性能、体验分析与优化

    育新 徐宏 嘉洁 ·2017-06-09 20:03 在App开发中,内嵌WebView始终占有着一席之地.它能以较低的成本实现Android.iOS和Web的复用,也可以冠冕堂皇的突破苹果对热更新的 ...

  4. Android性能优化之利用LeakCanary检测内存泄漏及解决办法

    前言: 最近公司C轮融资成功了,移动团队准备扩大一下,需要招聘Android开发工程师,陆陆续续面试了几位Android应聘者,面试过程中聊到性能优化中如何避免内存泄漏问题时,很少有人全面的回答上来. ...

  5. 【腾讯Bugly干货分享】Android性能优化典范——第6季

    本文来自于腾讯bugly开发者社区,非经作者同意,请勿转载,原文地址:http://dev.qq.com/topic/580d91208d80e49771f0a07c 导语 这里是Android性能优 ...

  6. Unity性能优化(4)-官方教程Optimizing graphics rendering in Unity games翻译

    本文是Unity官方教程,性能优化系列的第四篇<Optimizing graphics rendering in Unity games>的翻译. 相关文章: Unity性能优化(1)-官 ...

  7. Java内存模型及性能优化

    最近在做一个项目的性能优化,遇到好多以前没有关注过的性能问题,一头雾水,今天做个笔记,简单记录下JVM相关的参数设置. 一.JVM内存模型 首先介绍下Java程序具体执行的过程: Java源代码文件( ...

  8. MYSQL性能优化的最佳20+条经验

    MYSQL性能优化的最佳20+条经验 2009年11月27日 陈皓 评论 148 条评论  131,702 人阅读 今天,数据库的操作越来越成为整个应用的性能瓶颈了,这点对于Web应用尤其明显.关于数 ...

  9. Android应用性能优化(转)

    人类大脑与眼睛对一个画面的连贯性感知其实是有一个界限的,譬如我们看电影会觉得画面很自然连贯(帧率为24fps),用手机当然也需要感知屏幕操作的连贯性(尤其是动画过度),所以Android索性就把达到这 ...

随机推荐

  1. Java泛型类和泛型方法

    java编程思想说道: 泛型类是应用在整个类上,但同时可以在类中包含参数化方法,而这个方法所在的类可以是泛型,也可以不是泛型,也就是说是否有泛型方法,与其所在的类是否是泛型类没有关系. 泛型方法是的该 ...

  2. ASPNET5 依赖注入(Dependency Injection)

    依赖注入一直是asp.net web框架(Web API,SignalR and MVC)中不可或缺的一部分,但是在以前,这个框架都是各自升级,都有各自的依赖注入实现方式,即使Katana项目想通过O ...

  3. vim编辑操作

    vim    插入模式        a    光标后        A    行尾        o    光标所在行下一行        O    光标所在行上一行        i    光标前 ...

  4. iOS学习——获取当前最顶层的ViewController

    在iOS开发过程中,我们经常性会需要获取当前页面的ViewController,然后利用ViewController进行一些操作,例如在最顶层的ViewController上展示一个UIAlertCo ...

  5. Web Magic设计思想

    1.1 设计思想 1. 一个框架,一个领域 一个好的框架必然凝聚了领域知识.WebMagic的设计参考了业界最优秀的爬虫Scrapy,而实现则应用了HttpClient.Jsoup等Java世界最成熟 ...

  6. mysql主从配置主主配置

    一.     概述  MySQL从3.23.15版本以后提供数据库复制(replication)功能,利用该功能可以实现两个数据库同步.主从模式.互相备份模式的功能.本文档主要阐述了如何在linux系 ...

  7. alibaba架包FastJson使用例子

    alibaba的架包FastJson可以对json字符串进行快捷的类型转换.下面是一些各种类型转换的使用例子. 一.下载FastJson的架包,并导入项目中,如下: Maven项目pom.xml配置如 ...

  8. mybatis-spring最新版下载地址

    mybatis-spring最新版下载地址: http://mvnrepository.com/artifact/org.mybatis/mybatis-spring/1.2.3 mybatis-sp ...

  9. Java NIO之网络编程

    最近在研究Java NIO和netty,曾经一度感觉很吃力,根本原因还是对操作系统.TCP/IP.socket编程的理解不到位. 不禁感叹,还是当初逃的课太多. 假如上天给我一次机会,能够再回到意气风 ...

  10. c#实现Word转换PNG图片

    由于项目需要,经过一些大神的指导以及github,stackOverflow找资料,写了个这么个程序. 主要是因为word文档有特殊字体,特殊字体处理就要用到EnhMetaFileBits,即获取一页 ...