diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..0d08e26
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,11 @@
+# To get started with Dependabot version updates, you'll need to specify which
+# package ecosystems to update and where the package manifests are located.
+# Please see the documentation for all configuration options:
+# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
+
+version: 2
+updates:
+ - package-ecosystem: "github-actions" # See documentation for possible values
+ directory: "/" # Location of package manifests
+ schedule:
+ interval: "weekly"
diff --git a/.github/workflows/compile.yml b/.github/workflows/compile.yml
index 51c2a14..87a7be5 100644
--- a/.github/workflows/compile.yml
+++ b/.github/workflows/compile.yml
@@ -9,22 +9,23 @@ on:
jobs:
build:
+ if: github.actor != 'dependabot[bot]'
runs-on: ubuntu-latest
steps:
- name: Setup Android NDK
- uses: nttld/setup-ndk@v1.2.0
+ uses: nttld/setup-ndk@v1.5.0
with:
- ndk-version: r25b
+ ndk-version: r26d
- name: Checkout code
- uses: actions/checkout@v3
+ uses: actions/checkout@v5.0.0
- name: Run make
run: make
- name: Upload build artifacts
- uses: actions/upload-artifact@v3.1.2
+ uses: actions/upload-artifact@v4.6.2
with:
path: |
libs
diff --git a/Makefile b/Makefile
index 40aae5e..a04c3e5 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
# http://www.sqlite.org/download.html
-SQLITE_VERSION ?= 3420000
-SQLITE_YEAR ?= 2023
+SQLITE_VERSION ?= 3500400
+SQLITE_YEAR ?= 2025
SQLITE_BASENAME := sqlite-amalgamation-$(SQLITE_VERSION)
diff --git a/README.md b/README.md
index eb29e0b..0327965 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,15 @@
# SQLite build scripts for Android
+
+
+
+
+[简体中文](README_zh.md) · [English](README.md)
+
+
+
+
+
This repository contains scripts to generate the following SQLite artifacts for Android:
- Statically Linked CLI (`sqlite3-static`)
- Dynamically Linked CLI (`sqlite3-dynamic`)
@@ -28,8 +38,8 @@ Extract year and version from it and put them into the Makefile as follows:
vi Makefile
...
-SQLITE_VERSION ?= 3410200
-SQLITE_YEAR ?= 2023
+SQLITE_VERSION ?= 3500400
+SQLITE_YEAR ?= 2025
...
```
diff --git a/README_zh.md b/README_zh.md
new file mode 100644
index 0000000..39abee0
--- /dev/null
+++ b/README_zh.md
@@ -0,0 +1,161 @@
+# SQLite 构建 for Android
+
+
+
+
+
+[简体中文](README_zh.md) · [English](README.md)
+
+
+
+
+
+此存储库包含为 Android 生成以下版本 SQLite 的脚本:
+- 静态链接 命令行 (`sqlite3-static`)
+- 动态链接 命令行 (`sqlite3-dynamic`)
+- 静态库 (`libsqlite3.a`)
+- 动态链接共享对象库 (`libsqlite3.so`)
+
+通过一个命令为以下 ABI 生成二进制文件,文件在以下文件夹中:`armeabi-v7`、`arm64-v8a`、`x86 `、`x86_64`。
+
+## 如何通过 Github Actions 下载编译后的二进制文件
+
+此项目在每次提交时都会触发 GitHub Workflows 自动编译。
+可以通过 [Actions tab](https://github.com/zjw2017/sqlite3-android/actions) 方式下载编译后的工件
+
+如果 artifacts 不再可下载,因为距离上次提交已经90多天了,**请随时发送更新 SQLite 版本号的PR**,这样我就可以批准它并运行新工件的生成。
+
+您也可以 fork 该存储库并在您的存储库中手动启动工作流。
+
+
+## 如何更新 SQLite 版本
+
+从 [官方 SQLite 下载页面](http://www.sqlite.org/download.html) 获取最新的 `sqlite-amalgamation` 下载链接。
+从中提取年份和版本,并将它们放入 Makefile。例如:
+
+```bash
+vi Makefile
+
+...
+SQLITE_VERSION ?= 3500400
+SQLITE_YEAR ?= 2025
+...
+```
+
+它会为您下载和编译源代码。
+
+
+## 如何自行编译
+
+- 安装 [Android NDK](https://developer.android.google.cn/ndk/downloads?hl=zh-cn) 并配置您的环境,以便在PATH中找到命令“ndk-build”
+对于交叉编译和构建 Android 原生代码应用程序而言,这是一个必要的依赖项。
+
+
+- 编译命令行和库:
+ ```bash
+ make clean
+ make
+ ```
+
+- 预期输出:
+ ```bash
+ ...
+ [armeabi-v7a] Compile thumb : sqlite3-dynamic-cli <= shell.c
+ [armeabi-v7a] Compile thumb : sqlite3-dynamic-cli <= sqlite3.c
+ [armeabi-v7a] Compile thumb : sqlite3-so <= sqlite3.c
+ [armeabi-v7a] SharedLibrary : libsqlite3.so
+ [armeabi-v7a] Executable : sqlite3-dynamic
+ [armeabi-v7a] Install : sqlite3-dynamic => libs/armeabi-v7a/sqlite3-dynamic
+ [armeabi-v7a] Install : libsqlite3.so => libs/armeabi-v7a/libsqlite3.so
+ [armeabi-v7a] Compile thumb : sqlite3-static-cli <= shell.c
+ [armeabi-v7a] Compile thumb : sqlite3-static-cli <= sqlite3.c
+ [armeabi-v7a] Compile thumb : sqlite3-a <= sqlite3.c
+ [armeabi-v7a] StaticLibrary : libsqlite3.a
+ [armeabi-v7a] Executable : sqlite3-static
+ [armeabi-v7a] Install : sqlite3-static => libs/armeabi-v7a/sqlite3-static
+ [arm64-v8a] Compile : sqlite3-dynamic-cli <= shell.c
+ [arm64-v8a] Compile : sqlite3-dynamic-cli <= sqlite3.c
+ [arm64-v8a] Compile : sqlite3-so <= sqlite3.c
+ [arm64-v8a] SharedLibrary : libsqlite3.so
+ [arm64-v8a] Executable : sqlite3-dynamic
+ [arm64-v8a] Install : sqlite3-dynamic => libs/arm64-v8a/sqlite3-dynamic
+ [arm64-v8a] Install : libsqlite3.so => libs/arm64-v8a/libsqlite3.so
+ [arm64-v8a] Compile : sqlite3-static-cli <= shell.c
+ [arm64-v8a] Compile : sqlite3-static-cli <= sqlite3.c
+ [arm64-v8a] Compile : sqlite3-a <= sqlite3.c
+ [arm64-v8a] StaticLibrary : libsqlite3.a
+ [arm64-v8a] Executable : sqlite3-static
+ [arm64-v8a] Install : sqlite3-static => libs/arm64-v8a/sqlite3-static
+ [x86] Compile : sqlite3-dynamic-cli <= shell.c
+ [x86] Compile : sqlite3-dynamic-cli <= sqlite3.c
+ [x86] Compile : sqlite3-so <= sqlite3.c
+ [x86] SharedLibrary : libsqlite3.so
+ [x86] Executable : sqlite3-dynamic
+ [x86] Install : sqlite3-dynamic => libs/x86/sqlite3-dynamic
+ [x86] Install : libsqlite3.so => libs/x86/libsqlite3.so
+ [x86] Compile : sqlite3-static-cli <= shell.c
+ [x86] Compile : sqlite3-static-cli <= sqlite3.c
+ [x86] Compile : sqlite3-a <= sqlite3.c
+ [x86] StaticLibrary : libsqlite3.a
+ [x86] Executable : sqlite3-static
+ [x86] Install : sqlite3-static => libs/x86/sqlite3-static
+ [x86_64] Compile : sqlite3-dynamic-cli <= shell.c
+ [x86_64] Compile : sqlite3-dynamic-cli <= sqlite3.c
+ [x86_64] Compile : sqlite3-so <= sqlite3.c
+ [x86_64] SharedLibrary : libsqlite3.so
+ [x86_64] Executable : sqlite3-dynamic
+ [x86_64] Install : sqlite3-dynamic => libs/x86_64/sqlite3-dynamic
+ [x86_64] Install : libsqlite3.so => libs/x86_64/libsqlite3.so
+ [x86_64] Compile : sqlite3-static-cli <= shell.c
+ [x86_64] Compile : sqlite3-static-cli <= sqlite3.c
+ [x86_64] Compile : sqlite3-a <= sqlite3.c
+ [x86_64] StaticLibrary : libsqlite3.a
+ [x86_64] Executable : sqlite3-static
+ [x86_64] Install : sqlite3-static => libs/x86_64/sqlite3-static
+ ...
+ ```
+
+
+## Artifacts 位置
+
+- 命令行:
+ ```
+ libs/armeabi-v7a/sqlite3-static
+ libs/armeabi-v7a/sqlite3-dynamic
+ libs/arm64-v8a/sqlite3-static
+ libs/arm64-v8a/sqlite3-dynamic
+ libs/x86_64/sqlite3-static
+ libs/x86_64/sqlite3-dynamic
+ libs/x86/sqlite3-static
+ libs/x86/sqlite3-dynamic
+ ```
+
+- 库:
+ ```
+ obj/local/armeabi-v7a/libsqlite3.a
+ obj/local/arm64-v8a/libsqlite3.a
+ obj/local/x86_64/libsqlite3.a
+ obj/local/x86/libsqlite3.a
+ libs/armeabi-v7a/libsqlite3.so
+ libs/arm64-v8a/libsqlite3.so
+ libs/x86_64/libsqlite3.so
+ libs/x86/libsqlite3.so
+ ```
+
+
+## 如何将 SQLite 推送到您的Android设备
+
+将 `arm64-v8a` 替换为您需要的 ABI
+
+```bash
+adb push libs/arm64-v8a/sqlite3-static /sdcard/sqlite3
+adb shell
+mv /sdcard/sqlite3 /data/local/
+chmod 755 /data/local/sqlite3
+/data/local/sqlite3 -help
+```
+
+请注意,路径和权限可能因您的 Android 设备或环境而异。
+
+
+## Happy hacking!
diff --git a/jni/Application.mk b/jni/Application.mk
index bce6289..3ce17aa 100644
--- a/jni/Application.mk
+++ b/jni/Application.mk
@@ -1,3 +1,4 @@
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
APP_CPPFLAGS += -fexceptions -frtti
APP_STL := c++_shared
+APP_PLATFORM := android-34