安卓开发之数据存储在本地的四种方式

本地数据存储,在安卓开发过程中是不可避免的一个话题。这些本地的数据可能是用户的设置,程序的设置,用户的数据图片, 也可能是网络传输的一些缓冲数据。

基本上我们有4种方法可以存储安卓程序的数据。

第1种是Shared Preference(共享选项)。

这种方法适合于存储一些基本数据类型的数据。他提供的是key-value(键值)的方式。键必须是字符串类型的,值可以是布尔型的,浮点型的,整型的,长整型的,或者字符串类型的。

这种方式是用一个xml文件在私有的目录里面存放这些数据的。一个程序可以有多个这样的文件。

下面一段代码用来描述写入数据。

第2种是Internal Storage(内部存储)。

这种方式用来存储一些复杂的数据结构。因为是内部存储方式,所以其他程序无法访问。这样可以保证数据的安全性。当你的程序卸载以后,这些内部存储数据也会被清除掉。

这类数据一般包括像一些对象,或者本地需要一些类似文件系统访问模式的数据。

下面一段代码用来写入数据。

第3种是External Storage(外部存储)。

这种存储方式用来存储一些文件对象。这些文件可以被其他程序来访问。要使用外部存储,需要申请特别的写权限WRITE_EXTERNAL_STORAGE。如果其他程序需要访问这些外部存储数据的话,也需要申请读权限READ_EXTERNAL_STORAGE 。

从安卓4.4开始,用户可以把自己的数据写入一个私有的外部存储文件夹中,如果这样的话,用户就不需要申请写权限WRITE_EXTERNAL_STORAGE。当用户卸载程序的时候,这个文件夹也会被清除。

从安卓7.0开始, 安卓程序可以申请访问特定的文件目录,而不是申请访问整个外部存储空间。这样可以保证数据的安全性,防止误操作。用户只可以访问图片目录,或者文档目录。

第4种是SQLite database(数据库)。

这种方式需要了解一些数据库方面的知识。适合存储相对结构化的数据。尤其是表结构。数据库是跟当前程序绑定的其他程序无法访问。

下面一段代码用来展示写入数据。

这里是丁哥开讲,欢迎留言进行进一步的讨论,谢谢。

与此同时请关注一下我们的合作伙伴。

安卓androidstudio访问本地接口_安卓开发之数据存储在本地的四种方式相关推荐

  1. java websocket注解_【websocket】spring boot 集成 websocket 的四种方式

    集成 websocket 的四种方案 1. 原生注解 pom.xml org.springframework.boot spring-boot-starter-websocket WebSocketC ...

  2. mysql数据存储方式_数据存储在mysql的两种方式

    数据存储在mysql的两种方式 发布时间:2020-05-12 16:16:25 来源:亿速云 阅读:250 作者:三月 下文主要给大家带来数据存储在mysql的两种方式,希望这些内容能够带给大家实际 ...

  3. Android应用开发:数据存储和界面展现-1

    1. 相对布局RelativeLayout 特点:相对布局所有组件可以叠加在一起:各个组件的布局是独立的,互不影响:所有组件的默认位置都是在左上角(顶部.左部对齐) 属性 功能描述 android:l ...

  4. iOS开发之数据存储

    概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库.例如前面IOS开发系列-Objective-C之Foundation框架的文章中提到归档.plist文件存储, ...

  5. 访问数据库的四种方式

    IRIS 中支持的四种方式: SQL.Objects.REST 和 GraphQL   卡济米尔·马列维奇,<运动员>(1932) > > "你当然无法理解! 习惯了 ...

  6. photon四种同步方式_【Linux】多线程同步的四种方式

    背景问题:在特定的应用场景下,多线程不进行同步会造成什么问题? 通过多线程模拟多窗口售票为例: #include #include#include#include#include#include us ...

  7. stream去重_重复数据如何处理?List集合去重的四种方式

    List集合在Java日常开发中是必不可少的,只要懂得运用各种各样的方法就可以大大提高我们开发的效率,适当活用各种方法才会使我们开发事半功倍.但是,有时候难免会遇到集合里的数据是重复的,需要进行去除. ...

  8. php访问url的四种方式

    php访问url的四种方式 1.fopen方式 //访问指定URL函数 [php] view plain copy print? function access_url($url) { if ($ur ...

  9. java类加入到spring容器_普通java类加入spring容器的四种方式

    今天在自己开发的工具类中使用了spring注入的方式调用了其他类,但是发生的报错,在整理了后今天小结一下. 首先简单介绍下spring容器,spring容器是整个spring框架的核心,通常我们说的s ...

最新文章

  1. Java开发买低压本还是标压本_标压和低压,笔记本怎么选才最香?
  2. delphi接口基本学习摘录
  3. python顺序结构实验_Python程序设计实验报告二:顺序结构程序设计
  4. vsFTP服务器的配置
  5. 那些关于浏览器的趣图和幽默段子
  6. JavaScript实现复选框全选与全不选的效果
  7. [jQuery] 你有写过jQuery的扩展吗?都有哪些写法?
  8. GPU版的tensorflow在windows上的安装时的错误解决方案
  9. 附加一个:为什么要用简单工厂模式
  10. windows镜像_什么是windows镜像?什么是Ghost?它们有什么优缺点?
  11. pcm 采样率转换_高速模数转换器 ADC 树立了实时监测和控制的标准
  12. Apache Commons BeanUtils包学习 2 -beanutils PropertyUtils bean
  13. codeBook背景建模
  14. 贝塞尔曲线均匀插值算法
  15. 17.光照(点光源)
  16. 程序员裸辞,利用1个月时间全力找工作,怎么样?
  17. 时间换算--C语言结构练习
  18. python中base函数_详细的python basemap中各函数的所有参量注释
  19. centos7 下greenplum 安装初始化使用
  20. 争议不断的AI绘画,靠什么成为了顶流?

热门文章

  1. 市直系统推荐市级以上表彰的_推荐市级以及以上教学方面表彰的细则
  2. ksrot php_php中ksort函数的功能起什么作用呢?
  3. STM32的AFIO时钟什么时候开启?
  4. python源码多平台编译_提升Python程序运行效率的6个方法
  5. rssi定位算法 c语言,【论文※】An RSSI Gradient-based AP Localization Algorithm 基于RSSI梯度的AP定位算法...
  6. Python GIL
  7. Qt图形界面编程入门(5)
  8. python出现traceback什么意思_python-异常处理 traceback获取详细异常
  9. 介绍一下再Apache下的Tomcat负载均衡的一些使用问题
  10. Quartus II 8.1 详解--有图---图片详解 【1讲】