4a开启Linux系统自动化之旅——SL4A时代

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是不错的选择。

操作系统标签