Use Trade Federation with Scripting Layer for Android

Scripting Layer for Android, SL4A, is an automation toolset for calling Android APIs in a platform-independent manner. It supports both remote automation via adb and execution of scripts from on-device via a series of lightweight translation layers.

The project is located at platform/external/sl4a.

Use

You can follow the SL4A README to build and install it manually. And when running through Tradefed, you can take advantage of some of the harness utilities to make use easier.

Download and install

You can start by reviewing BT-discovery-sl4a.xml, an example Tradefed configuration that uses two devices. The SL4A.apk is available in most device builds within their tests folder.

The Tradefed example above automatically fetches the builds, flashes both devices and installs SL4A.apk on both devices. You can run it like so:

source build/envsetup.sh
lunch
make sl4a
tradefed.sh run google/example/BT-discovery-sl4a

Or once built:

./tradefed.sh run google/example/BT-discovery-sl4a

Write a test in Tradefed using SL4A

You can follow the test sample describe above: Sl4aBluetoothDiscovery.java. This gives a good example of the flow to use SL4A within a Tradefed test.

SL4A API documentation

The complete list of callbacks available through SL4A can be generated. From the SL4A source directory, platform/external/sl4a/, run this command:

python Docs/generate_api_reference_md.py

In the Docs directory there will be an ApiReference.md file that contains the RPC functions available in SL4A, as well as documentation for the RPC functions.