SL4A是Scripting Layer for Android 的缩写。 即为安卓提供的脚本层。
SL4A使用RPC协议,所以只要启动SL4A服务,再映射端口并连接服务,就可以用任何语言在本地调用安卓api。
它的出现,一开始给大家带来了使用脚本语言开发安卓apk的可能。
但项目停滞至今已多年, 现如今SL4A跟随安卓N版本一同发布, 浴火重生。
不过小伙伴们要失望了,因为谷歌定义了SL4A的用途为测试。
SL4A的编译需要厂商签名,所以想用它开发安卓apk 或者做在外部使用脚本操作安卓设备的童鞋可以洗洗睡了。
其实这么做也可以理解,毕竟这种方式不安全。
所以这个工具就只能是厂商们的福利了,厂商不需要制作、维护和安装各种测试apk了。
新的SL4A与旧的SL4A实现方案有些许不同,旧的是在安卓上提供脚本解释器,而新的直接就是对安卓API的调用。
SL4A:
https://android.googlesource.com/platform/external/sl4a/+/master
为配合使用SL4A,谷歌提供了一个基于python叫ACTS的工具来进行测试。这个工具还算小巧简单。
最重要的是已经有许多写好的测试用例(1),已经有许多写好的测试用例(2),已经有许多写好的测试用例(3)。
但是各厂商经过这么多年的发展,肯定都已经有了自己的业务工具。所以也可以不使用ACTS, 毕竟只需建立个socket通讯,什么语言都可以使用SL4A。
需要自己使用的童鞋直接仿照 ACTS 里 controllers下面的 android.py 文件自己写一份客户端接口就行。
https://android.googlesource.com/platform/tools/test/connectivity/+/master