如何从 Glide 缓存图像/图标文件中检索 Web Url?

问题描述 投票:0回答:1

Glide 将图像/图标保存在此本地应用程序目录 image_manager_disk_cache 中,例如文件路径

/data/user/0/com.app.abc/cache/image_manager_disk_cache/88cf36166efa4e8d963049b82000f615204ae89c7a37062e5b95a0ee76895449.0

如何从这个哈希码密钥中检索实际的网址? 88cf36166efa4e8d963049b82000f615204ae89c7a37062e5b95a0位于目录ee76895449.0

Glide 如何从 web url 准备这个哈希码?如何将此哈希密钥解码回网址? #android #glide

android android-glide
1个回答
0
投票

您想要实现的目标实际上是不可能的 - 哈希函数的全部要点是不可恢复和不可逆(至少在当前几代计算机上)。主要原因是多个不同的值可能会导致相同的哈希值(您可以在线搜索有关此的更多信息或查看此处

不过,您可以手动实现一对一映射。您应该将自己的 映射存储在某处,并在您拥有 URL 时用您知道的 URL 及其对应的哈希值填充它。 Glide 内部使用相同的方法,但它的 API 是私有的。为此,他们有一个特殊的地图对象,

CachedHashCodeArrayMap
。他们在
Options
类中使用它,以提高获取缓存图像的性能。虽然您可以通过 reflection 访问私有属性,但我不建议这样做 - 最好有自己的机制将地图存储在您控制的地方。

这里是他们的哈希算法。

© www.soinside.com 2019 - 2024. All rights reserved.