Android WebView缓存目录(data_1、f_000001等)中的文件格式是什么?

Android WebView缓存目录(data_1、f_000001等)中的文件格式是什么?,android,file,caching,webview,Android,File,Caching,Webview,我在WebView的帮助下创建了一个基本的浏览器 当我访问一个网站(包含一些文本和一些图像)时,/data/data/com.mayexample/cache/webviewcacheCromium中的缓存目录会被一些名为index、data_0、data_1、data_2、f_00001、f_00002等的文件填满 我想知道,这些文件的格式是什么,它们包含什么?我想到了“那么,这些文件中的一些肯定必须是网站的图片”,并尝试在文件管理器中打开它们(以图片的形式打开)。但无论我选择什么文件,进程都

我在WebView的帮助下创建了一个基本的浏览器

当我访问一个网站(包含一些文本和一些图像)时,/data/data/com.mayexample/cache/webviewcacheCromium中的缓存目录会被一些名为index、data_0、data_1、data_2、f_00001、f_00002等的文件填满

我想知道,这些文件的格式是什么,它们包含什么?我想到了“那么,这些文件中的一些肯定必须是网站的图片”,并尝试在文件管理器中打开它们(以图片的形式打开)。但无论我选择什么文件,进程都会显示“加载失败!”。即使我将其中一些重命名为.jpg,我仍然无法打开任何内容。 我在互联网上读到这对一些人有用(看,这正是我想要做的),但我不能对缓存的文件做任何事情

您知道打开webview缓存文件的方法吗?例如,一个文件不代表对应的缓存图像吗

我真正想要实现的(一旦我理解了缓存文件的结构)是以编程方式从缓存中获取webview的图像,就像上面发布的链接的作者一样(不幸的是,这篇文章的答案没有多大帮助)


谢谢

我可以使用专为Chrome桌面浏览器设计的工具查看WebViewCacheCromium文件夹中的文件:


内容基本上是web缓存的预期内容—图像、javascript、css、html。

缓存的文件可能是css或JS/image/html类型之一。在早期的Android版本中,一个缓存文件正好映射一个CSS或JS/image/html文件


据我所知,浏览器引擎(实际上是HTTP模块)以URL到哈希键的方式维护这些缓存文件。因此,您发现的内容(如“4f42185de3a3a461_1”)可能与任何web资源文件(如JS/CSS/images/HTML等)相关

我记得在早期的Android版本中,WebView用于在sqlite3表中存储这样的URL到HashKey映射数据

这里的问题是,您不知道映射关系,因此很难检索到所需的文件。一个棘手的方法是阅读AOSP源代码,然后您可以知道如何通过唯一的URL生成哈希键,或者您可以操作sqlite3表(如果Android 4.4上还有)