IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> WebView优化、Hybrid方案 -> 正文阅读

[移动开发]WebView优化、Hybrid方案

目的

  1. 加快网络请求,提升页面首屏加载速度

WebView 新手指引

WebView加载简化版时间线

1、start -> 2、webview实例化 -> 3、loadUrl/loadHtml -> 4、js/html解析 -> 5、pageStart -> 6、网络请求 -> 7、前端dom首屏渲染 -> 8、pageFinish -> 9、页面展示

市场中加快速度解决方案

  1. webview 缓存池(代表:头条、百度,很多公司都在处理)
    1. 通过池管理webview,减少webview实例化时间(android原生webview冷启300~500ms,热启webview100~200ms)
    2. 提前对webview进行预热,提价加载对应的js前端框架
  2. 拦截图片资源,使用初始底图显示,然后异步更新h5图片(代表:头条)
    1. 头条样例:https://www.jianshu.com/p/85e4f982cbdf
    2. 解决的问题:防止图片网络请求,阻塞webview线程加载资源
  3. 离线包方式。前端除时效性较高资源其他资源离线打包,减少即时网络请求(代表:结合业务场景若干)
    1. 需要处理动态域名,解决跨域问题
    2. 对前端打包有侵入性
  4. webview内核优化(代表:腾讯、百度,成本大不适用于小公司)
    1. 腾讯x5,官网是说可优化速度,但本人未做过调研
    2. 内核层面自定义缓存管理
  5. html提前到第1步开始下载,本地和网络做diff,差量更新(代表:腾讯)
    1. 腾讯开源框架:https://github.com/Tencent/VasSonic/blob/master/assets/sonic%E5%8F%91%E5%B1%95%E5%8E%86%E7%A8%8B.md
    2. 缺点:业务侵入性太大。需要后端、前端、native整体改造
  6. 扩大webview缓存size
    1. 默认webview cache size 小于4.4 10M,大于4.4 20M :https://android.googlesource.com/platform/external/webkit/+/jb-mr2-release/Source/WebKit/android/WebCoreSupport/WebCache.cpp
    2. 可使用okhttp代理,但是大数据量可能有性能问题(数据请求串行执行)。原生webview使用的db方式管理缓存,更快速。好处是cache规则不需要自己管理,可快速接入
  7. 预加载/预热资源
    1. 提前在闲时进行资源的局部、全部预加载,方式可根据自己的技术方案进行处理
    2. 优势:大幅度提升显示速度
    3. 缺点:
      1. 需要根据机型性能管理内存、磁盘缓存
      2. 需要管理预加载时机,尽量闲时预加载
      3. 对数据的时效性也要把关
  8. 网络请求提前。数据提前在步骤1时提前加载,步骤7时直接使用
    1. 优势:可和步骤1~6并发处理
    2. 缺点:和h5业务耦合性比较大,需要处理极端情况

常见大厂技术方案(注意文章发布时间)

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 10:56:29  更:2021-09-07 10:58:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 16:52:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码