帅次

V1

2022/01/24阅读:48主题:自定义主题1

Android 数据存储(五)-总结

一、数据存储汇总

类别 内容类型 访问方法 需要权限 他应用可以访问吗? 卸载应用程序时删除的文件?
应用程序专属文件 仅供你的应用使用的文件 从内部存储,getFilesDir()或 getCacheDir()
从外部存储, getExternalFilesDir()或 getExternalCacheDir()
内部存储永远不需要
当你的应用在运行 Android 4.4(API 级别 19)或更高版本的设备上使用时,外部存储不需要
是的
Media 可共享的媒体文件(图像、音频文件、视频) MediaStore API READ_EXTERNAL_STORAGE 在 Android 11(API 级别 30)或更高版本上访问其他应用的文件时
READ_EXTERNAL_STORAGE 或 WRITE_EXTERNAL_STORAGE 在 Android 10(API 级别 29)上访问其他应用的文件时
Android 9(API 级别 28)或更低版本上的所有文件都需要权限
可以,虽然其他应用程序需要 权限READ_EXTERNAL_STORAGE
文件和其他文件 其他类型的可共享内容,包括下载的文件 存储访问框架 没有任何权限 可以,通过系统文件选择器
App preferences 键值对 Jetpack Preferences 库 没有任何权限 是的
数据库 结构化数据 Room 持久性库 没有任何权限 是的

数据存储需要多少空间:

内部存储空间用于特定应用数据的空间有限(可通过多个进程,可以获得更多的内存空间(图库等大型文件存放))。如果你需要保存大量数据,可以使用外部存储、SharedPreference存储或数据库存储

数据访问可靠性:

如果你的应用程序的基本功能需要某些数据,那么就将数据放在内部存储目录数据库中禁止存储在外部存储中,某些设备允许用户删除与外部存储对应的物理设备(如拔出存储卡)。

需要存储什么样的数据:

  • 需要一些简单的存储选择使用应用程序专属文件存储。
  • 对于可共享的媒体内容(图片),那就使用共享存储,以便其他应用程序可以访问该内容。
  • 对于结构化数据,可以使用Jetpack Preferences(用于键值数据)或数据库(用于包含超过 2 列的数据)。

数据私密性:

存储敏感数据(不应从任何其他应用程序访问的数据)时,可以使用内部存储、Jetpack Preferences或数据库。内部存储具有对用户隐藏数据的额外好处。

其实这几种存储方式都差不多,你可以由场景自行选择,如:

  • 共享文件(图片保存)

  • SP or MMKV (简单的用户信息等)

  • SQLite or Room(首页列表信息存储或商品详情等)

二、相关链接

Android 数据全方案处理

分类:

移动端开发

标签:

Android

作者介绍

帅次
V1

公众号:帅次