Android的数据存储方式
2016-03-08 18:12
525 查看
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、网络存储:通过网络来实现数据的存储和获取的方法。
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、网络存储:通过网络来实现数据的存储和获取的方法。
相关文章推荐
- android中废弃的,过时的,不推荐使用的一些类和方法
- [Error: Please install Android target: "android-22".
- Android导入包报错问题Failed to complete Gradle Execution Cause: error in opening zip file.
- Android AIDL使用报错
- Android Activity 生命周期
- Android播放视频的三种方式
- android PullToRrefresh自定义下拉刷新动画
- Android ListView监听上下滑动(判断是否显示返回顶部按钮)
- Android studio 获取数字证书
- android状态栏一体化、沉浸式状态栏(兼容低版本)
- android基础学习之Fragment
- Android ActionBar 使用总结
- Android 为应用增加可移动的悬浮窗口
- android缓存数据到本地
- Android自定义View控件
- Android 判断数据库中是否存在某个表
- Android 6.0 运行时权限处理完全解析
- Android SDKManger 更新设置
- android开源框架
- Android Binder机制 (1~12)