• 第一部分是指在Android系统的手机上直接写PHP脚本代码并立即运行;第二部分则继续讲解如何把写好的PHP脚本代码打包成akp安装文件。 首先,在手机上安装两个apk包。 一个是SL4A(Scripting Layer for Android)...

    第一部分是指在Android系统的手机上直接写PHP脚本代码并立即运行;
    第二部分则继续讲解如何把写好的PHP脚本代码打包成akp安装文件。

    首先,在手机上安装两个apk包。

    一个是SL4AScripting Layer for Android),这个是Android的脚本环境,前身是ASEAndroid Scripting Environment),Android系统上的所有脚本都将在这个环境下执行,下载地址:sl4a_r3,下载后将扩展名改为.akp即可,也可以到谷歌官方下载http://code.google.com/p/android-scripting/downloads/list。(注:如果你只关注第二部分可跳过这里)
    另一个是PFAPHP 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 按钮,出现如下界面:

    NameAndroid (这里可以自定义)Locationhttps://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包拷贝到手机上安装运行试试看。

    转载于:https://www.cnblogs.com/h4ck0ne/p/5154593.html

    展开全文
  • 第一部分是指在Android系统的手机上直接写PHP脚本代码并立即运行;第二部分则继续讲解如何把写好的PHP脚本代码打包成akp安装文件。 首先,在手机上安装两个apk包。 一个是SL4A(Scripting Layer for 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应用程序

    2011-06-27 15:50:00
    最全的PHP开发Android应用程序http://www.iamlintao.com/?p=744Android,看过这篇文章后,收益颇多,但安装过程中的细节有很多出入。接下来一一列举出来!首先看第二部分:配置开发环境,由于我下载的是这个版本的...

    最全的PHP开发Android应用程序http://www.iamlintao.com/?p=744

    Android,看过这篇文章后,收益颇多,但安装过程中的细节有很多出入。接下来一一列举出来!

    首先看第二部分:配置开发环境,由于我下载的是这个版本的SDK(android-sdk_r08-windows.zip),下载完成后解压即可。

    主要是安装Android开发插件的配置顺序有些不一样,不过没有什么影响。我选择更新的sdk只有2.2版的。

    参考他的配置运行hello world,test程序是没有问题的!

     

    主要第一部分怎么在cmd下安装sl4a_r3.apk和phpforandroid_r1.apk(需要将这两个文件放在/tools目录下)

    由于原来久的SDK版本默认adb.exe是在X:/android-sdk-windows/tools文件夹下的,所以2.2版SDK在cmd.exe命令行下输入

    D:/android-sdk-windows/tools>adb install sl4a_r3.apk提示'adb' 不是内部或外部命令,也不是可运行的程序或批处理文件。

    查找原因是由于Android高版本将这个程序放在了其他文件夹下了(Could not find *****/adb.exe!的解决方法http://blog.csdn.net/shaoguangleo/archive/2010/10/07/5924696.aspx),具体在X:/android-sdk-windows/platform-tools目录下。

    所以我们需要在这个目录下运行adb.exe程序。

    1:先启动模拟器设备

    2:X:/android-sdk-windows/platform-tools>adb install X:/android-sdk-windows/tools/sl4a_r3.apk
    85 KB/s (840827 bytes in 9.574s)
            pkg: /data/local/tmp/sl4a_r3.apk
    Success

    3:X:/android-sdk-windows/platform-tools>adb install X:/android-sdk-windows/tools/phpforandroid_r1.apk
    146 KB/s (35255 bytes in 0.235s)
            pkg: /data/local/tmp/phpforandroid_r1.apk
    Success

    4:查看设备,phpforandroid和sl4a安装成功,不过还必须安装phpforandroid的实例,点击phpforandroid下载自动安装!

    5:点击运行sl4a下的php程序!(ctrl+F11可切换屏幕方向)!

    展开全文
  • Android+PHP+MYSQL开发简单实例前段时间做了一个安卓项目,需要用到数据库,之前有写过一点网页相关的东西,所以打算用MYSQL+PHP这个黄金搭档,虽然有点大材小用了。本人是个货真价实的菜鸟,对安卓并不了解,这个...
    Android+PHP+MYSQL开发简单实例

    前段时间做了一个安卓项目,需要用到数据库,之前有写过一点网页相关的东西,所以打算用MYSQL+PHP这个黄金搭档,虽然有点大材小用了。

    本人是个货真价实的菜鸟,对安卓并不了解,这个项目纯属是赶鸭子上架,之所以写这篇博客,是想把我在项目中遇到的各种问题的解决方法分享给大家,希望对大家有所帮助。

    接下来我将从三个方面介绍安卓客户端如何通过PHP与MYSQL数据库进行交互

    总述

    简单的说,安卓客户端通过Http向本地服务器发出请求,访问指定的php代码,服务器端通过php代码执行数据库的操作,
    返回相应的JSON数据。服务器可以理解为运行着某些服务器容器的电脑,比如你的电脑安装了Apache并保持运行,那么电脑就变成了一台服务器,只是这台服务器没有入网,只能本地访问。安卓客户端通过HttpURLConnection向服务器中指定的php文件提交POST或GET请求,服务器端相应php代码接受来自客户端的参数(如果是带参传递)进行数据库的操作,返回JSON数据给客户端。
    下面我以安卓客户端通过用户名密码登陆为例进行说明。具体为:客户端通过POST方法向服务器提交2个参数:用户名(username)和密码(password)到指定login.php文件(这个文件写登陆验证的php代码),该文件中通过查询数据库中是否存在该用户以及密码是否正确来返回客户端相应的JSON数据。
    既然选择了PHP+MYSQL,那么使用wamp server套件是比较方便的一种选择,用过它的朋友都应该轻车熟路了。

    1.安卓客户端

    安卓客户端所做的工作有:通过HttpURLConnection向服务器中指定的login.php文件提交POST或GET请求,服务器端接受来自客户端的参数执行login.php文件进行数据库的操作,返回JSON数据给客户端。
    这里只贴出代码部分,至于界面只需要2个文本编辑框edittext用于输入用户名密码,一个button登陆按钮,其id自行设置即可。
    登陆按钮响应函数如下
            loginbtn.setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View v) {//登陆按钮监听事件
    /*                ((App)getApplicationContext()).setTextData(et.getText().toString());
                    location_x.setText(((App)getApplicationContext()).getTextData());*/
                    new Thread(new Runnable() {
                        @Override
                        public void run() {
                            try {
                                int result = login();
                                //login()为向php服务器提交请求的函数,返回数据类型为int
                                if (result == 1) {
                                    Log.e("log_tag", "登陆成功!");
                                    //Toast toast=null;
                                    Looper.prepare();
                                    Toast.makeText(PhpActivity.this, "登陆成功!", Toast.LENGTH_SHORT).show();
                                    Looper.loop();
                                } else if (result == -2) {
                                    Log.e("log_tag", "密码错误!");
                                    //Toast toast=null;
                                    Looper.prepare();
                                    Toast.makeText(PhpActivity.this, "密码错误!", Toast.LENGTH_SHORT).show();
                                    Looper.loop();
                                } else if (result == -1) {
                                    Log.e("log_tag", "不存在该用户!");
                                    //Toast toast=null;
                                    Looper.prepare();
                                    Toast.makeText(PhpActivity.this, "不存在该用户!", Toast.LENGTH_SHORT).show();
                                    Looper.loop();
                                }
                            } catch (IOException e) {
                                System.out.println(e.getMessage());
                            }
                        }
                    }).start();
                }
            });

    登陆按钮响应函数中有个login()函数,这个函数就是完成向服务器提交申请并获取服务器返回json数据的功能。
        /*
        *用户登录提交post请求
        * 向服务器提交数据1.user_id用户名,2.input_pwd密码
        * 返回JSON数据{"status":"1","info":"login success","sex":"0","nicename":""}
        */
        private int login() throws IOException {
            int returnResult=0;
            /*获取用户名和密码*/
            String user_id=et.getText().toString();
            String input_pwd=pwd.getText().toString();
            if(user_id==null||user_id.length()<=0){
                Looper.prepare();
                Toast.makeText(PhpActivity.this,"请输入账号", Toast.LENGTH_LONG).show();
                Looper.loop();
                return 0;
    
            }
            if(input_pwd==null||input_pwd.length()<=0){
                Looper.prepare();
                Toast.makeText(PhpActivity.this,"请输入密码", Toast.LENGTH_LONG).show();
                Looper.loop();
                return 0;
            }
            String urlstr="http://192.168.191.1/LBS/login.php";
            //建立网络连接
            URL url = new URL(urlstr);
            HttpURLConnection http= (HttpURLConnection) url.openConnection();
            //往网页写入POST数据,和网页POST方法类似,参数间用‘&’连接
            String params="uid="+user_id+'&'+"pwd="+input_pwd;
            http.setDoOutput(true);
            http.setRequestMethod("POST");
            OutputStream out=http.getOutputStream();
            out.write(params.getBytes());//post提交参数
            out.flush();
            out.close();
    
            //读取网页返回的数据
            BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(http.getInputStream()));//获得输入流
            String line="";
            StringBuilder sb=new StringBuilder();//建立输入缓冲区
            while (null!=(line=bufferedReader.readLine())){//结束会读入一个null值
                sb.append(line);//写缓冲区
            }
            String result= sb.toString();//返回结果
    
            try {
                /*获取服务器返回的JSON数据*/
                JSONObject jsonObject= new JSONObject(result);
                returnResult=jsonObject.getInt("status");//获取JSON数据中status字段值
            } catch (Exception e) {
                // TODO: handle exception
                Log.e("log_tag", "the Error parsing data "+e.toString());
            }
            return returnResult;
        }
    对于这个login()函数有几点说明:
    1) urlstr="http://192.168.191.1/LBS/login.php"其中192.168.191.1即本地电脑运行的Apache服务器的地址,这个地址会映射到Wamp安装目录下的WWW目录,LBS即为WWW目录下的文件夹。
    一开始我使用android studio自带模拟器进行测试,网上说是浏览器访问10.0.2.0什么的就能访问电脑上的本地Apache服务器,但是没能成功访问wamp自带的apache服务器。
    最后找到一个极好方法,就是使用真机测试,作为服务器的电脑需要安装一个wifi共享软件(如猎豹wifi),用要测试的真机连接该wifi后,手机浏览器访问http://192.168.191.1,如果显示
    如下图则说明手机访问电脑apache服务器成功,至此服务器环境已经搭建成功。login.php是放在电脑的apache服务器下的,比如我的是在D:\wamp\www\LBS文件夹下
    2) HttpURLConnection。本人曾在网上找到过一些安卓网络请求的方法,但是大多都已弃用,使用HttpURLConnection是当前还未弃用的一种方法,当然对于高手来说,这就不值一提了。
    3) JSONObject。
    由于在后面的php代码中所返回的数据为json数据类型,所以需要在客户端进行解析,这并不困难,不清楚的可以搜索一下。
    4)之前已经说过,本人对安卓一窍不通,所以在测试时犯了一个大忌,就是网络访问不能放在主线程中,否则会阻塞主线程,造成UI假死等错误,所以需要单开一个线程,即
    登陆按钮响应函数中的run方法

    2.服务器端

    login.php在服务器容器中,时刻响应着外部的访问请求,主要工作是:
    1)获取手机端通过Post请求发送的用户名密码。
    2)连接数据库,从数据库中查找是否有与该用户名密码一致的记录,根据查找结果返回不同的Json数据。
    3)Json数据是一种有效的客户端与服务器端的交互方式。
    <?php  
    /*
    *用户登录,服务器进行的处理
    */
    	include("conn.php");
        mysql_select_db("lbs");  
    	$getid=$_POST['uid'];//客户端post过来的用户名
    	$getpwd=$_POST['pwd'];//客户端post过来的密码
        $sql=mysql_query("SELECT * FROM user WHERE userid ='$getid'"); 
    	$result=mysql_fetch_assoc($sql);
    	if(!empty($result)){
    		//存在该用户
    		if($getpwd==$result['password']){
    			//用户名密码匹配正确
    			mysql_query("UPDATE user SET status='1' WHERE id =$result[id]");/*这里的数组不需要加单引号*/
    			$back['status']="1";
    			$back['info']="login success";
    			$back['sex']=$result['sex'];
    			$back['nicename']=$result['nicename'];
    			echo(json_encode($back)); 
    		}else{/*密码错误*/
    			$back['status']="-2";
    			$back['info']="password error";
    			echo(json_encode($back)); 
    		}
    
    	}else{
    		//不存在该用户
    		$back['status']="-1";
    		$back['info']="user not exist";
    		echo(json_encode($back)); 
    	}
             
        mysql_close();  
    ?> 

    其中conn.php是数据库连接文件,代码如下

    <?php
    	error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
         $conn=mysql_connect("localhost","root","admin") or die("数据库服务器连接错误".mysql_error());
         mysql_select_db("mylocation",$conn) or die("数据库访问错误".mysql_error());
         
    	 mysql_query("SET NAMES 'utf8'");
    ?>

    3.MYSQL数据库

    至于数据库,可以自行建立,根据上面php代码可知,数据库中有一个user表,表中有4个字段,分别是userid,password,nicename,sex.大家可自行建立即可(nicename,sex在本例中没有用到)。截图如下

     

    上述工作完成后,将客户端部署到真机上进行测试

    输入用户名密码,点击登陆按钮,结果如下:

    4.总结:

    本文所讲只是php和安卓结合最简单的一个例子,其实有许多大项目都是采用这种模式,比如新浪微博客户端等,感兴趣的读者可以查询相关的资料数据比如《Android+PHP最佳实践》,再次说明,由于本人也是个菜鸟,从许多前辈们的博文中学到了许多,所以在这里和大家分享一下自己的学习经验,所以如果文中有错误之处还欢迎大家批评指正。

    PS:CSDN什么时候把自家的文字编辑工具做的好用一点。

     

    展开全文
  • PHP开发Android软件的方法,怎么用PHP开发Android软件? PHP开发Android软件的方法,怎么用PHP开发Android软件? PHP开发Android软件的方法,怎么用PHP开发Android软件?     使用AppCan就可以实现跨平台开发...

    PHP开发Android软件的方法,怎么用PHP开发Android软件?

    PHP开发Android软件的方法,怎么用PHP开发Android软件?

    PHP开发Android软件的方法,怎么用PHP开发Android软件?

     

     

    使用AppCan就可以实现跨平台开发!

    /

     

     

    AppCan 是国内领先的移动应用在线开发平台,支持HTML5,能快速开发出手机应用,同时支持iOS、Android、Symbian。

    国内领先的移动应用在线开发平台_HTML5应用开发
    展开全文
  • 对于很多新手来说,如何实现android端与服务器之间的通信还是一个难题。这里我提供一个比较好用的类package org.crazyit.net;import java.io.*; import java.net.*; import java.util.*;/** * Description: * ...
  • php做接口+android 请求API接口并展示到ListView例子
  • 这是国内第一本同时讲述Android客户端开发PHP服务端开发的经典著作,本书不仅能让你掌握Android客户端和PHP服务端的开发精要,还能教会你与应用测试、优化、发布相关的诸多实用技巧。全书“四大篇”,准备篇、实战...
  • Android 开发环境
  • 先说说本人的情况,09年底开始学习手机开发,先从Brew到Mobile再到Androidandroid是今年过年回来才算真正开始学的,一边学习一边做原先Brew项目到android的移植,5月中旬的时候开始做个人开发者,比较惭愧的是至今...
  • Android开发环境搭建

    2017-08-01 10:27:57
    首先需要了解,当前开发android使用的主流开发平台为eclipse,因此本文讨论的是基于eclipse来做的。具体需要的各个文件(软件)如下: Eclipse:Eclipse 是 Java 的集成开发环境(IDE),当然 Eclipse 也可以作为...
  • 最近公众号有不少人问我这样一个问题:「张哥,我刚接触编程,准备学习下Android开发,但是担心现在市场饱和了,Android开发的前景怎么样?」想着可能有很多人都有这样的担心,于是就赶紧写篇文章,来跟你们谈下...
  • Android TV和Android手机开发的主要区别在于焦点的控制和焦点效果的不同。 以下是开发过程中收集到的开源项目,记录于此,与大家分享一下. 焦点放大,切换,边框处理,适配问题等。
  • 本书是一本Android进阶类书籍,采用理论、源码和实践相结合的方式来阐述高水准的Android应用开发要点。本书从三个方面来组织内容。 介绍Android开发者不容易掌握的一些知识点 结合Android源代码和应用层开发过程,...
  • 1.安装java环境oracle官网下载java就可以,链接...安装adt-bundle形式的android开发环境由于google现在极力推广他的android studio,官网貌似已经把eclips
  • 如何在Mac上开发Android应用(原创,给刚接触android和mac的新人)  原文:http://www.cocoachina.com/bbs/read.php?tid=139965 1.前言  由于去年年中准备专心搞iOS开发,但Android也不能放弃。然后就...
  • 转载请注明出处:   做关于位置或者定位的app的时候免不了使用地图功能,本人最近由于项目的需求需要使用百度地图的一些功能,所以这几天研究了一下,现写一下blog记录一下,欢迎大家评论指正!...
  • 如果读者观看前些年讲解android开发的相关视频教程,发现里面用的都是清一色的eclipse。eclispe是一个开放多功能的IDE,只要装上插件就可以开发具体情境的应用程序(如基于arm的裸机程序,基于DS...
  • 收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。
  • Android NFC开发-实践篇

    2018-09-10 14:08:42
    Android NFC开发-实践篇 https://blog.csdn.net/CSDN_GYG/article/details/72899417 在Android NFC开发-理论篇中,我们了解了在Android开发NFC的一些理论知识,这篇我们继续应用我们上一篇学到的知识,实现对...
1 2 3 4 5 ... 20
收藏数 51,474
精华内容 20,589