【问题标题】:What are the file formats in Android WebView cache directory (data_1, f_000001 etc.)?Android WebView 缓存目录中的文件格式是什么(data_1、f_000001 等)?
【发布时间】:2012-08-29 11:05:30
【问题描述】:

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

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

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

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

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

谢谢!

【问题讨论】:

    标签: android file caching webview


    【解决方案1】:

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


    据我所知,浏览器引擎(实际上是 HTTP 模块)以 URL-to-HashKey 的方式维护此类缓存文件。所以你发现的(如“4f42185de3a3a461_1”)可能与任何网络资源文件相关联,如JS/CSS/images/HTML等。

    我记得在早期的 Android 版本中,WebView 用于将此类 URL-to-HashKey 映射数据存储在 sqlite3 表中。

    这里的问题是你不知道映射关系,所以你很难检索到你想要的文件。一个棘手的方法是阅读 AOSP 源代码,然后您可能能够知道如何通过唯一 URL 生成 HashKey,或者您可以操作 sqlite3 表,如果在 Android 4.4 上还有的话。

    【讨论】:

      【解决方案2】:

      我能够使用专为 Chrome 桌面浏览器设计的工具查看 webViewCacheChromium 文件夹中的文件:

      http://www.nirsoft.net/utils/chrome_cache_view.html

      内容基本上是您对网络缓存的期望 - 图片、javascript、css、html。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-14
        • 2021-04-17
        • 1970-01-01
        • 1970-01-01
        • 2021-01-10
        • 2012-09-10
        • 1970-01-01
        • 2013-06-27
        相关资源
        最近更新 更多