SQLite Android 绑定

文档
登录

安装

有三种方法可以将 SQLite Android 绑定添加到应用程序中

  1. 通过将预构建的 aar 文件添加到应用程序的 Android Studio 项目中。
  2. 通过构建 aar 文件,然后将其添加到应用程序的 Android Studio 项目中,如(1)所示。
  3. 通过将 SQLite Android 绑定源代码添加到应用程序代码并与其他应用程序代码一起构建。

默认情况下,SQLite Android 绑定支持 Android API 级别 16 及更高版本(Android 版本 4.1 及更高版本)。还有一个单独的版本支持 Android API 级别 9 及更高版本(Android 版本 2.3 及更高版本)。请注意,如果您希望使用与 API 级别 9 兼容的版本,则需要 获取代码 时进行额外步骤。

1. 使用预构建的 aar 文件

这是最直接的选择。 “aar” 文件类似于 jar 文件,但它可能包含编译的 java 类和本机代码。适用于 API 级别 16 及更高版本的最新 SQLite 版本的 aar 文件可从 此页面 获取。

将 aar 文件添加到 Android Studio 项目中涉及两个步骤

  1. 导入模块。在 Android Studio 2.1 中,这是通过选择 "文件" -> "新建" -> "新建模块..." 菜单,然后选择 "导入 JAR/AAR 包" 来完成的。
  2. 向主应用程序模块添加对新模块的依赖关系(或向将使用 SQLite Android 绑定的所有模块添加依赖关系)。在 Android Studio 2.1 中,可以使用项目结构对话框创建依赖关系(选择 "文件" -> "项目结构..."),或者通过将类似于以下代码添加到应用程序模块的 build.gradle 文件中创建依赖关系
        dependencies {
            // Change "sqlite-android-3130000" to the name of the new module!
            compile project(':sqlite-android-3130000')
        }

更详细的描述使用上述步骤创建非常简单的应用程序的步骤,请点击此处查看。

在撰写本文时,aar 文件只能直接用于 Android Studio 项目,不能用于使用其他 IDE 创建的项目(例如 Eclipse、IntelliJ IDEA)。但是,aar 只是一个包含 classes.jar 文件的 zip 档案,该文件又包含 SQLite Android 绑定 java 类和包含每个平台的本机库的 jni/ 目录。通过从 aar 文件中提取这两部分并将它们分别添加到项目中,通常可以在非 Android Studio 项目中使用 aar 文件。

2. 构建自定义 aar 文件

构建自定义 aar 文件需要 Android SDK 和 NDK。

  1. 获取代码。可以通过检出 fossil 存储库或下载 zip 文件来获取 SQLite Android 绑定的代码。

    要使用 fossil 获取代码,请使用以下一系列命令。在这种情况下,后续步骤中提到的“项目目录”是通过以下第二个命令创建的 sqlite 目录

        $ fossil clone http://www.sqlite.org/android android.fossil
        $ mkdir sqlite
        $ cd sqlite
        $ fossil open ../android.fossil

    或者,最新代码可以作为 zip 档案 下载。在这种情况下,“项目目录”是通过解压缩下载的档案创建的 SQLite_Android_Bindings/ 目录。

    API 级别 9-15 用户:与 Android API 级别 9 及更高版本兼容的版本的代码可以作为 zip 文件从 此处 获取。或者,如果使用 fossil,则上面的 fossil open 命令应替换为

        $ fossil open ../android.fossil api-level-9

  2. 配置本机库。

    最新版本的公共领域 SQLite 库与步骤 1 中下载的 SQLite Android 绑定代码捆绑在一起。如果您希望使用其他版本的 SQLite(例如包含专有 SEE 扩展 的版本),则替换以下位置的 sqlite3.csqlite3.h 文件

        sqlite3/src/main/jni/sqlite/sqlite3.c
        sqlite3/src/main/jni/sqlite/sqlite3.h

    默认情况下,SQLite 使用以下选项构建

        -DSQLITE_ENABLE_FTS5
        -DSQLITE_ENABLE_RTREE
        -DSQLITE_ENABLE_JSON1
        -DSQLITE_ENABLE_FTS3
    要使用其他命令行开关组合构建 SQLite 库,请编辑此位置的 Android.mk 文件
        sqlite3/src/main/jni/sqlite/Android.mk

  3. 构建和组装 aar 文件。要使用命令行组装 aar 文件,首先将环境变量 ANDROID_HOME 设置为 SDK 目录,然后从项目目录的“sqlite3”子目录中运行 gradle“assembleRelease”目标。例如
        $ export ANDROID_HOME=~/Android/Sdk/
        $ cd sqlite3
        $ ../gradlew assembleRelease

    使用 Android Studio 组装 aar 文件类似。使用 Android Studio 打开 SQLite Android 绑定项目,运行“gradle 同步”,然后在“sqlite3”模块中运行“assembleRelease”gradle 任务。

    使用命令行或 Android Studio 运行 gradle 任务会导致 aar 文件在以下位置创建:sqlite3/build/outputs/aar/sqlite3-release.aar

    创建自定义 aar 文件后,可以在 Android Studio 应用程序中使用它,如上所述。aar 文件的大小应约为 3.2 MB。如果它远小于此(接近 100 KB),则表示 aar 文件由于某种原因缺少本机库。请查看构建日志。

    如果在运行构建后编辑了步骤 2 中描述的 Android.mk 文件,则可能需要在重建 aar 文件之前运行 gradle“clean”目标(使用 ../gradlew clean 或通过 Android Studio),以确保构建正确。

3. 将源代码直接添加到应用程序

SQLite Android 绑定代码也可以直接添加到应用程序项目中,以便它以与所有其他应用程序代码相同的方式构建和部署。

要将 SQLite Android 绑定代码复制到应用程序中

  1. 以与 上面描述的 相同的方式获取代码。
  2. sqlite3/main/src/jni/ 目录的内容递归复制到应用程序或应用程序模块的 jni/ 目录中。然后,从 jni/ 目录的父级目录,运行 ndk-build 命令,如 此处所述
  3. sqlite3/main/src/java/ 目录的内容递归复制到应用程序 java 代码所在的位置。