一、webView 常见的坑
1.Android API level 16 以及之前的版本存在远程代码执行漏洞,该漏洞源于程序没有正确的限时使用webview.addjavaScriptInterface方法,远程攻击者可以通过使用java 反射Api利用该漏洞执行任意的java对象的方法
2.webView 再布局文件中的使用:webveiw写在其他容器中时,如相对布局中时,需要向remove 掉webview以后再执行webview的destory()方法
3.jsbridge
4.webViewClient.onPageFinished和WebChromeClient.onProgressChanged
页面加载完成的回调最好使用第二种。
5.后台耗电 解决方案:Activity再destory()时候webview一定要销毁掉
6.WebView硬件加速导致页面渲染问题 例如白块,解决方式:设置webView 关闭硬件加速
二、关于webview的内存泄漏问题
1.webview依附activity存在,可能持有activity引用,造成内存泄漏 解决方案:独立进程,简单暴力,有可能面临进程间通信问题
2.动态添加webveiw(在布局中创建ViewGroup用来放置webveiw),对传入webview中使用的Context使用弱引用。Activity创建时候add添加,在destory()时候remove()移除。
网友评论