1. SL4A简介
SL4A,全称为Scripting Layer for Android,它可以让我们在Android系统中运行各种脚本语言,比如Python,Perl,Ruby等等。通过SL4A,不但可以让我们在Android设备上面执行各种脚本,还可以利用Android设备的各种传感器和硬件资源来进行各种实验。
以下是Scripting Layer for Android的一些优势:
轻量级:它非常的轻量级且启动相当的快速,就算是在非常低端的设备上也能非常流畅的运行。
多语言支持:支持各种编程语言,除了著名的Python、Perl、Ruby之外,还支持尚未得到大力推广的Lua、Tcl以及Shell。
安全:它非常的安全,即使是Shell也很难安装任何其它程序或者数据。
SL4A还有一个优势就是它允许我们在Android设备上面调用本地能力,这包括了下列的一些能力:
GUI构建器:通过SL4A我们可以在Android应用中集成Python环境和GUI组件,从而实现Android应用的快速开发和迭代。
Android API可调用:通过SL4A我们可以在Android运行时调用Android SDK原生API。
Web应用开发:通过SL4A我们可以在Android设备上利用Python、Perl、Ruby、Php开发本机web应用。
2. 如何安装SL4A
如果我们想在Android设备上运行Python、Perl或者Ruby脚本,则可以先安装SL4A,安装的过程比较简单,我们可以通过GitHub或者Google Code下载安装包,打开应用选择相应的脚本,即可运行。
2.1 SL4A安装方法
我们可以先从GitHub上下载SL4A安装包,这里我们提供的是Android平台的可执行文件,您还可以在其他平台Linux、MacOS、Windows上下载安装包,命令行如下:
$ mkdir sl4a
$ cd sl4a
$ wget https://github.com/damonkohler/sl4a/releases/download/v7.0/PythonForAndroid-r23.apk
$ wget https://github.com/damonkohler/sl4a/releases/download/v7.0/sl4a_r6.apk
下载完成之后,我们需要分别安装PythonForAndroid-r23.apk和sl4a_r6.apk两个安装包,如下图所示:
安装完成之后,我们需要在Android设备上运行SL4A,然后启动相应的脚本程序,如下图所示:
以上就是安装SL4A的整个过程。
3. SL4A Python插件开发
如果我们想让Python与SL4A完成配合,那么我们就需要用到SL4A开放的API,从而实现Python插件的开发,它是Python能够在Android上面运行的基础。
3.1 记事本应用案例
下面我们使用Python和SL4A来开发一个简单的Android应用,它的功能就是启动一个记事本,我们先来看一下这个应用的整体框架:
import android
droid = android.Android()
droid.dialogCreateAlert('My Note')
droid.dialogSetPositiveButtonText('New')
droid.dialogShow()
result = droid.dialogGetResponse()
if result:
droid.startActivity('android.intent.action.EDIT')
我们首先创建了一个Android实例化对象droid,然后弹出一个对话框,对话框中有一个按钮,当我们点击这个按钮之后启动一个记事本应用。
在这个例子中,droid对象是用来进行与Android系统交互的,例如弹出对话框、启动程序等等,Python与Android系统交互的过程是通过JSON-RPC协议来完成的。
3.2 了解API的使用
在SL4A中,我们可以通过API来实现在Android设备上面的各种操作,下面是用Python调用API的一些示例代码:
# 获取设备信息
status, result = droid.getBuildVersion()
# 获取sd卡路径
status, result = droid.getExternalStoragePath()
# 获取sd卡空间信息
status, result = droid.getFreeExternalStorage()
# 获取运行时内存信息
status, result = droid.getMemoryInfo()
# 播放铃声
droid.mediaPlay('/sdcard/songs/beep.wav')
通过上述代码,我们就可以成功实现音乐播放、内存计算和获取SD卡信息等功能。
4. 发布Python插件
Python插件开发已经完成之后,我们需要把它发布到SL4A网站,这样其他用户就可以通过SL4A网站方便地下载使用我们的插件。
4.1 插件发布流程
下面是Python插件发布的流程:
编写插件脚本:插件脚本应该放在位于sd卡的/sl4a/scripts目录下,这样用户就可以通过SL4A找到你的脚本了。
创建配制文件:配制文件包含插件名称、作者以及说明等信息,详情请自行查看官方文档。
提交插件:将插件脚本和配制文件打包成一个zip文件,然后提交到官方网站上即可。
如果您希望发布自己的插件,可以参考这篇文章,也可以通过SL4A官方网站http://www.sl4a.net/了解更多相关内容。
5. 总结
SL4A是Android平台上面非常强大的一个脚本解释器,它提供了很多非常有用的API,用户可以利用这些API开发自己的应用程序或者插件。如果您想在Android设备上面学习Python、Perl或者Ruby等编程语言,那么SL4A是不错的选择。