自 2025 年 3 月 27 日起,我们建议您使用 android-latest-release
而非 aosp-main
构建 AOSP 并为其做出贡献。如需了解详情,请参阅 AOSP 的变更。
将 Trade Federation 与 Android 脚本层一起使用
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
Android 脚本层(即 SL4A)是一个自动化工具集,用于以独立于平台的方式调用 Android API。它既支持通过 adb
实现远程自动化,又支持通过一系列轻量级转换层从设备上执行脚本。
该项目位于 platform/external/sl4a。
使用
您可以按照 SL4A README 手动构建并安装 SL4A。在通过 Tradefed 运行时,您可以利用一些自动化测试框架实用程序,使之更易于使用。
下载并安装
您可以首先查看 BT-discovery-sl4a.xml,这是一个使用两部设备的 Tradefed 配置示例。大多数设备 build 的 tests
文件夹中都有 SL4A.apk
。
上述 Tradefed 示例将自动获取相应版本,刷写这两部设备并在这两部设备上安装 SL4A.apk
。您可以这样运行:
source build/envsetup.sh
lunch
make sl4a
tradefed.sh run google/example/BT-discovery-sl4a
或者,在构建后,运行以下命令:
./tradefed.sh run google/example/BT-discovery-sl4a
使用 SL4A 在 Tradefed 中编写测试
您可以按照上述测试样本 Sl4aBluetoothDiscovery.java 来编写。该样本给出了一个很好的例子,说明了在 Tradefed 测试中使用 SL4A 的流程。
SL4A API 文档
可以生成通过 SL4A 提供的回调的完整列表。从 SL4A 源目录 platform/external/sl4a/
中,运行以下命令:
python Docs/generate_api_reference_md.py
在 Docs 目录中,将有一个 ApiReference.md
文件,其中包含 SL4A 中可用的 RPC 函数,以及这些 RPC 函数的文档。
本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-03-26。
[null,null,["最后更新时间 (UTC):2025-03-26。"],[],[],null,["# Use Trade Federation with Scripting Layer for Android\n\nScripting Layer for Android, SL4A, is an\nautomation toolset for calling Android APIs in a platform-independent manner.\nIt supports both remote automation via `adb` and execution of scripts\nfrom on-device via a series of lightweight translation layers.\n\nThe project is located at [platform/external/sl4a](https://android.googlesource.com/platform/external/sl4a/).\n\nUse\n---\n\nYou can follow the [SL4A README](https://android.googlesource.com/platform/external/sl4a/+/refs/heads/android16-release/README.md)\nto build and install it manually. And when running through Tradefed, you\ncan take advantage of some of the harness utilities to make use easier.\n\n### Download and install\n\nYou can start by reviewing\n[BT-discovery-sl4a.xml](https://android.googlesource.com/platform/tools/tradefederation/contrib/+/refs/heads/android16-release/res/config/google/example/BT-discovery-sl4a.xml),\nan example Tradefed configuration that uses two devices. The `SL4A.apk` is\navailable in most device builds within their `tests` folder.\n\nThe Tradefed example above automatically fetches the builds, flashes both\ndevices and installs `SL4A.apk` on both devices. You can run it like so: \n\n source build/envsetup.sh\n lunch\n make sl4a\n tradefed.sh run google/example/BT-discovery-sl4a\n\nOr once built: \n\n ./tradefed.sh run google/example/BT-discovery-sl4a\n\n### Write a test in Tradefed using SL4A\n\nYou can follow the test sample describe above:\n[Sl4aBluetoothDiscovery.java](https://android.googlesource.com/platform/tools/tradefederation/contrib/+/refs/heads/android16-release/src/com/android/tradefed/Sl4aBluetoothDiscovery.java).\nThis gives a good example of the flow to use SL4A within a Tradefed test.\n\n### SL4A API documentation\n\nThe complete list of callbacks available through SL4A can be generated. From the\nSL4A source directory, `platform/external/sl4a/`, run this command: \n\n python Docs/generate_api_reference_md.py\n\nIn the Docs directory there will be an `ApiReference.md` file that contains\nthe RPC functions available in SL4A, as well as documentation for the RPC\nfunctions."]]