Nixo Home

[Untitled Post]

字数统计: 338阅读时长: 1 min
2019/07/24 Share

title WebView面试详解

#WebView常见的坑

  • 在API16之前,会出现远程代码执行安全漏洞问题,因为该应用没有正确限制使用addJavaScripInterface方法导致远程攻击者可以使用Java反射任意调用java方法

-webview写在其他容器中时,销毁时需要将webview remove掉,然后释放资源,才能将webview真正的释放掉,不然会导致内存泄漏
-WebViewClient.onPageFinished()在web跳转时可能会被调用无数次,所以推荐使用WebChromeClient.onProgressChanged
-后台耗电 webview会自己开启线程,如果webview没有彻底销毁的话,这些线程会一直在后台运行,导致耗电

  • webview硬件加速导致页面渲染导致webView产生白块,以及闪烁问题,解决该问题只能关闭硬件加速

#WebView内存泄漏问题
内存泄漏问题是因为WebView会创建一个新的线程来加载,Thread与Activity生命周期是不同步的,可能导致Activity销毁的时候webView还在持有Activity的引用,导致内存泄漏问题

  • 独立进程,简单暴力,但是要进行进程间通讯(减少主进程的内存容量,不使用时直接干掉进程即可)
  • 对Context进行弱引用,在Activity中创建ViewGroup,使用时将webView AddView进来,不用的时候remove掉
CATALOG
  1. 1. title WebView面试详解