WebView相关面试题
1、如何提高WebView加载速度
美团技术分享
WebView启动过程大概分为以下几个阶段:
App中打开WebView的第一步并不是建立连接,而是启动浏览器内核。
优化手段围绕着以下两个点进行:
预加载WebView。
加载WebView的同时,请求H5页面数据。
常见的方法是全局WebView,在客户端刚启动时,就初始化一个全局的WebView待用,并隐藏;这种方法可以比较有效的减少WebView在App中的首次打开时间。当用户访问页面时,不需要初始化WebView的时间。
当然这也带来了一些问题,包括:
- 额外的内存消耗。
- 页面间跳转需要清空上一个页面的痕迹,更容易内存泄露。
- 客户端代理页面请求WebView初始化完成后向客户端请求数据
- 在客户端初始化WebView的同时,直接由native开始网络请求数据;
- 当页面初始化完成后,向native获取其代理请求的数据。
- asset存放离线包。
除此之外还有一些其他的优化手段:
- DNS和链接慢:
- 想办法复用客户端使用的域名和链接,可以让客户端复用使用的域名与链接。
- DNS采用和客户端API相同的域名
- DNS会在系统级别进行缓存,对于WebView的地址,如果使用的域名与native的API相同,则可以直接使用缓存的DNS而不用再发起请求图片。
- 脚本执行慢:可以把框架代码拆分出来,在请求页面之前就执行好。
- 后端处理慢:可以让服务器分trunk输出,在后端计算的同时前端也加载网络静态资源。
2、WebView与 js的交互
Android去调用JS的代码:
通过WebView的loadUrl()
通过WebView的evaluateJavascript()
JS调用Android代码的方法:
通过WebView的addJavascriptInterface()进行对象映射
通过 WebViewClient 的shouldOverrideUrlLoading ()方法回调拦截 url
Android通过 WebChromeClient 的onJsAlert()、onJsConfirm()、onJsPrompt(方法回调分别拦截JS对话框(即上述三个方法),得到他们的消息内容,然后解析即可。
3、WebView的漏洞
Android WebView常见的安全漏洞和解决方案
4、JsBridge原理
JSBridge的原理
WebView相关面试题相关推荐
- View的实现和优化相关面试题
1-ListView优化?ListView如何提高其效率? 1. Item布局,层级越少越好,使用hierarchyview工具查看优化. 2. 复用convertView ,使用历史的view 3. ...
- Java Web 相关面试题总结
为什么80%的码农都做不了架构师?>>> Spring 相关的的面试题 1.什么是 IoC 容器? 2.解释下 Spring Bean 的生命周期 IoC 容器是 Spring ...
- Android性能优化面试题,与性能优化相关面试题 - 与IPC机制相关面试题 - 《Android面试宝典》 - 书栈网 · BookStack...
源码分析相关面试题 Activity相关面试题 与XMPP相关面试题 与性能优化相关面试题 与登录相关面试题 与开发相关面试题 与人事相关面试题 与人事相关面试题现在三四月份,金三银四最好找工作时间, ...
- Vue相关面试题及答案分享
Web前端重点技能是什么?Vue相关面试题有哪些?Vue是一套构建用户界面的渐进式框架,具有简单易用.性能好.前后端分离等优势,是Web前端工程师工作的好帮手,也是企业选拔人才时考察的重点技能.接下来 ...
- c++多态相关面试题
c++多态相关面试题 面试题1:请谈谈你对多态的理解? 面试题2:谈谈C++编译器是如何实现多态 ? 面试题3:谈谈你对重写,重载理解? 面试题4:为什么要定义虚析构函数? 面试题1:请谈谈你对多态的 ...
- vue如何获取年月日_好程序员web前端教程分享Vue相关面试题
好程序员web前端教程分享Vue相关面试题,Vue是一套构建用户界面的渐进式框架,具有简单易用.性能好.前后端分离等优势,是web前端工程师工作的好帮手,也是企业选拔人才时考察的重点技能.接下来好程序 ...
- 编写算法判别给定二叉树是否为完全二叉树_别找了,链表和二叉树相关面试题以及解答,我都给你们找好了...
来源公众号:苦逼的码农 作者:帅地 无论是在面试还是在平时的做题中,链表相关算法题以及二叉树相关算法题,可以说是考的非常非常多的.我在 2019 的秋招面试中,也是遇到了好几次.为此,我总结了 9 道 ...
- Mybatis执行流程、缓存原理以及相关面试题
一.Mybatis执行流程 具体分析Mybatis是如何操作数据库的! . 1.定义我们的核心配置文件的路径,这个路径是从target/classes下开始找的! String config = &q ...
- MySQL索引分析以及相关面试题
可以在我的个人博客阅读文章,排版会美观一些:文章地址 1. 什么是索引 一种能帮助mysql提高查询效率的数据结构:索引数据结构 索引优点: 大大提高数据查询速度 索引缺点: 维护索引需要耗费数据库资 ...
最新文章
- LINUX TOP,不是这样玩地!!!
- java集合代码_Java-集合(示例代码)
- ListView控件学习系列2-编辑ListView(Edit,Update,Insert,Delete)
- Opencv--Mat类型ROI的设置
- mybais逆向工程快速生成实体和基本xml
- 用xib自定义UIView并在代码中使用--iOS
- C++中获得文件大小
- python post cookies_python 之post、get与cookie实战
- @程序员,一文掌握 Web 应用中的图片优化技巧!
- 令人赞叹的 MySQL
- WinDbg蓝屏分析入门
- 面向车路协同的路侧感知仿真系统
- JVM垃圾回收机制,万字详解
- 东北四省赛 Spell Boost
- 机器学习实战——xgboost股票close预测
- 什么是UI?就业前景如何?
- Android Studio App开发之循环试图RecyclerView,布局管理器LayoutManager、动态更新循环视图讲解及实战(附源码)
- HDU OJ 1998. 奇数阶幻方
- 交易系统订单存在的意义
- Codeforces gym101981 (2018 icpc 南京站) B.Tournament
热门文章
- linux-macbook内核,学习linux用macbook好吗
- 酷瓜云课堂(腾讯云版)v1.2.7 发布 - 钉钉机器人群通知
- STC15W404AS没有定时器1
- 数据库规范化 (1NF, 2NF, 3NF, BCNF)
- 计算机网络原理总结(英文版 第五版) Chapter1
- com.sun.javaws.Main.launchApp 无法加载制定文件jnlp文件
- 手把手教你带货直播源码实现直播功能,不依赖第三方SDK
- C# Cookie跨域实例
- 2013年二年级语文上册分类复习资料
- 自己动手在阿里云服务器上搭建一套zabbix+grafana监控系统