设为首页 收藏本站
查看: 413|回复: 0

[经验分享] 在Android上用PHP编写应用- PFA初探

[复制链接]

尚未签到

发表于 2017-4-7 09:48:39 | 显示全部楼层 |阅读模式
作者:蒋宇捷(hfahe)
版权声明:原创作品,欢迎转载,转载时请务必以超链接形式标明文章原始出处、作者信息和本声明。



概述
Android上的主要开发语言是Java,让很多PHPer觉得非常遗憾。但是自从ASE(Android Scripting Environment-Android脚本环境)诞生后,允许用户直接在Android设备上运行脚本,ASE已经支持Python、Lua和BeanShell、Perl等脚本语言。ASE的实现原理其实和OMS的BAE(Browser based Application Engine)平台比较类似。可以在http://code.google.com/p/android-scripting/找到ASE相关的内容和API列表。
DSC0000.gif


以下功能都可以通过ASE的接口方便的实现。

u 发送通话请求

u 发送文字信息

u 扫描条形码

u 获取GPS信息

u 使用语音服务

随着PFA的出现,在Android上用PHP编写应用和工具变成了现实。它为ASE提供了PHP的支持,官方站点见:http://phpforandroid.net/

DSC0001.gif

下面我将以Android模拟器为例,介绍在Android平台上实现PHP简单应用的完整过程。

模拟器安装

Android模拟器允许你在电脑上使用Android环境,支持WindowsLinuxMac等平台,下面以Windows平台为例。

先需要从http://dl.google.com/android/android-sdk_r04-windows.zip下载Android SDK,解压缩并运行里面的SDK Setup.exe,这会打开Android SDK and AVD Manager

启动后会遇到一个错误,需要在SettingsMisc配置里将“Force https://...sources to be fetched using http://”选上


DSC0002.gif

重启Android SDK and AVD Manager,然后在出现的“choose Packages to Install”界面上选择“SDK Platform Android 2.1-update1API 7revision 2”(2.02.1的版本也可以)。记住一定要把其他的选项都双击打上叉,否则从国外网站下载安装所有的Package是非常慢的事情!


DSC0003.gif

然后选择“Accpet”并Install

安装成功后我们可以创建一个Android虚拟设备了。点击Virtual Devices,选择最右边的New选项。在出现的对话框里填入以下内容:


DSC0004.gif

虚拟设备创建成功后,选择这个设备并点击右边的Start启动它。在出来的“Launch Options”上不要选择任何选项,然后点击Launch


DSC0005.gif

等待一些时间后,系统启动完毕。界面如下所示,这就是标准的Android系统界面。


DSC0006.gif

ASEPFA的安装

我们先在PFA的官方网站(http://www.phpforandroid.net/)上下载ASEhttp://phpforandroid.net/files/ASEr26unofficial.apk)和PFAhttp://phpforandroid.net/files/PhpForAndroid_r1.apk),其中ASE是他们修改过的非官方的版本。

在模拟器上安装Android上的应用程序需要用到adb-Android Debug BridgeAndroid SDK里的一个工作,它可以管理Android模拟器或者真实的Android手机。它的主要功能有:

u 安装apk软件到模拟器或者Android手机
u 在计算机和Android设备之间上传或下载文件
u 管理模拟器或手机的端口映射
u 运行设备的Shell
这个工具在Android SDK目录下的tools目录里,我们将下载回来的ASEPFA也放置在这儿。
打开命令提示符执行如下命令,将ASEPFA安装到模拟器上:

DSC0007.gif

切换到模拟器,点击主屏幕最下方的按钮显示应用程序列表,可以看到ASEPFA已经安装。
DSC0008.gif


点击PFA的图标运行PFA,然后点击顶部的Install按钮,开始下载PHPlibraryDemo


DSC0009.gif

下载安装完毕后,关闭PFA,运行ASE,已经可以看到一些PHPExample程序。


DSC00010.gif

运行PHP程序

点击其中任何一个程序都可以直接运行。我们点击hello_world.php程序,开始执行程序,弹出一个对话框,我们在里面输入一个字符串。


DSC00011.gif

程序的运行结果将在屏幕上显示。


DSC00012.gif

另外一个程序的运行结果如下图所示。


DSC00013.gif

查看和编写PHP程序

我们有两种方式编写和查看PHP程序。

1、第一种方式是是用adb,将程序下载到计算机中,还可以将编写好的程序上传到Android设备上。这种方式适合熟悉在计算机编程的朋友(在模拟器上编程是一件非常痛苦的事情,使用手机也不是一个非常方便的选择)。

按照如下方式执行adb命令,可以方便的连接到Android模拟器上。


DSC00014.gif

PHP程序放置在sdcard/ase/scripts目录下,我们进入此目录。


DSC00015.gif

其中的文件就是我们刚才看到的PHP示例程序,我们可以用adb pull命令从设备上下载这些文件。


DSC00016.gif

这些文件已经下载在tools目录下了,我们可以打开,查看并编辑这些文件。例如hello_world.php内容如下所示。

<?php

require_once("Android.php");

$droid = new Android();

$name = $droid->getInput("Hi!", "What is your name?");

$droid->makeToast('Hello, ' . $name['result']);

我们将这个文件稍加修改,将最后一句改为:

$droid->makeToast('Hello, I love ' . $name['result'] );

并将文件名修改为hello_world2.php,再使用adb push将此文件上传到设备。


DSC00017.gif

已经可以在ASE的界面里看到hello_world2.php程序了,点击运行。


DSC00018.gif

运行结果如下图所示。


DSC00019.gif

2、第二种方式是直接在手机上查看、编辑程序。

运行程序完毕后,点击Menu键会出现ASE的菜单。


DSC00020.gif

点击Exit & Edit可以进入编辑模式。


DSC00021.gif

此时点击Menu按钮会再次出现菜单,里面会有我们常用到的API Browser,里面包含了API列表,包括常用的dialogShowmakeToastcheckScreenOn等等。


DSC00022.gif

下面我们添加一个应用程序。在ASE主界面点击Menu按钮,出现主菜单。点击上面的Add按钮。


DSC00023.gif

在编辑器模式里输入文件名和代码。


DSC00024.gif

然后即可运行该应用程序。


DSC00025.gif

打包

以上介绍了在Android平台上如何编写简单的应用程序,但是如何将这些PHP程序打包为可安装的apk文件呢?SL4A项目可以解决这个问题,但是它没有正式发布,到可用的程度还需要一段时间。我们还需要耐心等待,我会随时关注并介绍这个项目的进展。

总结

文章介绍了如何使用PHPAndroid平台上进行简单应用程序的开发,深入的部分会在后继进行介绍。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-361350-1-1.html 上篇帖子: PHP 中使用 Smarty 之六:Smarty 内建函数 下篇帖子: PHP性能优化工具篇Benchmark类调试执行时间
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表