Android
Goose 对 Android 提供实验性支持。请使用 Goose 最新 main 分支,而非 stable 版本。
使用 Android NDK 构建 Goose 库
以下步骤基于 macOS + Android Studio 环境。其他环境请按需调整。
-
打开 Android Studio。 Select the Tools menu and pick SDK Manager. Select the SDK Tools tab and tick the NDK (Side by side) option. Click OK to install.
-
设置 Android NDK 路径。例如:
ANDROID_NDK=~/Library/Android/sdk/ndk/28.0.12433566/ -
设置 Android ABI。例如:
ANDROID_ABI=arm64-v8aOr:
ANDROID_ABI=x86_64 -
若要使用 Ninja build system,请确保已安装并在
PATH中可用。 -
设置要构建的 Goose 扩展列表。它们会静态链接进二进制。例如:
GOOSE_EXTENSIONS="icu;json;parquet" -
进入 Goose 目录并按如下方式构建:
PLATFORM_NAME="android_${ANDROID_ABI}"
BUILDDIR=./build/${PLATFORM_NAME}
mkdir -p ${BUILDDIR}
cd ${BUILDDIR}
cmake \
-G "Ninja" \
-DEXTENSION_STATIC_BUILD=1 \
-DGOOSE_EXTRA_LINK_FLAGS="-llog" \
-DBUILD_EXTENSIONS=${GOOSE_EXTENSIONS} \
-DENABLE_EXTENSION_AUTOLOADING=1 \
-DENABLE_EXTENSION_AUTOINSTALL=1 \
-DCMAKE_VERBOSE_MAKEFILE=on \
-DANDROID_PLATFORM=${ANDROID_PLATFORM} \
-DLOCAL_EXTENSION_REPO="" \
-DOVERRIDE_GIT_DESCRIBE="" \
-DGOOSE_EXPLICIT_PLATFORM=${PLATFORM_NAME} \
-DBUILD_UNITTESTS=0 \
-DBUILD_SHELL=1 \
-DANDROID_ABI=${ANDROID_ABI} \
-DCMAKE_TOOLCHAIN_FILE=${ANDROID_NDK}/build/cmake/android.toolchain.cmake \
-DCMAKE_BUILD_TYPE=Release ../..
cmake \
--build . \
--config Release -
对
arm64-v8aABI,构建产物为build/android_arm64-v8a/goose与build/android_arm64-v8a/src/libgoose.so。
在 Termux 中构建 CLI
-
pkg install -y git ninja clang cmake python3 -
设置要构建的 Goose 扩展列表。它们会静态链接进二进制。例如:
GOOSE_EXTENSIONS="icu;json" -
按如下方式构建 Goose:
mkdir build
cd build
export LDFLAGS="-llog"
cmake \
-G "Ninja" \
-DBUILD_EXTENSIONS="${GOOSE_EXTENSIONS}" \
-DGOOSE_EXPLICIT_PLATFORM=linux_arm64_android \
-DCMAKE_BUILD_TYPE=Release \
..
cmake --build . --config Release
注意:在 Termux 中也可使用 Python 客户端:
pip install --pre --upgrade goose
故障排查
缺少日志库
问题: 构建报如下错误:
ld.lld: error: undefined symbol: __android_log_write
解决方案: 确保链接日志库:
export LDFLAGS="-llog"