微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Android的多种数据存储方法

Android的多种数据存储方法

时间:10-10 来源:互联网 点击:

在以下文件夹之一:

Music/ - 媒体扫描器把所有在此发现的媒体归类为用户的音乐。

Podcasts/ - 媒体扫描器把所有在此发现的媒体归类为播客。

Ringtones/ - 媒体扫描器把所有在此发现的媒体归类为铃声。

Alarms/ - 媒体扫描器把所有在此发现的媒体归类为闹铃。

Notifications/ - 媒体扫描器把所有在此发现的媒体归类为提示音。

Pictures/ - 所有照片(相机拍摄的除外)。

Movies/ - 所有影片(摄像机拍摄的除外)。

Download/ - 各类下载。

保存缓存文件

如果你正在使用API Level 8或者更高版本,调用getExternalCacheDir()打开一个File,它表示你的应用应当保存文件所在的外部存储目录。如果用户卸载了你的应用,这些文件会被自动删除。然而,在你的应用的生命周期中,你应当管理这些缓存文件以及删除其中过期的部分以保证文件空间。

如果你正在使用API Level 7或者更低版本,使用getExternalStorageDirectory()打开一个File,它表示外部存储的根目录。接下来,你应当写入你的数据在一下目录:

/Android/data//files/

com.example.android.app。

使用数据库 - Using Databases

Android提供了对SQLite数据库的完整支持。你创建的任何数据库都能被应用程序中的任意类通过数据库名访问。但是不能够在应用程序以外访问。

推荐的创建新的SQLite数据库的方法是,在你执行SQLite命令在数据库中创建表的时候,创建一个SQLiteOpenHelper的子类,并重写onCreate()方法。例如:

class extends { static int DATABASE_VERSION ; static String DICTIONARY_TABLE_NAME ; static String DICTIONARY_TABLE_CREATE + DICTIONARY_TABLE_NAME ( + + KEY_DEFINITION TEXT);DictionaryOpenHelperContext context{ (context, , DATABASE_VERSION} public () .execSQL); }

接着,你可以使用构造方法取得你实现的SQLiteOpenHelper的一个实例。分别使用getWritableDatabase()和getReadableDatabase()读写数据库。两者都会返回一个SQLiteDatabase对象,代表那个数据库,并提供操作SQLite的方法。

Android没有在标准SQLite概念之外加以任何限制。我们建议包含一个自增值的主键字段,能够作为一个唯一的ID,以便快速定位一条记录。这对私有数据来说不是必须的。但如果你实现了一个content provider,就必须包含一个唯一的ID,它使用BaseColumns._ID常量。

你可以使用SQLiteDatabase.query()方法执行SQLite查询,这个方法接受各种查询参数,例如待查询的表、投影、选择、列、组,或者其他。对于复杂查询,比如一些需要用到列的别名的,你应当使用SQLiteQueryBuilder,它能提供一些合适的方法以创建查询。

每一个SQLite查询都会返回一个Cursor对象,指向查询得到的所有行。Cursor对象总是你用来取得数据库查询或者读取行或列的结果的途径。

关于示例应用中演示如何在Android中使用SQLite数据库,见Node Pad和Searchable Dictionary这两个应用。

数据库调试

Android SDK包含了一个sqlite3的数据库工具,允许你浏览表内容,运行SQL命令,以及执行其他SQLite数据库中有用的功能。想要了解如何运行这个工具,请查看Examining sqlite3 databases from a remote shell这个例子。

使用网络连接 - Using a Network Connection

你可以使用网络连接(当可用时)通过基于web的服务存储或取得数据。需要执行网络操作时,使用以下包中的类:

java.net.*

android.net.*

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top