您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 第9章--Android网络通信技术
第9章Android网络通信技术主讲:方欣2013年9月本章学习目标:本章的要达到主要目标:掌握Android中WebView组件掌握Android中HTTP协议通信技术掌握Android中Socket协议通信技术掌握Android中WebService通信技术了解Android中蓝牙通信技术了解Android中WiFi通信技术第9章Android网络通信技术9.1.1Android中的HTTP协议基础HTTP(HyperTextTransferProtocol,超文本传输协议),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用,用于传送方式的数据。HTTP协议采用了请求/响应模式,是一个属于应用层的面向对象的协议。HTTP大致工作流程:客户端向服务器发出HTTP请求,服务器接收到客户端的请求后,处理客户端的请求,处理完成后再通过HTTP应答返回给客户端。这里的客户端是指Android手机端,服务器一般是HTTP服务器,HTTP请求方法有POST、GET等方法。第9章Android网络通信技术9.1.2Android中的Socket基础如果双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。如果是要进行多人联网的游戏,那么HTTP就不能很好地满足要求,Socket通信可以很好地解决这个问题。Socket(也称为套接字)是一种低级、原始的通信方式,要编写服务器端代码和客户端代码,自己设置端口,自己设置通信协议、验证数据安全和合法性,而且通常还应该是多线程的,开发起来比较麻烦。但是它也有其优点:灵活,不受编程语言、设备、平台和操作系统的限制,通信速度快而高效。第9章Android网络通信技术9.1.2Android中的Socket基础如果双方建立的是HTTP连接,则服务器需要等到客户端发送一次请求后才能将数据传回给客户端,客户端定时向服务器端发送连接请求,不仅可以保持在线,同时也是在“询问”服务器是否有新的数据,如果有就将数据传给客户端。如果是要进行多人联网的游戏,那么HTTP就不能很好地满足要求,Socket通信可以很好地解决这个问题。Socket(也称为套接字)是一种低级、原始的通信方式,要编写服务器端代码和客户端代码,自己设置端口,自己设置通信协议、验证数据安全和合法性,而且通常还应该是多线程的,开发起来比较麻烦。但是它也有其优点:灵活,不受编程语言、设备、平台和操作系统的限制,通信速度快而高效。第9章Android网络通信技术9.1.2Android中的Socket基础Socket之间的连接过程分为三个步骤:服务器监听,客户端请求,连接确认。服务器监听:服务器端套接字并不定位具体的客户端套接字,而是处于等待连接的状态,实时监控网络状态,等待客户端的连接请求。客户端请求:指客户端的套接字提出连接请求,要连接的目标是服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套接字提出连接请求。连接确认:当服务器端套接字监听到或者说接收到客户端套接字的连接请求时,就响应客户端套接字的请求,建立一个新的线程,把服务器端套接字的描述发给客户端,一旦客户端确认了此描述,双方就正式建立连接。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字的连接请求。第9章Android网络通信技术9.1.3Android中的WebService基础WebServices是一个用于支持网络间不同机器互操作的软件系统。在构建和使用WebService时用到以下几个术语:1.XML:可扩展的标记语言(xtensiblemarkuplanguage的缩写)是WebService平台中表示数据的基本格式,它的主要的优点在于它既与平台无关又与厂商无关,同时还易于建立、易于分析。2.SOAP:简单对象访问协议(simpleobjectaccessprotocoll的缩写),是WebService进行消息传递的通信协议,它是一种轻量级的、简单的、基于XML的协议,用于在分布式环境中交换格式化和固化信息,所有的SOAP消息都使用XML编码。第9章Android网络通信技术9.1.3Android中的WebService基础3.WSDL:Web服务描述语言(webserviceDescriptionLanguage的缩写),是一个用来描述如何与Web服务通信的XML语言。服务的提供者将自己的Web服务所有相关内容生成相应的WSDL文档,发布给使用者,使用者可以通过这个WSDL文档,创建相应的SOAP请求消息,通过HTTP传递给服务的提供者;Web服务在完成服务请求后,将SOAP返回消息传回请求者,服务请求者再根据WSDL文档将SOAP返回消息解析成自己能够理解的内容。第9章Android网络通信技术9.1.3Android中的WebService基础4.UDDI:通用描述、发现与集成(UniversalDescription,DiscoveryandIntegration的缩写),它是一种独立于平台的,基于XML语言用于在互联网上描述商务的协议。将WebService进行UDDI注册发布,UDDI是一种创建注册表服务的规范,以便大家将自己的WebService进行注册发布供使用者查找。当服务提供者想将自己的WebService向外部发布时,它可以将自己的WebService注册到相应的UDDI商用注册网站,因为WSDL文件中已经给定WebService的地址URI,外部可以直接通过WSDL提供的URI进行相应的WebService调用。UDDI注册是向世界范围内的公司开放的,不论他们的规模大小。UDDI并不是一个必需的WebService组件,服务方完全可以不进行UDDI的注册。第9章Android网络通信技术9.1.4Android中的蓝牙基础蓝牙是目前使用最广泛的无线通讯协议之一,实现近距离无线通讯。最初由爱立信创建,蓝牙的标准是IEEE802.15.1,蓝牙协议工作在无需许可的ISM(IndustrialScientificMedical)频段的2.45GHz。最高速度可达723.1kb/s。9.2WebView组件介绍9.2.1WebView组件基础知识Android手机中内置了一款高性能webkit内核浏览器,在SDK中封装为一个叫做WebView组件。用户可以直接使用WebView组件显示网页的内容,或者是将一些指定的HTML文件嵌入进来,除了支持各个浏览器的“前进”、“后退”等功能之外,最为强大的是WebView还支持JavaScript的操作,能与JavaScript相互通信。android.webkit.WebView类的层次关系如下所示:java.lang.Objectandroid.view.Viewandroid.view.ViewGroupandroid.widget.AbsoluteLayoutandroid.webkit.WebView要在Android程序中使用WebView组件必须要在程序中使用下面的语句。importandroid.webkit.WebView;//导入webkit.WebView类9.2WebView组件介绍WebView在Android中的主要作用有如下三个方面:1.加载网页,直接显示网页;2.加载HTML文件,可以利用HTML做界面布局,在手机上实现复杂的显示布局效果;3.加载JSP文件和JavaScript相互通信9.2WebView组件介绍9.2.2使用WebView加载网页实现WebView加载网页,按照下述的步骤进行即可:1.在要Activity中实例化WebView组件;如:WebViewwebView=newWebView(this);//实例化WebView组件或者在布局文件中声明WebView,然后在Activity中实例化WebView;例如:this.webview=(WebView)super.findViewById(R.id.webview);//取得组件2.调用WebView的loadUrl()方法,设置WevView要显示的网页;例如:webView.loadUrl(“”);3.调用Activity的setContentView()方法来显示网页视图;9.2WebView组件介绍9.2.2使用WebView加载网页4.为了让WebView支持回退功能,需要覆盖Activity类的onKeyDown()方法,如果不做任何处理,点击系统回退键,整个浏览器会调用finish()结束,而不是回退到上一页面;5.需要在AndroidManifest.xml文件中添加权限,否则会出现错误。uses-permissionandroid:name=android.permission.INTERNET/9.2WebView组件介绍实例9-1:使用WebView加载网页实例9.2WebView组件介绍9.2.3使用WebView加载HTML文件按照如下步骤加载HTML文件:1.在要Activity中实例化WebView组件;例如:WebViewwebView=newWebView(this);//实例化WebView组件或者在布局文件中声明WebView,然后在Activity中实例化WebView;例如:this.webview=(WebView)super.findViewById(R.id.webview);//取得组件2.开启WebView的支持javascript的功能;例如:this.webview.getSettings().setJavaScriptEnabled(true);//启用javascript9.2WebView组件介绍9.2.3使用WebView加载HTML文件3.通过WebView的loadUrl方法载入相应html文件,该html文件中包涵了javascript方法。例如:this.webview.loadUrl(“file:/android_asset/show.html”);//读取网页文件4.需要在AndroidManifest.xml文件中添加权限,否则会出现错误。uses-permissionandroid:name=android.permission.INTERNET/9.2WebView组件介绍实例9-2:使用WebView加载HTML文件实例9.2WebView组件介绍9.2.4使用WebView加载JSP文件按照如下步骤加载JSP文件:1.要确保该JSP文件能在浏览器里正确浏览;1)下载、安装Tomcat,安装设置成功。2)找到Tomcat的安装目录,里面有个webapps文件夹,在里面建立一个文件夹(例如JSP),将要发布的JSP文件(例如:exam1.jsp)复制到该目录,在浏览器中输入,出现如图9.7所示的界面。9.2WebView组件介绍2.进入手机编程环境,在Activity中实例化WebView组件;例如:WebViewwebView=newWebView(this);//实例化WebView组件或者在布局文件中声明WebView,然后在Activity中实例化WebView;例如:this.webview=(WebView)super.findViewById(R.id.webview);//取得组件3.要开启WebView的支持javascript的功能;例如:this.webview.getSettings().setJavaScriptEnabled(true);//启用javascript9.2WebView组
本文标题:第9章--Android网络通信技术
链接地址:https://www.777doc.com/doc-5154173 .html