什么是SL4A

SL4A的全称为Scripting Layer for Android, 顾名思义就是Android的脚本架构层,它的目的就是可以用熟知的脚本开发语言来开发Android应用程序。其工作原理基于RPC远程调用,通过本地的脚本解析器和远端的原生态Android Server层的APK进行信息交互,即实现一个远程代理,把本地脚本的函数调用通过json格式的封装,传递给远程原生态Server APK进行实际的android系统函数呼叫,最后将操作的执行结果反馈给本地脚本解析器,然后再在终端显示出运行结果。

SL4A适用场景

1. RAD programming,即 rapid application development,快速原型开发,进行工程项目的可行性分析

2. 编写测试脚本,通常代码量都比较小,可方便实现

3. 开发工具软件包,来实现一些快捷的功能

SL4A环境安装

1. 下载安装 sl4a  APK,目前的版本是 sl4a_r4.apk

  C:\Users\Carey.RS.Zhou>adb install -r C:\Users\Carey.RS.Zhou\Desktop\sl4a_r4.apk 

  156 KB/s (858471 bytes in 5.355s)  pkg: /data/local/tmp/sl4a_r4.apk 

  Success

 我的安装包为sl4a_r4.apk与PythonForAndroid_r4.apk,都是从官网下载的http://code.google.com/p/android-scripting/

   通过MonkeyRunner也可以安装sl4a_r4.apk的安装包到Android模拟器,

打开cmd,然后指定到android SDK安装目录下的Tools文件夹,例如:D:/androidSDKinstalled/android-sdk/tools

把sl4a_r4.apk复制到Android SDK Tools文件夹下。

命令如下:

d: 回车

cd /D:/androidSDKinstalled/android-sdk/tools 回车
monkeyrunner 等待打开monkeyrunner
from com.android.monkeyrunner import MonkeyRunner,MonkeyDevice
device=MonkeyRunner.waitForConnection()
device.installPackage('./sl4a_r4.apk')

然后返回True就可以了


 

 

2. 在APP列表中找到 sl4a 并运行, 接受 Usage Tracking,选择 Accept

3. 程序默认只安装了一个shell环境,进入的步骤为【Menu】【View】【Interpreters】【Shell】

在shell命令行中执行ps命令后的执行结果如下,说明程序安装正确

用快捷键Ctrl+F12可以把模拟器从竖屏切成横屏

4. 安装sl4a的本地脚本解析器,我们以安装python环境为例来说明,其他解析器的安装类似

进入的步骤为【Menu】【View】【Interpreters】【Add】


5. 选择Python之后,后台开始下载PythonForAndroid的APK,完成后点击安装,也可以通过MonkeyRunner安装PythonForAndroid_r4.apk安装包。

6. 安装PythonForAndroid的APK之后,依次选择【Open】【Install】按钮,此时会进入第二阶段的安装过程,即安装python的附加module

7. 全部安装之后回到该界面,按钮由刚才的Install变成现在的Uninstall,特别提醒,千万别点击Uninstall按钮,不然就把刚才下载的module都卸载了,然后就悲剧啦,退出该界面即可

8. 我们再次进入Interpreters,发现不只是Shell了,还多了一个Python 2.6.2,说明python环境搭建好了,现在就可以在android上面进行python脚本编写了,点击进去看看

9. 到此为止,环境都ok了,我们小小测试一下,显示个Toast出来,看看是多么的简单,剩下的就请大家好好发挥吧,比起Java原生态程序的编写是不是方便了很多啊

 

10. 在第9步我出现了一个错误,就是在shell下直接编写脚本无法输入括号(),所以无法正常的编写测试脚本,不过可以通过以下方法输入脚本编写:


在脚本Scripts页面点击Menu键,选择Add,选择Python2.6.2,打开下图:


 

然后命名一个py文件就可以编写脚本了,编写完成后,点击Menu,选择Save&Run就可以了。