Android数据存储方式:SharePreference、SQLite、ContentProvider有什么不同?
在Android中一共提供了4种数据存储方式,由于Android中数据基本是私有的,如果需要在其他应用程序中使用这些数据,就要使用Android提供的ContentProviders。
Android中4种数据存储方式:
Shared Preferences
类似于我们常用的ini文件,用来保存应用程序的一些属性设置,在Android
平台常用于存储较简单的参数设置。数据存放位置:目录:/data/data/<包>/shared_prefs/***.xml
我们无法在多个应用程序间共享Preferences数据。
文件存取(I/O)
文件用来存储大数量的数据采用java.io.*库所提供有I/O接口,读写文件。只有本地文件可以被访问
优点:可以存储大容量的数据
缺点:文件更新或是格式改变可能会导致巨大的编程工作.
SQLite数据库
SQLite 是一个轻量级的软件库原子量性坚固性独立性耐久性体积大小只用几千字节一些SQL 的指令只是部分支持,例如:ALTER、TABLE
Android提供了一个名为SQLiteDatabase的类,该类封装了一些操作数据库的API,使用该类可以完成对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(Delete)操作(这些操作简称为CRUD)。
Content Provider
Content
Provider是所有应用程序之间数据存储和检索的一个桥梁,它的作用就是使得各个应用程序之间实现数据共享。Android为常见的一些数据提供了ContentProvider(包括音频、视频、图片和通讯录)
每个Content Providers都会对外提供一个公共的URI(包装成Uri对象),如果应用程序有数据需要共享时,就需要使用Content
Providers为这些数据定义一个URI,然后其他的应用程序就可以通过Content
Providers传入这个URI来对数据进行操作。URI由3个部分组成:"content://"、数据的路径、标识ID(可选)。