Android数据存储实战:SQLite与SharedPreferences

需积分: 14 0 下载量 174 浏览量 更新于2024-10-03 收藏 4.05MB PDF 举报
"Android数据库操作主要涉及SQLite数据库和ContentProvider,以及SharedPreferences的使用。通过学习,开发者可以掌握在Android环境中存储和管理数据的各种方法。" 在Android开发中,数据存储是一个重要的方面,尤其是在构建功能丰富的应用程序时。Android提供了多种存储方式,以适应不同场景的需求。以下是对这些存储方式的详细说明: 1. SharedPreferences存储 SharedPreferences主要用于存储轻量级的配置信息,如用户偏好设置或简单数据。它基于键值对的形式,支持基本数据类型如字符串、布尔值、整数等。在示例中,开发者可以使用`getSharedPreferences()`和`edit()`方法创建和修改SharedPreferences,然后调用`commit()`或`apply()`来保存更改。例如,存储用户名和密码时,可以创建键为"username"和"password"的条目。 ```java SharedPreferences prefs = getSharedPreferences("MyPrefs", MODE_PRIVATE); Editor editor = prefs.edit(); editor.putString("username", "testUser"); editor.putString("password", "testPassword"); editor.apply(); ``` 2. SQLite数据库 SQLite是Android系统内置的关系型数据库,适用于存储结构化的数据。创建数据库通常涉及到以下几个步骤: - 创建SQLiteOpenHelper子类,重写`onCreate()`和`onUpgrade()`方法。 - 在`onCreate()`中创建表结构。 - 使用SQL语句插入、更新、删除和查询数据。 - 通过`SQLiteOpenHelper`的`getWritableDatabase()`或`getReadableDatabase()`获取数据库实例。 ```java public class DatabaseHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "MyDB"; public static final String TABLE_NAME = "User"; public static final String COL_1 = "ID"; public static final String COL_2 = "NAME"; public static final String COL_3 = "SURNAME"; @Override public void onCreate(SQLiteDatabase db) { db.execSQL("create table " + TABLE_NAME + " (ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,SURNAME TEXT)"); } // 其他方法... } ``` 3. ContentProvider ContentProvider是Android提供的一种标准接口,用于在应用程序之间共享数据。它封装了对SQLite数据库或其他存储方式的访问,使得其他应用可以通过URI查询、插入、更新和删除数据。创建ContentProvider需要实现`ContentProvider`类并重写其关键方法,如`query()`, `insert()`, `update()`, `delete()`。 ```java public class MyContentProvider extends ContentProvider { private DatabaseHelper dbHelper; @Override public boolean onCreate() { dbHelper = new DatabaseHelper(getContext()); return true; } // 实现ContentProvider的方法... } ``` 4. 文件存储 Android还允许直接在设备上创建和读取文件,适用于存储大量文本、图片或其他二进制数据。文件存储分为内部存储(应用私有)和外部存储(公开可访问)。内部存储通常用于保存应用特有的文件,而外部存储适合共享文件。 5. 网络存储 对于云同步或在线数据交互,开发者可以使用HTTP请求、JSON解析、XML解析等技术,结合网络库如Volley或OkHttp来实现。 Android开发中的数据存储选择取决于具体需求。SharedPreferences适合轻量级配置,SQLite处理结构化数据,ContentProvider用于跨应用共享,文件存储处理大文件,而网络存储则用于远程数据交换。理解并熟练运用这些存储方式是构建高效、稳定Android应用的关键。