Android webview 缓存总结

最近做的项目中,遇到了解决webview加载网络留下的缓存的问题。大致总结一下:

摘要:webview的缓存分为页面缓存和数据缓存,这些都可以通过webview相关的api来设置,如webviewSetting就有相关的api来设置其缓存机制。

webview在加载网页时,会在/data/data/you_package_name/cache/  和 /data/data/you_package_name/database/ 这两个文件夹下建立相应的缓存文件。

注意:这两个文件夹是整个应用存储缓存的地址,并不是为了webview缓存而建立。

如图,我没启动webview加载网页前,这两个文件夹就已经存在了,这两个文件跟页面缓存有关

但是因为没有启动webview加载网页,所有没有webview对应的缓存文件存在:


1、页面缓存

页面缓存是指在加载html页面的过程中的html,js,css等页面内容和资源数据,页面缓存是由浏览器行为而产生(这点我也验证了下,不管你在android代码中是否设置了mWebSetting.setCacheMode(WebSettings.LOAD_NO_CACHE);页面缓存都会产生,),网页开发者可以通过配置HTTP响应头来影响浏览器的行为,进而间接的影响到

页面缓存数据。如:www.taobao.com的网页中设置了cache-control为no-cache,这样就能影响到webview的页面缓存。

       页面缓存路径:

       前面提到了,android中没有api来设置是否进行页面缓存,也没有设置路径的api,这是浏览器的默认行为。页面缓存有两个路径,都在/data/data/package_name/下,一个是/data/data/you_package_name/cache/  和 /data/data/you_package_name/database/。

/data/data/you_package_name/cache/

 /data/data/you_package_name/database/

  


         



我们请求的Url记录是保存在databases下的db文件里。而url的内容保存在cache下的XXXwebviewCacheXXX文件夹下的文件里。也就是说,

网页的索引方在databases下的db文件里,而它们的文件存在/data/data/you_package_name/cache/XXXwebviewCacheXXX里面,文件夹的

名字在2.x和4.x上有所不同,但是都包含webviewCache。


缓存模式

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值