HardBirch

在Android上用PHP编写应用- PFA初探

时间:10-07-29 栏目:HTML5移动开发 作者:张飞不张,文采横飞 评论:40 点击: 10,040 次

作者:蒋宇捷(hfahe)
版权声明:原创作品,欢迎转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和本声明。

 

    概述

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

 

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

u  发送通话请求

u  发送文字信息

u  扫描条形码

u  获取GPS信息

u  使用语音服务

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

 

         下面我将以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://”选上

 

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

 

         然后选择“Accpet”并Install

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

 

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

 

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

 

         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安装到模拟器上:

 

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

 

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

 

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

 

         运行PHP程序

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

 

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

 

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

 

         查看和编写PHP程序

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

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

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

 

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

 

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

 

         这些文件已经下载在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将此文件上传到设备。

 

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

 

         运行结果如下图所示。

 

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

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

 

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

 

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

 

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

 

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

 

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

 

         打包

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

         总结

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

 

声明: 本文由( 张飞不张,文采横飞 )原创编译,转载请保留链接: 在Android上用PHP编写应用- PFA初探

在Android上用PHP编写应用- PFA初探:目前有40 条留言

  1. 40楼
    jlj508:

    [e01]好强大啊!!

    2010-08-03 21:08 [回复]
  2. 39楼
    chan_stephen:

    [e01]

    2010-08-03 23:19 [回复]
  3. 38楼
    chengtao1633:

    哈哈 必须转载啊!

    2010-08-04 09:08 [回复]
  4. 37楼
    shiwenqing:

    强大[e01]

    2010-08-04 12:54 [回复]
  5. 36楼
    dhgdmw:

    这个必须顶

    2010-08-04 14:05 [回复]
  6. 35楼
    liigo:

    咨询一个问题。使用ASE编写的程序,如何发布?可以把脚本和ASE一起打包发布给别人使用吗?我感觉目前还是写脚本的作者在自己的手机上自写自用,说白了是给程序员自己玩的。如果将来google把ASE(现在称为SL4A)集成到Android系统,应用范围应该就更大了。

    2010-08-04 15:32 [回复]
  7. 34楼
    liigo:

    回复 liigo:我注意到,ASE(SL4A)集成的几个脚本语言(Python,Ruby等)的运行环境都挺小的,应该不是完整的运行环境(没有携带全部的官方标准扩展库)。

    另外,ASE目前的问题是,功能太少(且其API不同于Android SDK API),运行效率值得怀疑(由其Facade实现机制决定的)。

    2010-08-04 15:42 [回复]
  8. 33楼
    liigo:

    回复 liigo:ASE程序发布的问题,相信很快会解决的:http://groups.google.com/group/android-scripting/browse_thread/thread/97e84dc6bb940e42

    2010-08-04 15:54 [回复]
  9. 32楼
    hfahe:

    回复 liigo:问的很好,不过下面ms自问自答了?呵呵

    2010-08-04 18:29 [回复]
  10. 31楼
    liigo:

    回复 hfahe:嗯,后来去查了点资料

    2010-08-04 20:51 [回复]
  11. 30楼
    u5u5uu6u7u:

    必须转载![e04][e04][e04]

    2010-08-05 17:01 [回复]
  12. 29楼
    u5u5uu6u7u:

    必须转载啊!

    2010-08-05 17:01 [回复]
  13. 28楼
    a904902610:

    [e01][e01][e01]……………[e01][e01][e01]…………[e01][e01][e01]

    2010-08-05 20:19 [回复]
  14. 27楼
    zend_enigma:

    我转载了哦

    2010-08-06 08:15 [回复]
  15. 26楼
    Bluesky_Leon:

    关注[e01]

    2010-08-06 09:35 [回复]
  16. 25楼
    black__art:

    [e05]

    2010-08-06 10:57 [回复]
  17. 24楼
    PIGer920:

    请教
    用php开发和用java有什么不同 或者说 用php开发有哪些java所不具备的好处?

    2010-08-06 12:49 [回复]
  18. 23楼
    qiaosibo:

    [e01][e01][e01][e01][e01][e01][e01][e01][e10]

    2010-08-06 20:11 [回复]
  19. 22楼
    yukiooy:

    回复 PIGer920:
    经常遇到这种钻牛角尖的问题,你又不是搞研究。说不定就是作者喜欢呢,有时候就是一种兴趣而已,或者是google为了讨好用户,增加用户粘性也不一定。

    2010-08-07 10:18 [回复]
  20. 21楼
    PIGer920:

    回复 yukiooy:不是钻牛角尖 你不知道用途和特点 怎么选用合适的工具呢?要是都一样 那干嘛还分成各种各样的工具

    2010-08-07 23:35 [回复]
  21. 20楼
    zhc6211026:

    额,能用python不,不懂php

    2010-08-08 15:37 [回复]
  22. 19楼
    Eric6:

    [e03]

    2010-08-09 16:13 [回复]
  23. 18楼
    boogu:

    [e01]只是没啥2D功能,不知啥时能成熟。www.0755group.com

    2010-08-10 09:35 [回复]
  24. 17楼
    piaolankeke:

    [e03]强悍!

    2010-08-10 13:38 [回复]
  25. 16楼
    sea2988:

    PHP服务器上跑的东东搬到手持上运行有啥意思[e02]

    2010-08-11 11:59 [回复]
  26. 15楼
    Richmond1979:

    很好很强大,一直喜欢PHP的简洁简单。。。

    2010-08-11 12:01 [回复]
  27. 14楼
    sysydesign:

    这个真牛![e03]

    2010-08-11 12:46 [回复]
  28. 13楼
    tss158:

    关注[e03]

    2010-08-11 15:10 [回复]
  29. 12楼
    lidan615:

    [e01][e01]

    2010-08-12 10:57 [回复]
  30. 11楼
    hl1991_2009:

    支持[e01]

    2010-08-12 13:13 [回复]
  31. 10楼
    dhyong:

    [e03]

    2010-08-12 16:49 [回复]
  32. 9楼
    cybrobin:

    [e01]
    我是一个PHP开发者,开到PFA真的太高兴了。。。
    我想做这样一款与Android Mate类似的android应用,为移动互联网应用,可供手机访问互联网,可是还不知道如何入手,是否可指导下。
    功能点:1、我要与数据库连接
    2、桌面的图标布局要加上动态的图标,当然也是访问数据库得到的。
    类似的应用具体我也不知道怎么样这里面发不了图片,图片可查看这个页面http://www.apkok.com/soft/4_389.html, 谢谢了…

    2010-09-01 19:23 [回复]
  33. 8楼
    gump003:

    将脚本文件(包括PHP脚本)打包成apk安装包的教程我这里有了
    http://blog.ewebe.net/?p=238

    2010-11-05 08:57 [回复]
  34. 7楼
    qibinghua:

    玩玩可以.感觉实用性不大啊

    2010-11-23 15:05 [回复]
  35. 6楼
    zoomping:

    [e01]

    2011-01-09 11:50 [回复]
  36. 5楼
    dayit:

    第一次安装android sdk时查了很多资料,后来还是在同事的帮助下完成的,今天在你这里无意中看到安装步骤,仔细想来,楼主写的简单清晰,强大[e01]

    2011-01-18 11:43 [回复]
  37. 4楼
    dayit:

    不清楚现在用PHP写的android程序能否直接安装到手机上运行????

    2011-01-18 11:44 [回复]
  38. 地板
    hfahe:

    回复 dayit:请参考http://blog.ewebe.net/?p=238

    2011-02-13 00:21 [回复]
  39. 板凳
    booer1234567:

    我的运行 SDK Setup .exe 的时候 怎么没反映啊?什么情况 ?

    2011-06-07 17:29 [回复]
  40. 沙发
    zmm1022828887:

    顶!!!!

    2011-10-29 11:12 [回复]

发表评论


QQ群互动

Linux系统与内核学习群:194051772

WP建站技术学习交流群:194062106

魔豆之路QR

魔豆的Linux内核之路

魔豆的Linux内核之路

优秀工程师当看优秀书籍

优秀程序员,要看优秀书!

赞助商广告

友荐云推荐