html5 webview面试,(五)Webview面试问题
一、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面试问题相关推荐
- iOS面试- 0x02 WebView
有了UIWebView,为什么还需要WKWebView? UIWebVieW的缺点: 笨重难用.内存泄露.内存消耗大,性能差 -- WKWebView提高性能 WKWebView 拥有60fps滚动刷 ...
- 五天面试 Google、Facebook、Airbnb 等硅谷五家顶级公司,我是如何都拿到 Offer 的
编者按: God helps those who help themselves! 在 2017 年 7 月 24 日至 28 日的五天里,一位华裔技术工程师曾笑寒连续面试了 LinkedIn.Sal ...
- synchronized 面试五连击
synchronized 面试五连击 目录 说一说自己对于 synchronized 关键字的了解 说说自己怎么使用 synchronized 关键字的,在项目中用到了吗 说一下 synchroniz ...
- java开发五年面试经验_只有经验丰富的开发人员才能教您有关Java的5件事
java开发五年面试经验 深入研究Java之前需要了解的所有内容的概述 有许多工具,方法,环境和功能会改变您处理代码的方式,而这些通常是在学年期间不会遇到的. 虽然它在Java开发世界中迈出了第一步, ...
- android sdk 封装html5,Android平台以WebView方式集成HTML5+SDK方法
HTML5+ SDK 可以按照"独立应用"和"单页面"两种种方式进行集成,两种集成方式各有优点. 独立应用集成方式:即Widget集成方式,开发者在集成后可在需 ...
- 【三年面试五年模拟】算法工程师的独孤九剑秘籍(前十二式汇总篇)V1版
写在前面 [三年面试五年模拟]栏目专注于分享AI行业中实习/校招/社招维度的必备面积知识点与面试方法,并向着更实战,更真实,更从容的方向不断优化迭代.也欢迎大家提出宝贵的意见或优化ideas,一起交流 ...
- 五次面试,程序员的悲催轮回
前言:本文是<四次面试,程序员越来越悲催了>的修改版,第五次面试,会是怎么样呢? 01 静态网页时代 张大胖V1.0 毕业了, 去一家公司面试. "会做网站吗?" &q ...
- 五天面试五家硅谷顶尖公司并拿到五个Offer
大佬五天面试五家硅谷顶尖公司,包括领英(LinkedIn),Google,Facebook等,下面是他的求职经验. 原文链接:I interviewed at five top companies i ...
- 【三年面试五年模拟】算法工程师的独孤九剑秘籍(前六式汇总篇)V1版
Rocky Ding 公众号:WeThinkIn 写在前面 [三年面试五年模拟]栏目专注于分享CV算法与机器学习相关的经典&&必备&&高价值的面试知识点,并向着更实战, ...
- 九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试五十题
九月十月百度人搜,阿里巴巴,腾讯华为小米搜狗笔试面试五十题 (欢迎加入十月面试题集训组,参与讨论&解题:193308452) 引言 自发表上一篇文章至今(事实上,上篇文章更新了近3个月之久), ...
最新文章
- html中设置表格单实线,css实现表格实线的方法
- 7 orm 有批量更新_ORM之SQLAlchemy
- linux vim 字体大小,Linux学习—vim大全
- LAMP(4)Apach和php结合、Apache默认虚拟主机
- 快递公司快递单号规律总结
- oracle z中rowid,oracle 10g中的ROWID
- 算法竞赛入门经典(第二版) | 例题5-3 安迪的第一个字典 (紫书牛啤!)(UVa10815,Andy's First Dictionary)
- 什么叫云服务器_什么叫云计算,云计算是什么,最通俗的解释是这样的
- linux mysql 挂马_linux服务器被挂马
- 一个基于链表的内存管理方案
- java dll 调用方法_关于Java调用dll的方法 | 学步园
- 20款优秀的可以替代桌面软件的Web应用(转载自JavaEye)
- android代码混淆作用,Android代码混淆
- 在visio里面插入带圆圈的数字字符
- 电脑右键新建没有文本文档解决办法
- rl滤波器原理_滤波器基本知识
- arcgis裁剪失败
- win10制作dos启动U盘
- u盘在电脑上读不出来?从这几方面排查
- 不平衡数据集评价指标及常用解决方法
热门文章
- Gradle笔记_3-依赖管理
- 北漂十年回忆录|00 开篇
- 微信小程序手机端报错MiniProgramError\n[object Object]
- 2022-2028全球与中国鼻部护理市场现状及未来发展趋势
- 转换编码格式(纯c语言)
- 易语言POST专题-GET POST 区别详解
- html table表格标签内容如何居中显示?表格的align属性的用法介绍
- git clone出现 fatal: unable to access ‘https://github.com/...
- win10 失败pytorch安装笔记
- 迅雷5.9.1.922去广告方法和补丁