commit | 98aaa98a29101aa02c2bd3f665fdbbbb07c70007 | [log] [tgz] |
---|---|---|
author | Martin Brabham <optedoblivion@google.com> | Mon Oct 10 20:23:19 2022 +0000 |
committer | Cherrypicker Worker <android-build-cherrypicker-worker@google.com> | Thu Oct 20 21:13:42 2022 +0000 |
tree | c4e1b11b61a7fa8af8edafce074ad3b2af829774 | |
parent | 23a53f42c4245a948bb5052c83ac9a62a7307dc3 [diff] |
Make this not fail if test passed an address that doesn't exist. It doesn't make sense for the exception being thrown if an address the application doesn't know about gets passed by the test application. This causes a Test Error and cannot be computed as a Test Failure and can happen intermittently causing flake. Bug: 251486965 Test: system/gd/cert/run --clean --sl4a_sl4a OobPairingTest.test_le_bond_oob_stress Tag: #stability Change-Id: Ic862998179796b4f5f72b43279bde569a5ca70bd (cherry picked from commit 0005ed746079223cadd4a514c272e0790f08bc1c) Merged-In: Ic862998179796b4f5f72b43279bde569a5ca70bd
Originally authored by Damon Kohler, 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 as well as execution of scripts from on-device via a series of lightweight translation layers.
Due to its inclusion in AOSP as a privileged app, building SL4A requires a system build.
For the initial build of Android:
cd <ANDROID_SOURCE_ROOT> source build/envsetup.sh lunch aosp_<TARGET> make [-j15]
where <ANDROID_SOURCE_ROOT>
is the root directory of the android tree and <TARGET>
is the lunch target name
Then Build SL4A:
cd <ANDROID_SOURCE_ROOT>/external/sl4a mm [-j15]
If you are not using a custom buildspec, create one as follows:
cp <ANDROID_SOURCE_ROOT>/build/buildspec.mk.default <ANDROID_SOURCE_ROOT>/buildspec.mk
Modify the buildspec to build SL4A as a custom module by editing the line ‘#CUSTOM_MODULES:=’ to ‘CUSTOM_MODULES:=sl4a’:
sed -i 's/#CUSTOM_MODULES:=/CUSTOM_MODULES:=sl4a/' <ANDROID_SOURCE_ROOT>/buildspec.mk
Run the following command:
adb install -r <ANDROID_SOURCE_ROOT>/out/target/product/<TARGET>/testcases/sl4a/arm64/sl4a.apk
a) SL4A may be launched from Android as a normal App; or
b) To enable RPC access from the command prompt:
adb forward tcp:<HOST_PORT_NUM> tcp:<DEVICE_PORT_NUM> adb shell "am start -a com.googlecode.android_scripting.action.LAUNCH_SERVER \ --ei com.googlecode.android_scripting.extra.USE_SERVICE_PORT <DEVICE_PORT_NUM> \ com.googlecode.android_scripting/.activity.ScriptingLayerServiceLauncher"
where <HOST_PORT_NUM>
and <DEVICE_PORT_NUM>
are the tcp ports on the host computer and device.
From SL4A source directory run this command:
python Docs/generate_api_reference_md.py
In the Docs directory there should now be an ApiReference.md file that contains which RPC functions are available in SL4A as well as documentation for the RPC functions.