Note
在为 Android 开发 Slint 应用程序时,你只能使用 Rust 作为编程语言。
另请参阅我们 Rust API 文档中 android 模块的文档。
项目设置
Slint 使用 android-activity crate 作为与 操作系统的接口,它被重新导出为 slint::android::android_activity。要开始使用,请按照以下步骤操作:
首先,你的项目需要是一个 library crate。将以下内容添加到你的 Cargo.toml 中:
[lib]crate_type = ["cdylib"]你还需要选择要使用的 android-activity 版本:
[dependencies]slint = { version = "1.15.0", features = ["backend-android-activity-06"] }此特性可与任何 target_os 一起编译,并可以安全地在任何位置启用。
其次,在你的 lib.rs 中,添加以下函数:
#[cfg(target_os = "android")]#[unsafe(no_mangle)]fn android_main(app: slint::android::AndroidApp) { slint::android::init(app).unwrap(); let main_window = ...; // window generated by the Slint macros main_window.run().unwrap();}rs
你还可以通过将 slint::android::init 的调用替换为 slint::android::init_with_event_listener 来添加一个 Android 事件 (android_activity::PollEvent) 监听器。
所有必要的代码更改到此为止。在下一节中,我们将设置用于 构建项目的环境。
Android 设置
Android 开发工作流程围绕 adb 命令行工具展开。使用它来连接 Android 设备和模拟器以上传和运行应用程序(以及执行此处不相关的其他操作)。
安装 Android 开发环境的最简单方法是下载并安装 Android Studio。在设置面板中,导航到 Android SDK 页面并安装你需要的所有 SDK 版本。我们建议使用可用的最新版本, 因为它可以配置为向后兼容旧版本的 Android。此管理器 可在 "Languages & Frameworks" > "Android SDK" 中的设置中找到。

另请注意顶部的 SDK 位置,如果构建工具无法自动检测到该路径, 则可能需要将其用作 ANDROID_HOME 环境变量。
将 platform-tools 目录添加到你的 PATH 中,以便 adb 工具在命令行中可用。
要获取当前连接到你的机器的 Android 设备、模拟器和仿真器的列表,请运行
Terminal window
adb devices你可以通过以下方式连接到网络上的物理设备
Terminal window
adb connect <host>host 是设备的 IP 地址。请注意,此操作要求设备已启用开发模式。
虚拟设备设置
我们建议首先使用虚拟设备进行开发,因为它可以加快开发周期。 但是,最终你仍必须在设备上进行测试,以确保界面在触摸屏上可用,并检查所有文本是否足够大等。
要创建并运行虚拟设备,请使用 Android Studio 中提供的 Virtual Device Manager。你可以从主屏幕的 "More Actions" 中打开它:

你可以使用不同的配置创建任意数量的设备:

一种好的做法是拥有一台支持你的应用程序最低 API 级别的设备 以及另一台运行最新版本的设备,以确保它可以在两者上运行。
运行虚拟设备会自动连接到 adb。
虚拟键盘
请注意,根据你选择的设备模板,此处创建的虚拟设备默认可能使用 硬件键盘,这对于测试你的应用程序没有帮助。不幸的是, 我们无法找到在 Virtual Device Manager 中直接禁用它的方法。
要解决此问题,请在管理器中单击设备旁边的三个竖点以打开菜单 并选择 "Show on disk"。在打开的目录中,在你喜欢的文本编辑器中打开 config.ini 文件。导航到 hw.keyboard=yes 这一行并将其更改为 hw.keyboard=no,然后保存文件。
接下来的挑战是仍然没有键盘:

在键盘设置中禁用触笔输入:

在列表中选择 "Write in textfields",然后禁用该功能。这将启用 常规虚拟键盘。
运行应用程序
有多种方法可以构建、上传和运行用 Rust 编写的 Android 应用。本页介绍的是 一种使用 xbuild 的方法。该方法完全不使用 Android Studio。
在撰写本文时,xbuild 的当前版本(0.2.0)严重过时,并且 包含已在 master 分支中修复的相关 bug。因此,不要使用 cargo install xbuild 来 安装它,而要使用 git 版本:
Terminal window
cargo install --git https://github.com/rust-mobile/xbuild.gitxbuild 的命令行工具简称为 x。例如,要获取已连接设备的列表,请使用
Terminal window
x devices请注意,与上面的 adb 不同,此工具还支持 iOS 设备和模拟器。但是,对于 Android 设备,它只是与 adb 通信,因此如果你使用该工具连接设备,它也将出现在此处。
要构建你的项目,请导航到包含 Cargo.toml 的目录并运行
Terminal window
x run --device <id>其中 <id> 显示在 x devices 中作为最左边的列,对于虚拟 Android 设备,类似于 adb:emulator-1234。
这应该会构建你的项目,将其上传到设备并运行。目标平台是自动检测的。
要重新编译并测试更改,请按 ctrl-c 并再次运行相同的命令。设备上正在运行的版本将被自动替换。
故障排除
如果 x run 无法工作,请运行 x doctor 来检查你是否已安装所有必需的工具, 并且它们能被 xbuild 找到。
构建
分发 Android 应用程序的方法有很多,xbuild 通过 x build 支持所有这些方法。 要获取有关配置的信息,请使用 x build --help。
例如,要构建一个 .apk 文件,请使用类似以下命令
Terminal window
x build --platform android --arch arm64 --format apk --release然后该 apk 位于 target/x/release/android/<name>.apk。