Android中五中存储方式的区别和优劣性
来源:互联网 发布:淘宝直通车掌柜热卖 编辑:程序博客网 时间:2024/05/22 03:23
第一种: 使用SharedPreferences存储数据
适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型、基本类型的值。比如应用程序的各种配置信息(如是否打开音效、是否使用震动效果、小游戏的玩家积分等),解锁口 令密码等
核心原理:它的本质是基于XML文件存储key-value键值对数据,通常用来存储一些简单的配置信息。其存储位置在/data/data/< >/shared_prefs目录下。
SharedPreferences本身是一个接口,程序无法直接创建SharedPreferences实例,只能通过Context提供的getSharedPreferences(String name, int mode)方法来获取SharedPreferences实例,该方法中K值name表示要操作的xml文件名,第二个参数键值具体如下:
实现SharedPreferences存储的步骤如下:
Context.MODE_PRIVATE: 指定该SharedPreferences数据只能被本应用程序读、写。
Context.MODE_WORLD_READABLE: 指定该SharedPreferences数据能被其他应用程序读,但不能写。
Context.MODE_WORLD_WRITEABLE: 指定该SharedPreferences数据能被其他应用程序读,写
SharedPreferences与SQLite数据库相比,免去了创建数据库,创建表,写SQL语句等诸多操作,相对而言更加方便,简洁。但是SharedPreferences也有其自身缺陷,比如其只能存储boolean,int,float,long和String五种简单的数据类型,比如其无法进行条件查询等。所以不论SharedPreferences的数据存储操作是如何简单,它也只能是存储方式的一种补充,而无法完全替代如SQLite数据库这样的其他数据存储方式。
第二种: 文件存储数据
可以在设备本身的存储设备或者外接的存储设备中创建用于保存数据的文件。同样在默认的状态下,文件是不能在不同的程序间共享。
写文件:调用Context.openFileOutput()方法根据指定的路径和文件名来创建文件,这个方法会返回一个FileOutputStream对象。
读取文件:调用Context.openFileInput()方法通过制定的路径和文件名来返回一个标准的JavaFileInputStream对象。
第三种:SQLite存储数据
SQLite Database数据库。Android对数据库的支持很好,它本身集成了SQLite数据库,每个应用都可以方便的使用它,或者更确切的说,Android完全依赖于SQLite数据库,它所有的系统数据和用到的结构化数据都存储在数据库中。 SQLite是轻量级嵌入式数据库引擎,它支持 SQL 语言,并且只利用很少的内存就有很好的性能。此外它还是开源的,任何人都可以使用它。许多开源项目((Mozilla, PHP, Python)都使用了 SQLite.SQLite 由以下几个组件组成:SQL 编译器、内核、后端以及附件。SQLite 通过利用虚拟机和虚拟数据库引擎(VDBE),使调试、修改和扩展 SQLite 的内核变得更加方便。
SQLite它具有以下优点:
1..效率出众
2. 十分适合存储结构化数据
3. 方便在不同的Activity,甚至不同的应用之间传递数据。
4.面向资源有限的设备第四种:ContentProvider
Android系统中能实现所有应用程序共享的一种数据存储方式,由于数据通常在各应用间的是互相私密的,所以此存储方式较少使用,但是其又是必不可少的一种存储方式。例如音频,视频,图片和通讯录,一般都可以采用此种方式进行存储。每个ContentProvider都会对外提供一个公共的URI(包装成Uri对象),如果应用程序有数据需要共享时,就需要使用ContentProvider为这些数据定义一个URI,然后其他的应用程序就通过Content Provider传入这个URI来对数据进行操作。
第五种:网络存储
网络一般用于需要实时传输数据,由于移动产生流量需要资费,并且现在中国大陆地区的网络速度不尽人意,所以通过网络发送数据时需要注意数据量,如非必要,也不要使用网络发送。但是如果有些数据在移动端不能处理或者处理比较麻烦时,可以考虑通过网络发送到服务器处理。
总结:- Android中五中存储方式的区别和优劣性
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- mysql存储引擎:InnoDB和MyISAM的区别与优劣
- mysql存储引擎:InnoDB和MyISAM的区别与优劣(转)
- Spring 框架中 Setter 注入 和 构造器注入 方式的区别 与优劣
- IOS的四种数据存储方式及优劣
- 关于hibernate 和 存储过程的优劣问题
- HIbernate和Mybatis的区别和优劣势
- android的优劣
- jpg,png,gif图片格式的区别和优劣
- APC和Memcache的区别及优劣对比
- 浅谈 JDBC 中 CreateStatement 和 PrepareStatement 的区别与优劣。
- 浅谈 JDBC 中 CreateStatement 和 PrepareStatement 的区别与优劣。
- 浅谈 JDBC 中 CreateStatement 和 PrepareStatement 的区别与优劣。
- 通知的各种实用写法技巧
- 数据存取之SQLite浅析
- 创建类的对象
- Flip Game(DFS枚举)
- HQL时间段查询
- Android中五中存储方式的区别和优劣性
- 【驱动开发】006 系统时间
- Centos6.5服务器配置nginx的https证书
- 浅谈Content Provider
- signals linux
- 面试问题
- acm网络一赛 1231:rabbit Composite number【简单合数】
- Android经典71道笔试题,命中率超大!
- HDU3033 I love sneakers!(分组背包)