安卓APP开发中的重要环节:数据和文件存储概述

安卓APP开发中的重要环节:数据和文件存储概述

安卓使用一个文件系统,这个系统与其它平台上基于磁盘的
文件系统是相似的.为了存储你的APP数据,系统提供了一些选项.

一 存储的类型

特定APP的存储

仅仅你的APP专用的存储文件,或者是被声明为一个内部存储卷
的目录,或者是外部存储的不同目录.使用内部存储目录存储其它
APP不能读取的敏感信息。读取方法是getFilesDir(),getCacheDir()
getExternalFilesDir(),getExternalCacheDir().


共享的存储

你的APP要和其它的APP共享的存储文件,包括媒体文件,文档,和其它文件。
读取方法是MediaStoreAPI,存储读取框架

配置信息

以键值对的形式,存储私有的,个性化的数据。
使用方法是Jetpack配置信息库。

数据库

使用Room持久化库在一个私有的数据库中,存储结构化的数据。

二 决定存储方案的问题集

你选择的解决方案依赖于你的特殊的需求。

你的数据需要多大的空间?

对于特定的APP数据,内部存储提供的空间非常有限,如果你需要存储
大量的数据,要使用其它类型的存储。

你的数据的读取需要多么可靠?

如果你的APP的基础功能需要一点数据,例如当你的APP启动时,这时需要
的数据应该放在内部存储目录上或者是数据库中。特定APP的文件放在外部
存储上的话,并不总是能够读取到,因为一些设备允许用户移除外部存储
对应的物理设备。

你需要存储什么类型的数据?

对于结构化的数据,你使用配置信息(键值对数据)或者是一个数据库
(包括两个字段以及更多字段的数据)

对于你的APP,数据应该是私有的吗?

当存储敏感数据时,应该使用内部存储,配置信息或者是一个数据库。
内部存储对于用户不可见的数据有额外的帮助。

三 存储位置的类型

安卓提供了两种类型的存储位置:内部存储和外部存储。
在绝大多数的设备,都是内存远小于外存的存储空间。然而,
内存总是在所有的设备中可用,你的APP依赖的数据应该放在更加可靠
的位置上。

出现在文件系统中的可移除的卷,例如SD卡,作为外存储的一部分。
安卓使用一个路径表示这些设备,例如 /sdcard

APP自身默认被存储在内存中,如果你的APK的规模非常大的话,你能用
APP的配置文件做出一个个性化的配置信息,让你的APP安装在外存上。


四 对外存的权限和读取

安卓定义了存储相关的权限:READ_EXTERNAL_STORAGE,WRITE_EXTERNAL_STORAGE,
MANAGE_EXTERNAL_STORAGE.

安卓早期的版本,写和读都要APP显式的申请权限。
后期版本的安卓,更依赖于文件的目的,而不是文件的位置来决定
APP的读和写的能力。尤其是,如果你的APP适配安卓11(API 第30级)
或者更高版本,WRITE_EXTERNAL_STORAGE权限对于你的APP的读取存储没有
任何的影响。这个基于目的的存储模型提升了用户的隐私。因为APP仅被允许
读取它实际使用的设备文件系统的区域。

相关推荐

  1. APP开发重要环节:数据文件存储概述

    2024-03-30 22:08:02       20 阅读
  2. 手机APP开发音频视频概述

    2024-03-30 22:08:02       16 阅读
  3. 手机开发APP配置信息文件概述

    2024-03-30 22:08:02       21 阅读
  4. 手机APP开发功能之一:通知概述

    2024-03-30 22:08:02       14 阅读
  5. 手机APP开发__命令行工具概述

    2024-03-30 22:08:02       15 阅读
  6. 手机APP开发___设备管理概述

    2024-03-30 22:08:02       11 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 22:08:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 22:08:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 22:08:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 22:08:02       20 阅读

热门阅读

  1. Golang- 邮件服务,发送邮件

    2024-03-30 22:08:02       21 阅读
  2. 【Docker】常用命令 docker compose

    2024-03-30 22:08:02       16 阅读
  3. C语言- %i 读取不同进制的数

    2024-03-30 22:08:02       14 阅读
  4. 2023春秋杯冬季赛wp

    2024-03-30 22:08:02       21 阅读
  5. uniapp 未配置appkey或配置错误的解决

    2024-03-30 22:08:02       16 阅读
  6. Doris案例篇—Doris 在思必驰的应用实践

    2024-03-30 22:08:02       19 阅读
  7. kubelet源码阅读

    2024-03-30 22:08:02       20 阅读
  8. 【软考---系统结构设计师】IPv6

    2024-03-30 22:08:02       21 阅读