Android 数据存储(五)-总结

网友投稿 785 2022-05-29

一、数据存储汇总

类别

内容类型

访问方法

需要权限

他应用可以访问吗?

卸载应用程序时删除的文件?

应用程序专属文件

仅供你的应用使用的文件

从内部存储,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存储或数据库存储。

数据访问可靠性:

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

需要存储什么样的数据:

需要一些简单的存储选择使用应用程序专属文件存储。

Android 数据存储(五)-总结

对于可共享的媒体内容(图片),那就使用共享存储,以便其他应用程序可以访问该内容。

对于结构化数据,可以使用Jetpack Preferences(用于键值数据)或数据库(用于包含超过 2 列的数据)。

一、数据存储汇总

数据存储需要多少空间:

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

数据访问可靠性:

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

需要存储什么样的数据:

需要一些简单的存储选择使用应用程序专属文件存储。

对于可共享的媒体内容(图片),那就使用共享存储,以便其他应用程序可以访问该内容。

对于结构化数据,可以使用Jetpack Preferences(用于键值数据)或数据库(用于包含超过 2 列的数据)。

数据私密性:

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

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

共享文件(图片保存)

共享文件(图片保存)

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

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

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

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

二、相关链接

Android 数据全方案处理

Android 数据存储(四)-Room

Android 数据存储(三)-SQLite数据库实例

Android 数据存储(二)-Preferences or MMKV

Android 数据存储(一)-文件存储

Android SQLite 数据库

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:http抓包
下一篇:Java进阶(五十一)XML:四种解析器(dom,sax,jdom,dom4j)原理及性能比较
相关文章