android本地服务器搭建
❶ 如何给Android应用创建本地服务
本文通过代码向大家详细介绍和演示这两种的服务的创建过程,代码适用于Android2.3.3以后的版本。
1. 定义清单文件(AndroidManifest.xml)
4. 创建服务启动界面(LocalServiceActivities.java)
package my.android.test;
import android.app.Activity;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
/**
* 该类中包含两种类型服务的客户端:
* 启动类型服务客户端:Controller
* 绑定类型服务客户端:Binding
*/
publicclass LocalServiceActivities {
/**
* Controller类是启动类型服务的客户端,它包含两个按钮:
* start:点击该按钮时,启动服务。
* stop: 点击该按钮时,终止服务。
*/
publicstaticclass Controller extends Activity{
/**
* Activity被首次启动时,调用该方法。
*/
@Override
protectedvoid onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//填充布局
setContentView(R.layout.local_service_controller);
//查找布局中的启动服务按钮,并设置点击事件监听器。
Button button = (Button)findViewById(R.id.start);
button.setOnClickListener(mStartListener);
//查找布局中的终止服务按钮,并设置点击事件监听器。
button = (Button)findViewById(R.id.stop);
button.setOnClickListener(mStopListener);
}
/**
* start按钮的点击事件监听器实现。
*/
private OnClickListener mStartListener = new OnClickListener(){
publicvoid onClick(View v){
//启动LocalService服务。
startService(new Intent(Controller.this, LocalService.class));
}
};
/**
* stop按钮的点击事件监听器实现。
*/
private OnClickListener mStopListener = new OnClickListener(){
publicvoid onClick(View v){
//终止LocalService服务。
stopService(new Intent(Controller.this, LocalService.class));
}
};
}
/***************************************************************
*以下是绑定型服务客户端的实现
***************************************************************/
/**
* Binding类是绑定类型服务的客户端,它包含两个按钮:
* bind:点击该按钮时,调用bindService()方法绑定并启动服务;
* unbind:点击该按钮时,调用unbindService()方法解除绑定并终止服务。
*/
publicstaticclass Binding extends Activity{
//用于保存服务的绑定状态,true:绑定,false:未绑定
privatebooleanmIsBound;
//用于保存被绑定的本地服务实例。
private LocalService mBoundService;
/**
* 实现监视被绑定服务状态的接口:ServiceConnection
* 绑定类型服务都要实现这个接口,以便监视服务的状态,这个接口中的方法会在
* 应用的主线程中被调用。
*/
private ServiceConnection mConnection = new ServiceConnection(){
/**
* 当连接的服务被创建时,Android系统会调用这个方法,用IBinder对象跟服务建立通信通道。
* @param className:被连接的具体的服务组件的名称
* @param service:服务的通信通道IBinder对象。
*/
publicvoid onServiceConnected(ComponentName className, IBinder service){
//从IBinder对象中获取服务实例。
mBoundService = ((LocalService.LocalBinder)service).getService();
//显示Activity已经与服务建立了连接的提示消息。
Toast.makeText(Binding.this, R.string.local_service_connected, Toast.LENGTH_SHORT).show();
}
/**
* 当服务被终止时,Android系统会调用这个方法。
*/
publicvoid onServiceDisconnected(ComponentName className){
//清除客户端服务实例
mBoundService = null;
//显示服务被终止的提示消息。
Toast.makeText(Binding.this, R.string.local_service_disconnected, Toast.LENGTH_SHORT).show();
}
};
/**
* 绑定并启动服务,bind按钮点击时会调用这个方法。
*/
void doBindService(){
//绑定并启动服务。
bindService(new Intent(Binding.this, LocalService.class), mConnection, Context.BIND_AUTO_CREATE);
mIsBound = true;
}
/**
* 解除与服务的绑定,unbind按钮被点击时会调用这个方法
*/
void doUnbindService(){
//如果服务被绑定,则解除与服务绑定。
if(mIsBound){
unbindService(mConnection);
mIsBound = false;
}
}
/**
* 当Activity被销毁时,调用解除绑定服务的方法,解除被绑定的服务。
*/
@Override
protectedvoid onDestroy(){
super.onDestroy();
//解除被绑定的服务。
doUnbindService();
}
/**
* bind按钮的点击事件监听器接口实现。
*/
private OnClickListener mBindListener = new OnClickListener(){
publicvoid onClick(View v){
//绑定并启动服务。
doBindService();
}
};
/**
* unbind按钮的点击事件监听器接口实现。
*/
private OnClickListener mUnbindListener = new OnClickListener(){
publicvoid onClick(View v){
//解除被绑定的服务。
doUnbindService();
}
};
/**
* Activity被首次启动时,会调用这个方法。
*/
@Override
protectedvoid onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
//填充Activity
setContentView(R.layout.local_service_binding);
//查找布局中的bind按钮,并设置点击事件的监听器
Button button = (Button)findViewById(R.id.bind);
button.setOnClickListener(mBindListener);
//查找布局中的unbind按钮,并设置点击事件的监听器
button = (Button)findViewById(R.id.unbind);
button.setOnClickListener(mUnbindListener);
}
}
}
5. 创建服务(LocalService.java)
package my.android.test;
import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.Process;
import android.util.Log;
import android.widget.Toast;
/**
* LocalService基础Android的Service类,实现应用的本地服务组件。
* 该服务使用HandlerThread类创建了服务自己的线程和消息循环,
* 因此,不会因为服务中的长时处理,而阻塞界面的刷新,影响用户体验。
*/
publicclass LocalService extends Service {
//用于保存本服务自己的消息循环对象Looper
private Looper mServiceLooper;
//用于保存内部类ServiceHandler的对象实例,它继承了Android的Handler类,
//用于处理发送给服务的消息。
private ServiceHandler mServiceHandler;
/**
* 这个类用于给客户端提供绑定对象,因为本示例的服务与客户端运行在同一个
* 主进程中,所以不需要处理进程间通信(IPC)
*/
publicclass LocalBinder extends Binder{
LocalService getService(){
//返回本服务的实例。
return LocalService.this;
}
}
/**
* 服务被首次创建时,系统调用这个方法。
* Android服务组件必须覆写这个方法
*/
@Override
publicvoid onCreate(){
//创建线程对象,并启动线程。
HandlerThread thread = new HandlerThread("ServiceStartArguments", Process.THREAD_PRIORITY_BACKGROUND);
thread.start();
//获取线程的消息循环对象
mServiceLooper = thread.getLooper();
//用线程的消息循环对象创建消息处理对象。
mServiceHandler = new ServiceHandler(mServiceLooper);
}
/**
* 启动类型服务必须实现这个方法,客户端每次调用startService()方法时,
* 系统都会调用这个方法。
* @param intent:它是传递给startService()方法的Intent对象。
* @param flags:有关启动请求的附加数据,可以是:0、START_FLAG_REDELIVERY或START_FLAG_RETRY.
* @param startId:一个唯一的整数,代表一次具体的请求,用于stopSelfResult(int)方法。
*/
@Override
publicint onStartCommand(Intent intent, int flags, int startId){
Log.i("LocalService", "Received star id" + startId + ":" + intent);
//显示服务启动的提示信息
Toast.makeText(this, "service starting", Toast.LENGTH_SHORT).show();
//获取要传递给服务消息循环的Message对象。
Message msg = mServiceHandler.obtainMessage();
//初始化Message对象的成员变量。
msg.arg1 = startId;
msg.obj = "Message processing......" + startId;
//把消息发送给服务线程的消息循环。
mServiceHandler.sendMessage(msg);
returnSTART_STICKY;
}
/**
* 必须覆写这个方法,服务被终止时要调用这个方法,清理服务所占用的资源。
*/
@Override
publicvoid onDestroy(){
//退出服务线程的消息循环。
mServiceLooper.quit();
//显示服务被退出的提示信息。
Toast.makeText(this, R.string.local_service_stopped, Toast.LENGTH_SHORT).show();
}
/**
* 绑定型服务必须覆写这个方法,启动型服务也可覆写这个方法,只要返回null即可。
*/
@Override
public IBinder onBind(Intent intent){
//返回本服务对象实例。
returnmBinder;
}
privatefinal IBinder mBinder = new LocalBinder();
/**
* 该类继承Android的Handler类,为线程的消息循环提供发送和处理消息的功能,
* 本示例覆写了handleMessage()方法,用来处理发送给服务消息循环的消息。
*/
privatefinalclass ServiceHandler extends Handler{
//类实例化时,需要传入服务线程的消息循环对象
public ServiceHandler(Looper looper){
super(looper);
}
/**
* 覆写Handler类的handleMessage()方法,当服务线程的消息循环接收到外部
* 发送的消息时,会调用这个方法来处理对应的消息,本示例只是简单的向用户提示消息被处理的信息。
*/
@Override
publicvoid handleMessage(Message msg){
long endTime = System.currentTimeMillis() + 5 * 1000;
while (System.currentTimeMillis() < endTime){
synchronized(this){
try{
wait(endTime - System.currentTimeMillis());
CharSequence cs = msg.obj.toString();
Toast.makeText(LocalService.this, cs, Toast.LENGTH_SHORT).show();
//showNotification();
}catch(Exception e){
//
}
}
}
//消息被处理之后,终止本服务。
LocalService.this.stopSelf();
}
}
}
❷ 如何在 android 本地搭建一个 http 服务器
这一阵感觉玩手机玩腻了,VPS也玩腻了,瞬间感觉啥都玩腻了。前几天闲着无聊,看到了手机上的超级终端,心想:安卓底层不也是Linux么?于是就用超级终端wget了一个文件,成功了!吼吼,于是下一个想法就是能不能在手机上搭建一个WEB环境??? 想到就开始各种搜,发现安卓使用的Linux并不属于任何发行版本,看来使用传统的建站方式不行了。继续搜索,发现谷歌商店里有一个集成lighttpd+php+mysql+phpmyadmin环境的APK,哈哈,这下好了。当然,如果只装上这个APK只能在本地测试,无法使用公网访问,所以,经过我各种搜,终于有了这一篇文章,毫不客气的说,这绝对是全网首发,至少不用让你再像我一样各种搜了。 现在的手机硬件已经很强大了,¥1999就能买到4核1.5G,2G内存的手机,这几乎能满足像我这样的小站的需求了。硬件有了,集成环境的APK也有了,就剩下公网访问了。 第一:需要一部安卓手机,至少600MHZ的CPU,256内存,手机需要ROOT,没有ROOT的话,不能使用80端口。 第二:下载我提供的集成环境的APK文件(这里)解压密码:,KSWEB在谷歌商店里是收费的,免费试用5天,我提供的这个文件为网友破解版,免费试用55年,够你折腾了。 第三:需要一个支持路由功能的路由器,以及一个花生壳账号。 1.首先在手机上安装APK,(如果手机里有什么防火墙之类的,请关闭,否则不能使用WIFI地址访问),然后点开KSWEB,首次开启,会解压缩文件,然后会提示重启,重启后,就能够看到mysql启动和相应信息了。 2.点options进入设置,然后勾选上root权限,这样就可以更改端口为80了。然后回到主界面,点phpmyadmin然后就会自动下载了。下载成功后,可以在手机浏览器里输入127.0.0.1,就可以看到相关信息。虽然版本有些老,但是相当简便啊亲…… 如果你只想在手机上测试,那么到这里就结束了。如果想让公网访问手机, 那么就需要使用DDNS(动态域名解析)来支持。 3.使用oray护照,登录花生壳,系统会自动分配给你一个免费域名,用这个域名来访问手机。登录你的路由器,点击“转发规则”,选择“虚拟服务器”,端口填写80,IP地址填写你手机WIFI的IP地址,保存,如图所示。 4.保存后,点击“动态DNS设置”,账号密码就是你oray的通行证,点登录,如果成功了,就会自动识别你的免费域名。如图所示,然后保存就行了。 这样的话,直接输入域名就可以访问到手机了,只要你的路由器不关闭,就可以一直使用了。下面是我的演示: 至此,你的手机就可以当成一个独立的VPS来使用了,建议使用闲置的手机来玩,它有以下几个好处:装13,够折腾,省电省资源,废物利用,数据更安全,便携,国内速度一流……还有,查域名的时候貌似是独立IP,这样网络会不会喜欢呢?
❸ 如何给Android应用创建本地服务
本文通过代码向大家详细介绍和演示这两种的服务的创建过程,代码适用于Android2.3.3以后的版本。
定义清单文件(AndroidManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<!-- 本例为了方便,将启动类型服务的Activity和绑定类型服务的Activity放到了一个类中:
LocalServiceActivities.java -->
<manifestxmlns:android="http://schemas.android.com/apk/res/android"
package="my.android.test"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="9"android:targetSdkVersion="9"/>
<application android:icon="@drawable/icon"android:label="@string/app_name">
<!-- 本地服务LocalService -->
<service android:name="LocalService" />
<!-- 启动类型服务的Activity,内部类Controller-->
<activity android:name=".LocalServiceActivities$Controller"
android:label="@string/app_name"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<categoryandroid:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<!-- 绑定类型服务的Activity,要运行本服务,需要将下面的注释去掉,
同时给上面的启动类型服务的Activity给注释掉 -->
<!--
<activity android:name=".LocalServiceActivities$Binding"
android:label="@string/app_name"
android:launchMode="singleTop">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
-->
</application>
</manifest>
2. 定义字符资源(strings.xml)
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Hello World, LocalServiceActivity!</string>
<string name="app_name">LocalServiceApp</string>
<stringname="activity_local_service_controller">App/Service/Local Service Controller</string>
<string name="local_service_controller">This demonstrates how you can implement persistent services that
may be started and stopped as desired.</string>
<string name="start_service">Start Service</string>
<string name="stop_service">Stop Service</string>
<string name="local_service_started">Local service has started</string>
<string name="local_service_stopped">Local service has stopped</string>
<string name="local_service_label">Sample Local Service</string>
<stringname="activity_local_service_binding">App/Service/Local Service Binding</string>
<string name="local_service_binding">This demonstrates how you can connect with a persistent
service. Notice how it automatically starts for you, and play around with the
interaction between this and Local Service Controller.</string>
<string name="bind_service">Bind Service</string>
<string name="unbind_service">Unbind Service</string>
<string name="local_service_connected">Connected to local service</string>
<string name="local_service_disconnected">Disconnected from local service</string>
</resources>
3. 定义布局资源
3.1. local_service_controller.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical" android:padding="4dip"
android:gravity="center_horizontal"
android:layout_width="match_parent"android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"android:layout_height="wrap_content"
android:layout_weight="0"
android:paddingBottom="4dip"
android:text="@string/local_service_controller"/>
<Button android:id="@+id/start"
android:layout_width="wrap_content"android:layout_height="wrap_content"
android:text="@string/start_service">
<requestFocus />
</Button>
<Button android:id="@+id/stop"
android:layout_width="wrap_content"android:layout_height="wrap_content"
android:text="@string/stop_service">
</Button>
</LinearLayout>
❹ 安卓手机搭建FTP服务器
FTP服务器(FTPServer),是由TheOliveTree开发的,支持手机搭建。
优点:
一、是体积很小,除了FTP服务器功能之外什么功能都没有,APP就1.5M不到的体积。
二、是完全免费,虽然有付费的pro版,但免费版的功能我还没发现有什么限制,唯一的就是界面上有点广告,但是可以通过去除。
三、是APP的界面设计跟Android4.x的UI不是太违和。最后是功能比较稳定,试用很多次都没发现有连不上的情况,也没发现有FTP不稳定的情况。
这个APP支持WIFI,蓝牙,USB,甚至3G网络的FTP建立。其中最重要的是还支持USBFTP服务器的建立。
1、手机下载安装app后打开软件,设置FTP用户名以及密码。
3、连接查看安装手机的IP地址即可登录访问。
❺ 在Android开发中怎么将手机作为服务器
工具/原料
root软件:网络root为佳!如果你已经获取了权限,可以跳过。
ksweb软件:用于搭建手机php服务器的软件。
nat123软件:强大的内网端口映射软件,不需要路由器权限。
方法/步骤
1.安装手机本地php+mysql服务器环境篇:
1.1安装ksweb软件,安装好ksweb后,会在手机上生成一个文件夹htdocs,其目录是mnt/sdcard/htdocs,htdocs是网站的根目录。
1.2安装mysql直接点击mysql管理,点击选择“是”然后解压便可自动安装。mysql的账号密码随后再改(在设置里面更改)。
1.3安装好MySQL之后,我们需要对ksweb进行一些设置方可更好使用。
1.3.1端口的更改步骤:(启用root→更改80端口)手机服务器启用root,在ksweb设置里面把root打钩。
1.3.2开启手机80端口方法:把8080端口改为80端口,并把PHP服务,MySQL都打勾。其他一些设置比如MySQL密码,开机自启动等选项大家根据需要自行修改即可!
1.4ksweb全部设置好后,我们打开手机本地服务器地址localhost:80,表示设置好了。
我们点击页面中的“EnterKSWEBWeb Interface”可以看到手机服务器的一些配置信息(默认账号密码都是“admin”),表示手机服务搭建成功,一切正常!
2.利用nat123软件进行内网80端口映射篇:
2.1注册账号,我们先到其官网注册账号官网,大家网络nat123即可。
2.2登陆并添加域名解析。
2.2.1应用名称,要搭建自己的博客,可以填XX的博客,或者XX的个人博客等。
2.2.2内网端口,只有root的手机才填80端口。
2.2.3内网地址这个默认localhost就行。
2.2.4 外网域名,如果没有自己的域名,可以用官方免费的二级域名,注意格式,一切填好之后,点击确认保存即可!
2.3 下载并安装登陆安卓版的nat123,就自动解析了。
3.4接下来在另一台电脑上输入刚才的域名访问,表示安卓手机web服务器安装成功,网站搭建成功!
注意事项
另外如果需要手机网站一直都可以访问,需要下载一个永不关屏软件,这样手机就不会进入睡眠状态,服务也不会停止,不过比较耗电。
外网能访问内网手机web服务器的关键是nat123端口映射功能,利用nat123端口映射功能,不只是搭建内网网站,还可以挖掘其他的许多用途。
❻ android 上可以安装 tomcat 吗也就是说用android搭建一个服务器,要怎样操作呢
web后台搭建服务器,android通过调用后台给的接口,实现android客户端对服务器的各项交互操作,请采纳
❼ 如何在安卓上搭建http服务器
转载 本文介绍如何在安卓手机上搭建http服务器,有时候我们会有这要的需求,那就是想在自己的安卓手机上搭建一个简单的http服务里,有人是想用来玩一玩,有人是想做点研究,还有人有其他的目的,那么我们该怎么在安卓上搭建一个http服务器呢,下面安卓后院 为大家收集整理的一个方法,希望能够帮到大家。
一、准备篇
1.将lmp.tar.bz2移动到SD卡根目录(/mnt/sdcard/)
2.安装安卓终端模拟器(TerminalEmulator.apk)
(注:lmp.tar.bz2文件可以在本站的安卓工具箱页面下下载)
二、安装篇
1.打开安卓终端模拟器
2.执行以下命令(root)
$ su
# cd /
# mount -o remount,rw /system
# tar xf /mnt/sdcard/lmp.tar.bz2
# mount -o remount,ro /system
# exit
$ exit
三、启动篇
1.打开安卓终端模拟器
2.执行以下命令(root)
$ su
# almp-start.sh
# exit
$ exit
三、关闭篇
1.打开安卓终端模拟器
2.执行以下命令(root)
$ su
# almp-stop.sh
# exit
$ exit
四、测试篇
1.打开网络浏览器(OperaMobile)
2.输入以下地址欣赏下您的almp环境吧
http://127.0.0.1/
http://127.0.0.1/fileadmin/
或者
http://localhost/
http://localhost/fileadmin/
*.部分浏览器不支持localhost的解析
五、mysql篇
1.mysql用户名为root
2.mysql默认密码为空
3.mysql用以下地址访问
127.0.0.1:3306
localhost:3306
4.推荐phpmyadmin管理您的mysql数据库
5.由于phpmyadmin更新频繁,请自己下载安装
6.phpmyadmin默认不支持空密码登陆,请自己修改phpmyadmin的配置文件
7.登陆phpmyadmin轻击修改密码为您的mysql超级用户root设置一个密码吧
六、注意篇
*.php-cgi由本人编译
1.手机需要有root权限
2.部分rom需要安装busybox
3.部分rom需要在命令前面加上busybox
4.本环境包中的部分资源来源于网络开源项目
5.用Re挂载/system分区为读写可跳过mount命令
6.执行终端命令时请忽略命令前的命令提示符$(#)
7.本环境包理论上应该工作在Arm5++的安卓手机上
❽ Android app开发 搭建服务器
首先,先别用花生壳,我之前用过,会攻击电脑,ip被改的很奇怪。如果想让外网访问服务器的话,可以试试美步。
然后,服务器搭建服务器方法挺多的,我现在是用MyEclipse+sqlserver2008,服务器端写jdbc代码,生成json格式的数据,返回给客户端,客户端json解析得到数据显示在UI上。json格式说白了就是一组组的字符串。
关机问题:你的电脑如果搭建了服务器功能了,那你的那台电脑就已经是服务器了,服务器是一般是不会关机的,关机之后,客户端当然不能再访问服务器了。
全部是根据自己的理解手打,希望帮到你。
❾ 如何在个人云服务器上搭建Android服务器
android的服务器的话,应该是指后台的交互,你可以使用java编写/或者其他语言
❿ 如何利用安卓手机搭建WEB服务器
1.安装手机本地php+mysql服务器环境篇 :
1.1安装ksweb软件,安装好ksweb后,会在手机上生成一个文件夹htdocs,其目录是mnt/sdcard/htdocs,htdocs是网站的根目录。
1.2安装mysql 直接点击mysql管理,点击选择“是”然后解压便可自动安装。mysql的账号密码随后再改(在设置里面更改)。
1.3安装好MySQL之后,(如下图,打开phpmyadmin,表示安装成功!),另外,我们需要对ksweb进行一些设置方可更好使用。
1.3.1端口的更改步骤:(启用root→更改80端口)手机服务器启用root方法如下图,在ksweb设置里面把root打钩。
1.3.2开启手机80端口方法:把8080端口改为80端口,并把PHP服务,MySQL都打勾。其他一些设置比如MySQL密码,开机自启动等选项大家根据需要自行修改即可!
1.4ksweb全部设置好后,我们打开手机本地服务器地址localhost:80,表示设置好了。
我们点击页面中的“Enter KSWEB Web Interface”可以看到手机服务器的一些配置信息(默认账号密码都是“admin”)。表示手机服务搭建成功,一切正常!
2.利用nat123软件进行内网80端口映射篇:
2.1注册账号,我们先到其官网注册账号官网,大家网络nat123即可,至于怎么注册我就不说了。
2.2登陆并添加域名解析,
2.2.1 应用名称,我填的是网络电视直播—在线看电视。假如你要搭建自己的博客,你可以填XX的博客,或者XX的个人博客等。
2.2.2 内网端口,只有root的手机才填80端口,所以这也是为什么一开始我说手机需要root!
2.2.3 内网地址这个默认localhost就行。
2.2.4 外网域名,我这里使用的是自己的域名(当使用自己的域名时,用cname解析,下面有当前唯一cname地址,我们在自己的域名解析里面填这个就行)。如果我们没有自己的域名,我们可以用官方免费的二级域名,注意他的格式)一切填好之后,点击确认保存即可!
2.3 我们下载并安装登陆安卓版的nat123,就自动解析了,
3.4 接下来我们在另一台电脑上输入刚才的域名访问 如下图所示,表示安卓手机web服务器安装成功,网站搭建成功!