超过5秒
(3) 当要求歌曲停止时,程序响应时间最长不能超过5秒
(4) 当要求歌曲上/下一首时,程序响应时间最长不能超过5秒
(5)当要求进行清单列表时,程序响应时间最长不能超过5秒
2.5 运行环境需求
操作系统:Android手机基于Linux操作系统
支持环境:Android 1.5 - 2.0.1版本
开发环境:Eclipse 3.5 ADT 0.95
第三章 Android数据库设计
数据结构组织和数据库文件设计要根据不同用途,使用要求等,来决定数据的整体组织形式等一系列问题。
数据库,顾名思义,是存放数据的仓库。只不过这个仓库是在计算机存储设备上,而且数据是按一定的格式存放的。数据库中的数据按一定数据模型组织、描述和存储,具有较小的重复度、较高的数据独立性和易扩展性,并且可以被在一定范围内的各种用户共享。在涉及数据库的软件开发中,需要根据有待解决的问题性质、规模,以及所采用的前端程序创建工具等,做出合适的数据库类型选择
3.1 数据库及字段属性设计
3.1.1 字段设计(表、图)
file_table 主要是保存歌曲名字、类型、路径
字段说明:Id 歌曲id号 fileName 歌曲名字 filePath 歌曲路径 sort 歌曲类型(表3.1、图3.1.1)
Android自带一个MediaStore封闭类 专门来存储媒体信息
通过Uri EXTERNAL_CONTENT_URI 来访问SDcard中的歌曲详细信息。
存放媒体信息如TITLE(标题)、ARTIST(艺术家)、ALBUM(专辑)、SIZE(大小 )(表3.2、图3.1.2)
属性 数据类型 允许空 主键 _Id INTEGER Not null Primary key fileName TEXT Not null filePath TEXT sort INTEGER
表3.1
属性 数据类型 允许空 主键 _ID INTEGER Not null Primary key TITLE TEXT Not null ARTIST TEXT ALBUM TEXT SIZE LONG 表3.2
图3.1.1 歌曲列表
图3.1.2 歌曲详细
3.1.2 音乐播放器E-R图
音乐播放器 E-R(实体-联系:entity-relation图)图(图3.1.3)
图3.1.3 E-R图
3.2 数据库连接
这里将介绍如何进行Android数据库连接,Android中自带SQLite数据库,这是一个十分小型的数据库,这样正适合Android这种移动平台使用。
Android数据库存储的位置在data/data/<项目文件夹>/databases/目录下 Android是利用ContentProvider作为内容提供商,SQLiteOpenHelper数据库帮助类来进行对数据库的创建和操作。通过Context.getContentResolver()方法直接对数据库进行操作。程序中数据库类为DBHelper extends SQLiteOpenHelper(继承关系),内容提供类DBProvider extends ContentProvider(继承关系)
3.2.1 创建数据库
Android 提供了标准的数据库创建方式。继承SQLiteOpenHelper ,实现onCreate 和 onUpgrade 两个方法,有个好处就是便于数据库版本的升级,连接数据库的算法如下:
public DBHelper(Context context) {// 创建数据库
super(context, DATABASE_NAME,null, DATABASE_VERSION);
}
public void onCreate(SQLiteDatabase db) {// 创建时调用
db.execSQL(DATABASE_CREATE);
}
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {// 版本更新时调用
db.execSQL("DROP TABLE IF EXISTS File_Table");
onCreate(db);
}
@Override // 在ContextProvider运行时自动创建数据库
public boolean onCreate() {
dbOpenHelper= new DBHelper(getContext());
return true;
}
数据库如果创建不成功则抛出FIleNotFoundException异常
3.2.2 操作数据库
Android对数据库的操作主要有插入、删除、更新、查询操作,在进行任何操作时都必须指定一个Uri,才能对相应的表进行数据操作。
//数据库删除操作
@Override
public int delete(Uri arg0, String arg1, String[] arg2) {
SQLiteDatabase db = dbOpenHelper.getWritableDatabase();
try {
Db.delete(FileColumn.TABLE, arg1, arg2);
} catch (Exception ex) {
ex.printStackTrace();
}return 1;
}
@Override//数据库插入操作
public Uri insert(Uri uri, ContentValues values) {
SQLiteDatabase db = dbOpenHelper.getWritableDatabase()
上一篇:
基于Android平台的音乐播放器
下一篇:
猪疥癣病的防治