我又发现了Android13的一个bug

💡 原文中文,约3200字,阅读约需8分钟。
📝

内容提要

这篇文章讨论了一个SDCard格式化的问题,通过深入分析发现是由于格式化后SDCard的路径变化导致的。解决方案是在格式化完毕的代码处重新获取磁盘信息或者重新初始化StorageDashboardFragment。作者还发现了一个与此相关的Android bug,但Google表示不会修复。尽管这个问题影响不大,但仍让人感到无奈。

🎯

关键要点

  • 文章讨论了SDCard格式化的问题,原因是格式化后SDCard的路径变化。

  • 格式化后访问UnixFileSystem获取磁盘大小时,结果为0。

  • 使用statvfs函数获取文件系统信息时,路径变化导致无法找到磁盘信息。

  • 解决方案是在格式化完毕后重新获取磁盘信息或初始化StorageDashboardFragment。

  • 怀疑问题是Android自身的bug,查阅AOSP提交记录发现相关问题未被修复。

  • 该bug从Android7.0开始存在,影响后续版本。

  • 尽管问题存在,但影响不大,开发者可以自行修复。

延伸问答

Android13中SDCard格式化后出现什么问题?

格式化后SDCard的路径发生变化,导致无法获取磁盘大小,结果为0。

如何解决Android13中SDCard格式化后的路径问题?

解决方案是在格式化完毕后重新获取磁盘信息或初始化StorageDashboardFragment。

这个SDCard格式化的问题是Android的bug吗?

是的,这个问题被怀疑是Android自身的bug,自Android7.0以来一直存在。

Google对这个SDCard格式化的bug有什么回应?

Google表示不会修复这个问题,尽管它从Android7.0开始就存在。

SDCard格式化后如何获取磁盘信息?

可以使用statvfs函数获取文件系统信息,但需注意路径变化问题。

这个问题对开发者有什么影响?

尽管问题存在,但影响不大,开发者可以自行修复。

➡️

继续阅读