第一部分是指在Android系统的手机上直接写PHP脚本代码并立即运行;
第二部分则继续讲解如何把写好的PHP脚本代码打包成akp安装文件。
首先,在手机上安装两个apk包。
一个是SL4A(Scripting Layer for Android),这个是Android的脚本环境,前身是ASE(Android Scripting Environment),Android系统上的所有脚本都将在这个环境下执行,下载地址:sl4a_r3,下载后将扩展名改为.akp即可,也可以到谷歌官方下载http://code.google.com/p/android-scripting/downloads/list。(注:如果你只关注第二部分可跳过这里)
另一个是PFA(PHP for Android),这个是为Android系统提供PHP脚本支持的安装包,下载地址:PhpForAndroid_r1,同样地下载后将扩展名改为akp即可,官方下载http://phpforandroid.net/start。
运行SL4A,界面如下:
这里提供了一些实例,我们执行hello_world.php试试:
选择第二个选项,运行结果如下:
脚本已成功执行了。
我们自己创建一个脚本试一下:
我们把第四行的$droid->getInput修改为dialogGetInput(因为PFA的某一次版本更新后在API里面用dialogGetInput取代了getInput):
选择API Browser可以看到所有提供我们使用的API:
菜单上选择Save & Run,运行结果如下:
好了,第一部分至此完成。
如何将PHP脚本文件打包成apk安装包呢,本人参考了谷歌官方提供的步骤(http://code.google.com/p/android-scripting/wiki/SharingScripts)并搜集了网上其他的一些相关教程,总结如下:
一、搭建好Android开发环境(jdk+eclipse+android sdk)。
说明:由于本人没接触过java,也是第一次使用eclipse,讲解若有幼稚的地方高手不要见笑哈。
1、下载java JDK,进入该网页http://java.sun.com/javase/downloads/index.jsp(或者直接点击下载)如下图:
选择 Download JDK 只下载JDK,无需下载jre,然后安装完成即可,无需配置环境变量(可在命令行执行java -version验证一下)。
2、下载eclipse,进入该网页http://www.eclipse.org/downloads/(或者直接点击下载)如下图:
我们选择第一个(即eclipse IDE for java EE Developers),下载完成后解压即可。
3、下载Android SDK,这里有两种下载版本,一种是包含了具体版本的SDK,一种是只包含升级工具而不包含具体的SDK版本,推荐使用后一种,这里也是以后一种为例进行讲解的,进入该网页http://androidappdocs.appspot.com/sdk/index.html(或者直接点此下载)如下图:
我们这里当然是选择最上面Windows平台的,下载完成后解压即可。
4、配置开发环境:
(1)、安装Android开发插件,打开Eclipse,在菜单栏上选择 help->Install New SoftWare 出现如下界面:
点击 Add 按钮,出现如下界面:
Name:Android (这里可以自定义),Location:https://dl-ssl.google.com/android/eclipse/(如果出错,将https改成http即可),点击OK,将出现如下界面:
点击 Next 按钮,出现如下界面:
(注:如果使用了不正确的eclipse版本,这里很有可能出错)
点击Next按钮,出现如下界面:
选择 I accept the terms of the license agreements 点击 Finish ,进入安装插件界面:
安装完成后,出现如下界面:
点击Yes按钮,重启eclipse。
(2)、配置Android SDK,点击菜单 Window -> preferences,进入如下界面:
选择你的Android SDK解压后的目录,选错了就会报错,这个是升级工具,目前还没有一个版本的SDK。
升级SDK版本,选择菜单 Window -> Android SDK and AVD Manager 出现如下界面:
选择 update all 按钮,出现如下界面:
选择左边的某一项,点击accept表示安装,点击reject表示不安装,我们这里只选了 SDK 2.1 和 samples for api 7 ,自己可以任意自定义,确定后,选择install按钮,进入安装界面如下:
安装完成如下:
新建AVD(android vitural device),和上面一样,进入Android SDK and AVD Manager,选中Vitural Devices :
点击New按钮后,进入如下界面:
名称可以随便取,target选择你需要的SDK版本,SD卡大小自定义,点击 Create AVD,得到如下结果:
如上显示创建AVD完毕。
(3)、新建Android项目,选择菜单 file -> new -> other 进入如下界面:
选择新建 Android Project 项目,点击Next按钮,进入如下界面:
名称自定义,应用程序名自定义,包名必须包含一个点以上,min SDK version里面必须输入整数。
点击 Finish 出现如下界面:
注:若有错误如:Project … is missing required source folder: 'gen' ,则将 gen -> Android.Test -> R.java 这个文件删掉,Eclipse会为我们重新生成这个文件,并且不会报错。
(4)、配置运行,右键项目 -> Run as -> Run Configuration 进入如下界面:
该界面选择运行的AVD,将AVD前面的方框设置为选择状态。
(5)、测试项目运行,右键项目名称 -> run as -> Android Application 即可启动运行该Android程序,如下所示:
正在进入
测试程序运行结果
该测试程序的apk安装包已经自动生成在项目工程目录的bin子目录下了。
至此,Android开发环境配置完毕。
二、使用已搭建好的Android开发环境将脚本文件打包为apk安装包。
1、下载脚本的模板工程,script_for_android_template,官方下载地址http://android-scripting.googlecode.com/hg/android/script_for_android_template.zip
2、导入模板工程,打开eclipse,在菜单栏上选择 File -> Import 出现如下界面:
选择 Existing Projects into Workspace ,点Next进入如下界面:
选择 Select archive file ,点击Browse,找到刚才下载好的模板工程文件即可,点击Finish完成。
此时,如果控制台出现 Unable to resolve target 'android-3′ 此类错误则说明API版本设置需要做调整了,打开目录下的 default.properties 文件,如下:
由于我们这里所使用的API版本为7,遂将里面的 target=android-3 修改为 target=android-7 ,保存,右键单击模板工程选择 Refresh 刷新即可。
此时如果又出现 ERROR: Unable to open class file C:eclipseworkspaceScriptForAndroidTemplategencomdummyfooforandroidR.java: No such file or directory 这类错误,前面已经提到过解决办法了,删除这个R.java文件即可,再次 Refresh 将出现 R.java was removed! Recreating R.java! ,至此该模板工程已成功导入。
3、重命名模板工程名及包名,右键单击模板工程选择 Rename 弹出如下窗口:
将名称修改成自己所需要的,我这里就暂且改为 ScriptForAndroidMyPhpTest 吧,点击 OK 完成模板工程名的更改。
继续右键单击模板工程选择 Android Tools -> Rename Application Package ,弹出窗口如下:
我这里就修改成 com.pfatest 吧:
点击 OK 出现如下界面:
点击 Finish 弹出如下窗口:
点击 Yes 完成包名的更改,同时eclipse会自动帮我们同步更新工程主目录下AndroidManifest.xml文件里面的包名,否则我们就需要主动更新了。
4、把我们自己的PHP脚本文件放入工程目录下的res/raw目录下,移除里面模板自带的script.py,并同步修改src/com/dummy/fooforandroid/Script.java中指定脚本名的这一行 public final static int ID = R.raw.script; -> public final static int ID = R.raw.mytest;
保存。
5、申明脚本程序中用到的所有权限,打开AndroidManifest.xml文件,在窗口下方选中AndroidManifest.xml以编辑源文件的方式,如下图所示:
默认已开启了 android.permission.INTERNET 权限,由于我的测试程序中用到了振动以及电话功能,所以还必须开启 android.permission.VIBRATE 和 android.permission.CALL_PHONE 这两个权限,开启方法:将 <uses-permission
android:name="android.permission.x"/> 前后的注释<!–*–>去除即可,如下:
保存。
6、编译、打包、运行,还是右键单击工程名,选择 Run As -> Run Configurations… 打开运行配置窗口:
在列表中选中我们需要运行的模拟器,点击下面的 Run 运行。
至此大功告成,手上有机器的朋友不妨将bin目录下已生成好的apk包拷贝到手机上安装运行试试看。