Android的数据存储主要有五种:
1:SharedPreferences:保存少量数据,简单格式的数据。保存的数据主要是类似于配置信息格式的数据(例如:用户名,密码),因此它保存的数据主要是简单类型的key-value对。其本质就相当于一个xml文件。
优点:SharedPreferences使用起来十分的方便,可以灵活应用,因为它简单方便,所以能用它就尽量不要用文件或是数据库。
限制条件:只能在同一个包内使用。
boolean commit():当editor编辑完成后,调用该方法提交修改。
SharedPreferences数据总是保存在/data/data/<pasckage name>/shared-prefs目录下。
2、File:用来存储文件(非配置信息或结构化数据),如文本文件,二进制文件,多媒体文件,下载的文件等。
context提供两个方法打开本应用程序的数据文件夹的文件I/O流。
openFileOuutput()和openFileInput().
3、SQLite:是一个轻量级数据库,支持基本SQL语法,提供一个名为SQLiteDatabase类。
优点:效率高,在不同Activity或应用之间传递数据方便;适合存储结构化数据;使用标准的SQL语句能实现CRUDE,操作方便;移植性好。
4、ContentProvider:是不同应用程序之间进行数据交换的标准API。一旦一个应用程序通过ContentProvider暴露了自己的数据操作接口,不管这个应用程序是否启动,其他应用程序都可以通过接口来操作(增、删、改、查)该应用程序的内部数据。
开发ContentProvider需要先开发一个ContentProvider的子类,该子类需要实现query()、insert()、update()、delete()等方法。这些方法并不是给该应用本身调用的,而是供其他应用来调用的。再在AndroidManifest.xml文件中注册该ContentProvider,指定android:authorities属性。
配置ContentProvider:
<provider
android:name=".MyProvider"
android:authorities="org.crazyit.providers.myprovider"
android:exported="true">
authorities:指定该ContentProvider对应的Uri(相当于为该ContentProvider分配一个域名)。
android:exported:指定该ContentProvider是否允许其他应用调用。如果设为false,不允许其他应用调用。
5、网络存储:通过网络来实现数据的存储和获取的方法。