SQLite Android 繫結

文件
登入

安裝

有三種方法可以將 SQLite Android 繫結新增至應用程式

  1. 透過將預先建置的 aar 檔案新增至應用程式的 Android Studio 專案。
  2. 透過建置 aar 檔案,然後如同 (1) 將其新增至應用程式的 Android Studio 專案。
  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 只是一個 zip 封存檔,其中包含一個 classes.jar 檔案,該檔案又包含 SQLite Android 繫結 Java 類別,以及一個包含每個平台原生程式庫的 jni/ 目錄。透過從 aar 檔案中提取這兩項內容,並將它們分別新增至專案中,通常可以在非 Android Studio 專案中使用 aar 檔案。

2. 建置自訂 aar 檔案

建置自訂 aar 檔案需要 Android SDK 和 NDK。

  1. 取得程式碼。SQLite Android 繫結的程式碼可以透過簽出 Fossil 儲存庫或下載 zip 檔案來取得。

    要使用 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 的使用者:可以從這裡以 zip 檔案取得與 Android API 級別 9 以上相容的版本的程式碼。或者,如果使用 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 sync」,然後在「sqlite3」模組中執行「assembleRelease」gradle 工作。

    使用命令列或 Android Studio 執行 gradle 工作都會在 sqlite3/build/outputs/aar/sqlite3-release.aar 建立 aar 檔案。

    建立自訂 aar 檔案後,即可按照上述說明在 Android Studio 應用程式中使用。aar 檔案的大小應約為 3.2MB。如果它比這個小很多(接近 100KB),則表示 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 程式碼所在的任何位置。