码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Android面试八股文】WebView如何做资源缓存的?


    文章目录

    • 引言
    • 1. Android WebView的性能问题
      • 1.1 H5页面加载速度慢
        • 1.1.1 渲染速度慢
        • 1.1.2 页面资源加载缓慢
        • 1.1.3 总结
      • 1.2 耗费流量
      • 1.3 总结
    • 2. 上述问题的解决方案
      • 2.1 前端H5的缓存机制
        • 2.1.1 定义
        • 2.1.2 作用
        • 2.1.3 具体应用
      • 2.2 缓存机制
        • 2.2.1 浏览器缓存机制 (HTTP Cache)
          • 原理
          • 特点
          • 应用场景
          • 具体实现
          • 使用
        • 2.2.2 Application Cache 缓存机制
          • 原理
          • 特点
          • 应用场景
          • 使用
        • 2.2.3 DOM Storage 缓存机制
          • 原理
          • 特点
          • 应用场景
          • 使用
        • 2.2.4 Web SQL Database 缓存机制
          • 原理
          • 特点
          • 应用场景
          • 使用
          • 特别说明
        • 2.2.5 Indexed Database 缓存机制
          • 原理
          • 特点
          • 应用场景
          • 使用
        • 2.2.6 File System 缓存机制
          • 原理
          • 特点
          • 应用场景
          • 具体使用
      • 结论

    引言

    Android WebView是一个强大的组件,允许应用程序嵌入和渲染Web内容。然而,在实际使用中,开发者常常面临一些性能问题,例如H5页面加载速度慢以及流量消耗过大。本文将探讨这些问题,并提供针对性的解决方案,着重介绍Android WebView自带的五种缓存机制。

    1. Android WebView的性能问题

    1.1 H5页面加载速度慢

    加载速度慢的原因可能包括网络延迟、资源加载时间长(如图片、脚本等)及复杂的DOM结构等。当WebView加载一个复杂的H5页面时,用户体验可能会受到很大影响。

    1.1.1 渲染速度慢

    前端H5页面渲染的速度取决于两个方面:

    • Js 解析效率
      Js 本身的解析过程复杂、解析速度不快 & 前端页面涉及较多 JS 代码文件,所以叠加起来会导致 Js 解析效率非常低
    • 手机硬件设备的性能
      由于Android机型碎片化,这导致手机硬件设备的性能不可控,而大多数的Android手机硬件设备无法达到很好很好的硬件性能

    总结:上述两个原因 导致 H5页面的渲染速度慢。

    1.1.2 页面资源加载缓慢

    H5 页面从服务器获得,并存储在 Android手机内存里:

    • 相关阅读:
      02-PG配置文件说明
      STL 上头系列——list 容器详解
      DSP开发例程(3): sys_print_to_uart
      卷积神经网络基础
      Spring之BeanFactoryPostProcessor(bean工厂后置处理器)
      [附源码]java毕业设计线上图书销售管理系统
      仅此一招,再无消息乱序的烦恼
      git学习笔记——分支、commit版本切换篇
      huggingface Tokenizers 官网文档学习:分词算法分类与五个子词级分词算法
      【小程序】集成echarts问题记录
    • 原文地址:https://blog.csdn.net/qq446282412/article/details/139942988
    • 最新文章
    • 沪漂五周年了:我越来越迷茫了
      Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
      MySQL-Seconds_behind_master的精度误差
      [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
      AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
      Agent OS :五种驯服不确定性的范式
      PortSwigger SQL注入LAB11
      数据库即时编译JIT
      [Begin]AI Learn Data Day 0
      深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
    • 热门文章
    • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
      奉劝各位学弟学妹们,该打造你的技术影响力了!
      五年了,我在 CSDN 的两个一百万。
      Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
      面试官都震惊,你这网络基础可以啊!
      你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
      心情不好的时候,用 Python 画棵樱花树送给自己吧
      通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
      13 万字 C 语言从入门到精通保姆级教程2021 年版
      10行代码集2000张美女图,Python爬虫120例,再上征途
    小工具 小游戏
    Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

    京公网安备 11010502049817号