一、Webview常见的一些坑

1.Android API level 16以及之前的版本存在远程代码执行安全漏洞,该漏洞源于程序没有正确限制使用Webview.addJavaScriptInterface方法,远程攻击者可通过反射利用该漏洞执行任意Java对象的方法。

2.当Webview是在代码中动态添加的,比如添加在LinearLayout中,在onDestroy()方法中,需先将Webview从LinearLayout中移除掉,不然会造成内存泄漏。

3.jsbridge:通过JavaScript搭一座桥,可以通过本地native代码可以调用远端JS的代码,同时也可以让远端JS的代码调用本地native的代码。

4.webviewClient.onPageFinished是判断网页又没有加载完成时调用的,当网页没有加载完成时就跳转页面,该方法将会调用无数次。建议使用WebChromeClient.onProgressChanged方法。

5.后台耗电,开启webview之后会自动开启后台线程,如果没有很好将webview销毁的话,这些线程将会一直运行。

6.webview硬件加速导致页面渲染问题,容易出现页面加载白块和页面闪烁的现象,解决方法是设置暂时关闭硬件加速。

二、关于webview的内存泄漏问题

问题原因 :webview会与Activity进行关联,webview执行的操作是在新的线程中进行的,Activity的生命周期和新线程的生命周期是不一样的,导致webview会一直持有Activity的引用,不能回收。

解决方法 :

1.单独开启一个进程给webview进行操作,简单暴力,不过可能涉及到进程间通信。

2.动态添加webview,对传入的webview中使用Context的弱引用,在布局创建个ViewGroup用来放置webview,Activity创建时add进来,Activity停止时remove掉。

html5 webview面试,(五)Webview面试问题相关推荐

  1. iOS面试- 0x02 WebView

    有了UIWebView,为什么还需要WKWebView? UIWebVieW的缺点: 笨重难用.内存泄露.内存消耗大,性能差 -- WKWebView提高性能 WKWebView 拥有60fps滚动刷 ...

  2. 五天面试 Google、Facebook、Airbnb 等硅谷五家顶级公司,我是如何都拿到 Offer 的

    编者按: God helps those who help themselves! 在 2017 年 7 月 24 日至 28 日的五天里,一位华裔技术工程师曾笑寒连续面试了 LinkedIn.Sal ...

  3. synchronized 面试五连击

    synchronized 面试五连击 目录 说一说自己对于 synchronized 关键字的了解 说说自己怎么使用 synchronized 关键字的,在项目中用到了吗 说一下 synchroniz ...

  4. java开发五年面试经验_只有经验丰富的开发人员才能教您有关Java的5件事

    java开发五年面试经验 深入研究Java之前需要了解的所有内容的概述 有许多工具,方法,环境和功能会改变您处理代码的方式,而这些通常是在学年期间不会遇到的. 虽然它在Java开发世界中迈出了第一步, ...

  5. android sdk 封装html5,Android平台以WebView方式集成HTML5+SDK方法

    HTML5+ SDK 可以按照"独立应用"和"单页面"两种种方式进行集成,两种集成方式各有优点. 独立应用集成方式:即Widget集成方式,开发者在集成后可在需 ...

  6. 【三年面试五年模拟】算法工程师的独孤九剑秘籍(前十二式汇总篇)V1版

    写在前面 [三年面试五年模拟]栏目专注于分享AI行业中实习/校招/社招维度的必备面积知识点与面试方法,并向着更实战,更真实,更从容的方向不断优化迭代.也欢迎大家提出宝贵的意见或优化ideas,一起交流 ...

  7. 五次面试,程序员的悲催轮回

    前言:本文是<四次面试,程序员越来越悲催了>的修改版,第五次面试,会是怎么样呢? 01 静态网页时代 张大胖V1.0 毕业了, 去一家公司面试. "会做网站吗?" &q ...

  8. 五天面试五家硅谷顶尖公司并拿到五个Offer

    大佬五天面试五家硅谷顶尖公司,包括领英(LinkedIn),Google,Facebook等,下面是他的求职经验. 原文链接:I interviewed at five top companies i ...

  9. 【三年面试五年模拟】算法工程师的独孤九剑秘籍(前六式汇总篇)V1版

    Rocky Ding 公众号:WeThinkIn 写在前面 [三年面试五年模拟]栏目专注于分享CV算法与机器学习相关的经典&&必备&&高价值的面试知识点,并向着更实战, ...

  10. 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试五十题

    九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试五十题 (欢迎加入十月面试题集训组,参与讨论&解题:193308452) 引言 自发表上一篇文章至今(事实上,上篇文章更新了近3个月之久), ...

最新文章

  1. html中设置表格单实线,css实现表格实线的方法
  2. 7 orm 有批量更新_ORM之SQLAlchemy
  3. linux vim 字体大小,Linux学习—vim大全
  4. LAMP(4)Apach和php结合、Apache默认虚拟主机
  5. 快递公司快递单号规律总结
  6. oracle z中rowid,oracle 10g中的ROWID
  7. 算法竞赛入门经典(第二版) | 例题5-3 安迪的第一个字典 (紫书牛啤!)(UVa10815,Andy's First Dictionary)
  8. 什么叫云服务器_什么叫云计算,云计算是什么,最通俗的解释是这样的
  9. linux mysql 挂马_linux服务器被挂马
  10. 一个基于链表的内存管理方案
  11. java dll 调用方法_关于Java调用dll的方法 | 学步园
  12. 20款优秀的可以替代桌面软件的Web应用(转载自JavaEye)
  13. android代码混淆作用,Android代码混淆
  14. 在visio里面插入带圆圈的数字字符
  15. 电脑右键新建没有文本文档解决办法
  16. rl滤波器原理_滤波器基本知识
  17. arcgis裁剪失败
  18. win10制作dos启动U盘
  19. u盘在电脑上读不出来?从这几方面排查
  20. 不平衡数据集评价指标及常用解决方法

热门文章

  1. Gradle笔记_3-依赖管理
  2. 北漂十年回忆录|00 开篇
  3. 微信小程序手机端报错MiniProgramError\n[object Object]
  4. 2022-2028全球与中国鼻部护理市场现状及未来发展趋势
  5. 转换编码格式(纯c语言)
  6. 易语言POST专题-GET POST 区别详解
  7. html table表格标签内容如何居中显示?表格的align属性的用法介绍
  8. git clone出现 fatal: unable to access ‘https://github.com/...
  9. win10 失败pytorch安装笔记
  10. 迅雷5.9.1.922去广告方法和补丁