PHP开发Android应用程序(转)
第一部分是指在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:\eclipse\workspace\ScriptForAndroidTemplate\gen\com\dummy\fooforandroid\R.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包拷贝到手机上安装运行试试看。
PHP开发Android应用程序(转)的更多相关文章
- 使用jQuery Mobile + PhoneGap 开发Android应用程序(转)
使用jQuery Mobile + PhoneGap 开发Android应用程序(转) 一.简介 jQuery Mobile是jQuery在手机上和平板设备上的版本.jQuery Mobile 不仅给 ...
- Unity开发Android应用程序:调用安卓应用程序功能
开发环境: Eclipse3.4 + adt12 + jdk6 + AndroidSDK2.2 Unity3.4 + windows7 测试设备: HTC Desire HD 本文要涉及到的几个重点问 ...
- 用 Eclipse 开发 Android 应用程序
转自:http://www.apkbus.com/android-13828-1-1.html 开始之前 本教程介绍如何在 Eclipse 环境中进行 Android 应用程序开发,包括两个示例应用程 ...
- C#使用Xamarin开发Android应用程序 -- 系列文章
Xamarin开发Android应用程序 利用Xamaria构建Android应用-公交发车信息屏 Xamarin版的C# SVG路径解析器 C#使用Xamarin开发可移植移动应用(1.入门与Xam ...
- 使用jQuery Mobile和Phone Gap开发Android应用程序
经过了一段时间的学习,初步了解了该如何使用jQuery Mobile和 Phone Gap来开发一个Android应用程序,也想把这些东西介绍给大家. 1. 软件准备 要进行android app的开 ...
- 使用jQuery Mobile和Phone Gap开发Android应用程序(转)
经过了一段时间的学习,初步了解了该如何使用jQuery Mobile和 Phone Gap来开发一个Android应用程序,也想把这些东西介绍给大家. 1. 软件准备 要进行android app的开 ...
- Apache Cordova开发Android应用程序——番外篇
很多天之前就安装了visual studio community 2015,今天闲着么事想试一下Apache Cordova,用它来开发跨平台App.在这之前需要配置N多东西,这里找到了一篇MS官方文 ...
- 最全的PHP开发Android应用程序
第一部分是指在Android系统的手机上直接写PHP脚本代码并立即运行: 第二部分则继续讲解如何把写好的PHP脚本代码打包成akp安装文件. 首先,在手机上安装两个apk包. 一个是SL4A(Scri ...
- 使用 IntelliJ IDEA 开发 Android 应用程序时配置 Allatori 进行代码混淆
IntelliJ IDEA 提供了非常强大的 Android 开发支持,就连 Google 官方推荐的 Android Studio 其实也是 IntelliJ IDEA 的一个 Android 开发 ...
随机推荐
- NPOI对excel文件的导入导出
现理解:将一个Excel文件(工作簿-IWorkBook)看做是一个你要操作的对象,每个工作簿包含多个工作表(ISheet)对象,每个工作表中又包含多个行对象(IRow),每行又包含多个单元格(ICe ...
- 配置中的address不能重复
<jaxws:endpoint implementor="com.service.imp.UserServiceImpl" address="/user" ...
- Asp.net 菜单控件
本文介绍的菜单控件采用的css 和ul list来显示菜单,生成的html小,无需javascript支持,对大部分的浏览器都支持,除ie6要单独修改css也可以使其支持. 通过本文可以了解asp.n ...
- Java并发编程之CAS
CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术.简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果当前变量的值与我们期望的值相等,就使用一个新值替 ...
- 制作chm格式的帮助文档
学习java的人都用过jdk帮助文档,借助工具我们也可以自己生成chm格式的帮助文档, 原文:http://www.cnblogs.com/shenliang123/archive/2012/04/2 ...
- 解决jQuery插件sliderjs, 点击插件分页,导航按钮后不能重新开始.
jQuery SlidesJS - Can't restart animation after clicking on navigation or pagination <!DOCTYPE ht ...
- extjs combobox 设置下拉时显示滚动条 设置显示条数
extjs在点击下拉时如果没有限制它的高度,那么它的默认最大高度是300,显示的时候就会显示300的高度,知道选项内容超过这个高度时才会自动显示滚动条,往往在有些时候我们希望让combobox显示一个 ...
- python:open/文件操作
open/文件操作f=open('/tmp/hello','w') #open(路径+文件名,读写模式) #读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式 如:' ...
- UVA1152 4Values whose Sum is 0
Description The SUM problem can be formulated as follows: given four lists A, B, C, D of integer val ...
- hdu GCD and LCM
题意:gcd(a,b,c)=g; lcm(a,b,c)=l; 求出符合的a,b,c的所有情况有多少中. 思路:l/g=p1^x1*p2^x2*p3^x3.....; x/g=p1^a1*p2^a2 ...