ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

如何从源码编译 LeanType?Android Studio + Gradle 构建完整教程

如何从源码编译 LeanType?Android Studio + Gradle 构建完整教程

【免费下载链接】LeanType

LeanType is an Open-source keyboard, fork of HeliBoard with additional features and customisation

项目地址:https://gitcode.com/gh_mirrors/le/LeanType
点击查看免费下载

LeanType 是一款免费开源的 Android 智能输入法,在 HeliBoard 基础上强化了 AI 校对、语音输入、手写识别与 OCR 等能力。本文带你从源码编译 LeanType:用 Android Studio 打开项目,配合 Gradle 构建系统,几分钟即可得到可安装的 LeanType 键盘 APK,支持 standard(在线)与 offline(离线)两种版本。

一、编译前准备:环境要求一览

LeanType 基于 Gradle 与 Android Gradle Plugin 构建,代码主体为 Kotlin,滑动输入(手势打字)等底层功能由 C++ 原生库(NDK 编译)实现,因此环境需要同时满足 Java 与 NDK 两套工具链。

组件版本要求出处
JDK17(Android Studio 自带即可)app/build.gradle.kts
Gradle8.13(由 wrapper 自动下载)gradle-wrapper.properties
Android Gradle Plugin8.13.2build.gradle.kts
Kotlin2.2.21build.gradle.kts
Android SDKcompileSdk 36 / targetSdk 35app/build.gradle.kts
NDK28.0.13004108app/build.gradle.kts
最低系统Android 5.0(standard 版要求 Android 6.0+)app/build.gradle.kts

💡 只需安装最新版 Android Studio,其余组件(SDK、NDK、Gradle)都可在首次同步时一键安装,或之后在Settings → SDK Manager中手动补装。

二、克隆仓库并打开项目

在项目根目录执行克隆(也可以使用 Android Studio 的File → Open → From Version Control直接填仓库地址):

git clone https://gitcode.com/gh_mirrors/le/LeanType

然后用 Android Studio 打开LeanType目录,等待 Gradle Sync 完成。首次同步会下载 Gradle 8.13 分发版和大量依赖(Compose、CameraX、Coil 等),耗时较长属正常现象。

若同步时提示 NDK 缺失,按提示安装NDK 28.0.13004108即可;原生库(滑动输入的libjni_latinime.so)由 Android.mk 通过 ndk-build 驱动编译,只构建armeabi-v7a和arm64-v8a两个 ABI。

三、读懂构建配置:Flavor 与 Build Variant

LeanType 用「产品风味(product flavor)× 构建类型(build type)」组合出多个可构建版本,配置见 settings.gradle 与 app/build.gradle.kts:

维度取值说明
Flavorstandard推荐版,可接入云端 AI,包名com.leanbitlab.leantype
Flavoroffline隐私版,OS 级屏蔽联网,包名后缀.offline
Build typedebug/debugNoMinify调试用,后者在 IDE 中构建更快
Build typerelease/nouserlib正式包,开启混淆与资源压缩

📌 仓库还包含一个独立工具模块tools/make-emoji-keys,用于生成 emoji 按键数据,与 App 打包无关,无需特别处理。

四、三步构建出 Debug APK

  1. 选择变体:打开左侧Build(或工具栏的 Build Variants 面板),为app模块选择standardDebug。
  2. 安装设备:连上 Android 手机并开启 USB 调试,或启动模拟器。
  3. 一键运行:点击工具栏 ▶ Run 按钮,等价于执行assembleStandardDebug+ 安装。

构建成功后,手机应用列表会出现 LeanType(debug 包名带.debug后缀,可与正式版共存)。进入系统「设置 → 输入法」启用 LeanType 即可开始输入。

五、命令行构建:用 Gradle 生成 APK

不依赖 IDE 也可以构建。在仓库根目录执行(首次运行会自动使用 wrapper 里的 Gradle 8.13):

# standard 版 Debug 包 ./gradlew :app:assembleStandardDebug # offline 版 Release 包(未签名,见下节) ./gradlew :app:assembleOfflineRelease

APK 输出在app/build/outputs/apk/下,文件名自动带有版本与变体标识,例如1-LeanType_4.2.9-standard-debug.apk(编号规则见 app/build.gradle.kts:standard 记为 1,offline 记为 2)。

六、生成可发布的签名 Release 包

Release 构建默认开启混淆(R8)和资源压缩,但未配置签名时产物不可安装。项目支持通过 keystore.properties 文件自动加载签名(仓库中不存在该文件,需自行新建在项目根目录):

storeFile=/path/to/your.keystore storePassword=你的库密码 keyAlias=你的别名 keyPassword=你的密钥密码

随后执行./gradlew :app:assembleStandardRelease,Gradle 会自动启用 V1/V2/V3 签名(配置见 signingConfigs)。

七、常见编译报错与快速修复

现象原因解决办法
NDK not configured未装 NDK 或版本不符SDK Manager 安装 28.0.13004108
Java 17 is requiredJDK 版本过低在Settings → Build Tools → Gradle中选用 JBR 17
Sync 阶段 OOM 崩溃堆内存不足调大 gradle.properties 中-Xmx(默认 2048m)
Release 包提示未签名缺少 keystore按第六节创建 keystore.properties
首次 Sync 卡住很久依赖量大、网络慢耐心等待;可开启 gradle.properties 中已默认启用的缓存加速二次构建

更多构建细节(布局文件位置、字典仓库约定等)可参考官方贡献指南 CONTRIBUTING.md。

八、构建结果速查

你想得到的产物执行命令
调试安装包(standard)./gradlew :app:assembleStandardDebug
离线隐私版(offline)./gradlew :app:assembleOfflineDebug
正式发布包(需 keystore)./gradlew :app:assembleStandardRelease

🎉 到这里,你已从源码完整编译出 LeanType 键盘。接下来不妨修改 app/src/main/assets/layouts/ 下的布局 JSON,重新构建一个真正属于你自己的键盘。

【免费下载链接】LeanType

LeanType is an Open-source keyboard, fork of HeliBoard with additional features and customisation

项目地址:https://gitcode.com/gh_mirrors/le/LeanType
点击查看免费下载

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进