Xime 源码构建指南:从 clone 子模块到 Gradle 打包 Release APK 全步骤

发布时间:2026/10/14 19:42:04

Xime 源码构建指南:从 clone 子模块到 Gradle 打包 Release APK 全步骤 【免费下载链接】Xime我的自用安卓输入法基于Rime 构建部分功能由本人设计的本地AI模型驱动支持五笔/拼音/自定义方案。项目地址https://gitcode.com/gh_mirrors/xi/Xime点击查看免费下载Xime 输入法是基于 Rime 引擎的开源安卓输入法支持五笔/拼音/自定义方案并内置本地 AI 联想预测、离线语音识别等能力。本文带你从克隆子模块开始一步步完成 Xime 源码构建最终用 Gradle 打包出可安装的 Release APK。 全程只需要Git、JDK、Android SDK 工具链和一条 Gradle 命令。构建完成后的效果一览打包出的 APK 安装后你会得到这样一套输入法全键盘、T9 九宫格、悬浮键盘、符号、语音输入一应俱全界面为 Material 3 风格。环境准备清单构建涉及 Kotlin 应用 C 原生库Rime 引擎、ONNX 推理环境如下以项目 CI 配置为准参考 app/build.gradle.kts 与 .github/workflows/release.yml组件版本说明JDK17与 CI 使用一致的 Temurin 发行版Git任意较新版本需支持 submoduleGradle9.8.0由 gradle/wrapper/gradle-wrapper.properties 自动下载已配国内镜像Android SDK Platform37.2含 minorcompileSdk 37NDK29.0.14206865编译 Rime/ASR 等原生库CMake3.22.1AGP 指定版本Ninja任意原生构建后端 提示项目依赖下载已在 settings.gradle.kts 中内置了国内 Maven 镜像无需额外配置代理JVM 堆内存默认 4GB见 gradle.properties建议机器内存 ≥ 8GB并预留约 15GB 磁盘空间。Windows 用户请全程把下文的./gradlew换成gradlew.bat。第一步克隆仓库并拉取全部子模块Xime 的核心逻辑分散在 7 个子模块中包括 Rime 引擎 fork、Lua 支持、T9/预测插件和默认五笔方案资源完整清单见 .gitmodules。方式一一条命令克隆推荐git clone --recursive https://gitcode.com/gh_mirrors/xi/Xime cd Xime方式二已克隆但未拉子模块时补拉git submodule update --init --recursive克隆完成后重点确认以下目录不是空目录子模块路径作用librimeapp/src/main/jni/librimeRime 引擎核心snappyapp/src/main/jni/snappyleveldb 压缩依赖librime-lua / -depsapp/src/main/jni/librime-lua*Lua 插件运行时librime-octagramapp/src/main/jni/librime-octagramn-gram 用户词典librime-predictapp/src/main/jni/librime-predict候选词预测rime 方案资源app/src/main/assets/rime默认五笔/拼音方案与词库体积较大第二步安装 NDK、SDK Platform 与 CMake在 Android Studio 的 SDK Manager 中勾选安装或在命令行执行sdkmanager platforms;android-37.2 ndk;29.0.14206865 cmake;3.22.1 ndk-bundleLinux/macOS 若系统缺少 ninja可另行安装如sudo apt-get install ninja-build。第三步首次构建Debug验证环境./gradlew assembleDebug --quiet首次构建耗时较长约 20~60 分钟因为会自动完成以下工作由 app/build-logic/tasks-native.gradle.kts 驱动下载官方 onnxruntime-android AARAI 推理引擎无需自行编译下载并解压 Boost 1.89CMake 配置期自动执行含镜像回退见 app/src/main/jni/cmake/Boost.cmake下载 kaldi-native-fbank / kissfft 用于离线语音识别编译全部原生库librime、T9 模块、ONNX JNI、ASR JNI见 app/src/main/jni/CMakeLists.txt。构建成功后产物位于app/build/outputs/apk/debug/可先用adb install -r装到手机验证环境无误。第四步Gradle 打包 Release APK./gradlew assembleReleaseRelease 构建开启 R8 混淆与资源压缩产物按 ABI 拆分输出在app/build/outputs/apk/release/命名规则为Xime-版本号-架构.apkXime-3.1.0-arm64-v8a.apk # 绝大多数真机选这个 Xime-3.1.0-armeabi-v7a.apk # 旧款 32 位手机 Xime-3.1.0-x86_64.apk # 模拟器 Xime-3.1.0-universal.apk # 全架构合一体积大版本号由 app/build.gradle.kts 中的versionCode/versionName决定。可选为 Release APK 配置签名若未配置签名文件assembleRelease会产出未签名的 APKCI 通过注入密钥签名参考 .github/workflows/release.yml。本地发布可签名 APK 的操作用keytool生成密钥库keytool -genkey -v -keystore xime-release.jks -keyalg RSA -keysize 2048 -validity 10000 -alias xime复制模板并填入你的值cp app/keystore.properties.example app/keystore.properties按 app/keystore.properties.example 的字段storeFile、storePassword、keyAlias、keyPassword填写后重新执行./gradlew assembleRelease即可得到签名 APK。⚠️keystore.properties已被 gitignore切勿提交到仓库。可选一并打包 TS 插件包应用内置扩展商店插件为 TypeScript 编写plugins/name/main.ts由 Rust CLIxipm编译打包为.xipk。如需要完整内置插件集# 需先安装 Rust 工具链编译并打包全部插件到 build/plugin-release/ bash scripts/build-plugins.sh # 或打包并把内置插件同步进 app assetsdebug 构建自动安装 bash scripts/build-plugins.sh --with-assetsCLI 用法详见 tools/xime-plugin/README.md插件脚本入口见 scripts/build-plugins.sh。安装与验证adb install -r app/build/outputs/apk/release/Xime-3.1.0-arm64-v8a.apk打开系统设置 → 语言和输入法 → 启用Xime在输入法列表中切换为 Xime输入测试词验证 Rime 引擎工作正常签名完整性可用apksigner verify --print-certs apk校验与 CI 做法一致。常见问题 FAQQ1clone 后子模块目录是空的仓库需递归拉取子模块补跑git submodule update --init --recursive。其中app/src/main/assets/rime词库较大网络不稳可多试几次Git 支持断点续传。Q2Boost / ONNX 下载失败下载均带镜像回退与自动重试app/build-logic/tasks-native.gradle.kts、app/src/main/jni/cmake/Boost.cmake。失败后可直接重跑构建已下载的部分会复用缓存也可手动下载后放入app/src/main/jni/boost/目录。Q3提示 CMake 版本不对或找不到SDK Manager 中安装 CMake 3.22.1AGP 在 app/build.gradle.kts 中指定了version 3.22.1不要用系统自带的高版本替代。Q4JDK 装哪个版本JDK 17。Kotlin/Java 编译目标均为 17低于或过高都可能触发工具链自动下载或报错。Q5能执行./gradlew clean吗项目规则明确禁止使用./gradlew clean见 AGENTS.md它会清空增量产物导致原生库全量重编。构建异常时优先删除app/.cxx缓存目录或重装 NDK。Q6只想跑测试./gradlew test跑 JVM 单元测试真机插桩测试见 run_tests.sh 中的用法。小结整个流程只有四步git clone --recursive拉齐 7 个子模块SDK Manager 装好 NDK 29.0.14206865 Platform 37.2 CMake 3.22.1./gradlew assembleDebug验证环境./gradlew assembleRelease配app/keystore.properties可产出签名包。更多项目背景与使用说明可阅读 README.zh-CN.md。构建顺利的话一杯茶的时间你就能把这只自研 Rime 输入法跑在自己手机上了。赞分享【免费下载链接】Xime我的自用安卓输入法基于Rime 构建部分功能由本人设计的本地AI模型驱动支持五笔/拼音/自定义方案。项目地址https://gitcode.com/gh_mirrors/xi/Xime点击查看免费下载相关推荐Drift 类型安全魔法如何用代码生成避免运行时错误Drift 类型安全魔法如何用代码生成避免运行时错误 Drift 是一个为 Flutter 和 Dart 构建的响应式持久化库基于 SQLite 构建。它的SDL3 Android 移植实战从 Gradle 构建到 APK 打包与原生调试全指南SDL3 Android 移植实战从 Gradle 构建到 APK 打包与原生调试全指南 本文以 SDL 仓库自带的 docs/README android.音视频游戏开发跨平台如何为旧款Mac解锁新功能OpenCore Legacy Patcher实用指南如何为旧款Mac解锁新功能OpenCore Legacy Patcher实用指南 你是否曾经看着自己的旧款Mac电脑感叹它无法升级到最新的macOS系统苹操作系统固件驱动开发创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/14 19:42:04

上班族长期看屏幕,干眼症用玻璃酸钠滴眼液注意事项

上班族长期看屏幕,干眼症用玻璃酸钠滴眼液注意事项现如今电脑办公、手机通勤已经成为上班族的日常。长时间紧盯电子屏幕,眨眼次数会不自觉减少,泪液蒸发过快,很多人被眼睛干涩、异物感、酸胀畏光等干眼问题困扰。根据《中国干眼临…

2026/10/14 19:37:03

电商税务核算:6 大税种的精细化处理

电商税务为什么比传统零售难 3 倍传统零售涉税面相对窄:增值税 企业所得税 个税 印花税,4 个税种撑起全部税务链路。电商的涉税面要宽得多。一家年 GMV 3 亿、同时在京东 POP 抖店 支付宝 亚马逊 速卖通运营的中型电商公司,至少要面对…

2026/10/14 19:37:03

旺店通WMS对接全流程:订单、库存与状态回传落地指南

简介:旺店通WMS对接流程代码包是一份面向供应链与物流领域软件开发工程师的完整对接方案,重点解决企业系统与旺店通WMS之间的WebAPI接口集成问题。包内涵盖接口地址说明、销售出库单查询接口、接口调用规范以及标准定制接口的使用方法,并提供…

2026/10/14 21:07:52

实现 Android 字符设备驱动

这个模块共有四篇: 1.实现 Android 字符设备驱动 2.Android 15 及以上版本创建系统级 app 并测试驱动 3.在 Android 系统中自定义 LedManagerService 服务并提供给 app 使用 4.为 LedManagerService 添加区权限申请功能 一、开发环境 LineageOS 23.2 (…

2026/10/14 21:07:52

微信小程序扫码连WiFi:完整源码与权限避坑指南

简介:微信扫码一键连接WiFi的小程序完整源码,专为需要在小程序端快速实现扫码配网功能的开发者准备,也适合刚接触小程序开发的学习者对照研究。压缩包共16个文件,以脚本、配置、样式表和页面结构四类文件为主,整体仅10…

2026/10/14 21:07:52

ffmpeg精准提取MP4音频:保音质、多音轨选择与时间轴对齐

简介:本资源是一套面向多媒体开发工程师、音视频处理初学者及C#/.NET开发者的技术实践包,聚焦使用FFmpeg从MP4视频中高效提取并转码为MP3音频的核心场景。内容涵盖命令行基础语法详解、质量控制参数(如-b:a 128k)、多语言调用方案…

2026/10/14 21:07:52

jdk-8u431-windows-x64.zip 环境配置与避坑指南

简介:jdk-8u431-windows-x64.zip 是面向 Java 开发者、运维人员及计算机专业学生的 JDK 1.8 第 431 次更新的 Windows 64 位安装包,适合搭建 Java 8 开发环境、维护旧有企业级应用或学习 Java 8 核心特性。压缩包共 458 个文件,约 123.33MB&a…

2026/10/14 11:31:03

Python调用Gemini Structured Outputs实现工单路由门禁

客服工单最怕的不是模型“答错一句话”,而是它给出一段看起来合理的说明,程序却从中猜错优先级。通俗做法是:要求模型只交 JSON(JavaScript Object Notation,轻量数据格式),再让代码验证它。Gem…

2026/10/14 17:41:07

Spring Boot超市进销存系统毕设实战:从需求拆解到答辩通关

最近带的一个学生项目组里,有A同学跑来问我:选什么毕设题目最稳妥,既能让评审老师觉得工作量够,又不会在答辩时被问到语无伦次。我第一反应就是推荐基于Spring Boot的超市仓库管理系统——也就是超市进销存系统。这个题目乍一看平…

2026/10/14 2:32:55

Flutter StatefulWidget 生命周期核心解析

很多刚开始接触 Flutter 的朋友,在看完一堆“Hello World”和基础组件之后,大概率都会撞上同一堵墙:StatefulWidget 里那堆 initState、build、dispose 方法,到底什么时候被调用?为什么顺序是那样?在里面到…

2026/10/14 0:00:33

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:33

macOS/iOS高精度计时:mach_absolute_time原理与实战

1. 项目概述:为什么mach_absolute_time是 macOS/iOS 时间测量的“黄金标准”在 macOS 和 iOS 开发中,我见过太多人用CFAbsoluteTimeGetCurrent()或NSDate.timeIntervalSinceReferenceDate做性能打点,结果在高精度场景下被系统时钟跳变、NTP 同…

2026/10/14 0:00:33

SCORM课件演示与测试全解析:从API通信到自动化验证

简介:这是一套遵循SCORM标准的交互式课件演示与测试资源,面向E-Learning课程开发者、LMS平台测试人员及在线教学从业者,用于验证课件在不同学习管理系统中的识别、传递与跟踪能力。压缩包共28个文件,约12.07MB,以swf动…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑