Applications use these classes to manage private databases. If creating a content provider, you will probably have to use these classes to create and manage your own database to store content. See Content Providers to learn the conventions for implementing a content provider. If you are working with data sent to you by a provider, you do not use these SQLite classes, but instead use the generic {@link android.database} classes.
The Android SDK and Android emulators both include the
sqlite3 command-line
database tool. On your development machine, run the tool from the
platform-tools/ folder of your SDK. On the emulator, run the tool
with adb shell, for example, adb shell sqlite3.
The version of SQLite depends on the version of Android. In the past, SQLite upgrades have been delivered as part of a new API level, but more recently SQLite may be upgraded within an API level. See the following table:
| Android API | SQLite Version |
|---|---|
| API 35 | 3.44.3 |
| API 34 | 3.42.0 |
| API 34 | 3.39 |
| API 33 | 3.32 |
| API 32 | 3.32 |
| API 31 | 3.32 |
| API 30 | 3.28 |
| API 28 | 3.22 |
| API 27 | 3.19 |
| API 26 | 3.18 |
| API 24 | 3.9 |
| API 21 | 3.8 |
| API 11 | 3.7 |
| API 8 | 3.6 |
| API 3 | 3.5 |
| API 1 | 3.4 |
Some device manufacturers include different versions of SQLite on their devices. There are two ways to programmatically determine the version number.
adb shell sqlite3 --version.
String query = "select sqlite_version() AS sqlite_version";
SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(":memory:", null);
Cursor cursor = db.rawQuery(query, null);
String sqliteVersion = "";
try {
if (cursor.moveToNext()) {
sqliteVersion = cursor.getString(0);
}
} finally {
cursor.close();
}