Android应用开发教程课件作者罗文第十章节教学课件

上传人:E**** 文档编号:89083817 上传时间:2019-05-17 格式:PPT 页数:41 大小:2.33MB
返回 下载 相关 举报
Android应用开发教程课件作者罗文第十章节教学课件_第1页
第1页 / 共41页
Android应用开发教程课件作者罗文第十章节教学课件_第2页
第2页 / 共41页
Android应用开发教程课件作者罗文第十章节教学课件_第3页
第3页 / 共41页
Android应用开发教程课件作者罗文第十章节教学课件_第4页
第4页 / 共41页
Android应用开发教程课件作者罗文第十章节教学课件_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《Android应用开发教程课件作者罗文第十章节教学课件》由会员分享,可在线阅读,更多相关《Android应用开发教程课件作者罗文第十章节教学课件(41页珍藏版)》请在金锄头文库上搜索。

1、第10章 网络编程,Android应用开发教程,黑龙江,吉林,山东,西藏,新疆,浙江,台湾,课堂引入,问题:Android有那些通信方式? 各种通信方式的特点? Android网络通信的实现?,通信程序的方法 通信程序的实现 通信的注意事项,学习内容,Socket网络编程,1,HTTP网络编程,2,WebService编程,3,WebView编程,4,GPS定位,5,一、Socket编程,70代,现在,1. Socket介绍,Socket通常也称作“套接字”,用于描述IP地址和端口,是一个通信连接的句柄,Android中的Socket与Java中的Socket类同。Socket 提供了程序内部

2、与外界通信的端口并为通信双方提供了数据传输通道。Socket通信在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,不需要每次由客户端向服务器发送请求。,2. Socket通信模型,(1)基于TCP的Socket通信,服务器端的Socket主要使用ServerSocket来创建,利用这个类可以监听来自网络的请求。创建ServerSocket的方法: ServerSocket(Int localPort) ServerSocket(int localport,int queueLimit) ServerSocket(int localport,int queueLimit,

3、InetAddress localAddr) ServerSocket的主要方法: Socket accept():为下一个传入的连接请求创建Socket实例,并将已成功连接的Socket实例返回给服务器套接字,如果没有连接请求,accept()方法将阻塞等待; void close():关闭套接字对象。,客户端使用Socket创建通信对象,创建客户端Socket的方法: Socket(InetAddress remoteAddress,int remotePort) 利用Socket的构造函数,可以创建一个TCP套接字,然后连接到指定的远程地址和端口号。 操作Socket的主要方法: Inp

4、utStream getInputStream():获取数据流对象; OutputStream getOutputStream():获取输出流对象; void close():关闭套接字对象,基本的实现过程是服务端首先声明一个ServerSocket对象并且指定端口号,然后调用ServerSocket的accept()方法接收客户端的数据,accept()方法在没有数据可接收时处于堵塞状态,一旦接收到数据即可以通过inputstream读取接收的数据。客户端创建一个Socket对象,指定服务器端的ip地址和端口号,建立连接后,通过inputstream读取数据,获取服务器发出的数据;也可将要发

5、送的数据写入到outputstream中传送给服务器。,(2)基于UDP的Socket通信,主要使用两个对象:报文对象DatagramPaket和通信对象DatagramSocket。,报文对象DatagramPacket的构造函数,数据包含在第一个参数当中: DatagramSocket(byte data,int offset,int length,InetAddress remoteAddr,int remotePort) UDP通信对象DatagramSocket的构造函数: DatagramSocket(int localPort) UDP通信对象DatagramSocket的主要方

6、法: void send(DatagramPacket packet):发送DatagramPacket实例; void receive(DatagramPacket packet) :阻塞等待,直到接收到数据报文,并将报文中的数据复制到指定的DatagramPacket实例中。,数据报通信方式的主要实现过程是服务器端首先创建一个DatagramSocket对象,并且指定监听的端口,接下来创建一个空的DatagramPacket对象用于接收数据,使用刚才创建的DatagramSocket对象的receive()方法接收客户端发送的数据,receive()方法在没有接收到数据时同ServerSo

7、cket对象一样也会处于阻塞状态,接收的数据将存在于DatagramPacket对象中。客户端也创建一个DatagramSocket对象,并且也指定监听的端口,接下来创建一个InetAddress网络地址对象,定义接收消息的服务器端地址,创建一个DatagramPacket报文对象,定义发送的数据内容,并指定要将这个数据发送到网络的InetAddress地址对象以及端口号,最后使用DatagramSocket对象的send()发送数据。,二、Http网络编程,1. HttpURLConnection对象,HttpURLConnection一般适用于只需要到某个简单页面提交请求并获取服务器响应的

8、情况。,HttpURLConnection继承于URLConnection类,二者都是抽象类。其对象主要通过URL对象的openConnection方法创建,在获得HttpURLConnection对象后,默认是采用GET方式请求数据,此时即可使用输入流读取信息,/创建URL地址对象 URL url = new URL(“http:/ /获取HttpURLConnection对象 HttpURLConnection urlConn=(HttpURLConnection)url.openConnection(); /获取输入流 InputStream is = conn.getInputStre

9、am();,(1)从Internet获取网页,即向URL发送请求,将网页以流的形式读回本地。使用时需要设置连接超时,如果网络不好,Android系统在超过默认时间后会中断操作并收回资源;对连接返回的响应码检测是否是200,以测定连接是否成功;其后对获取的输入流的操作同Java中对流的操作类似;最后关闭网络连接,释放资源。,(2)从Internet获取文件,即利用HttpURLConnection对象从网络中获取文件数据。使用时注意在对大文件的操作,争取将文件写到SDCard中,不要直接写到手机内存里;操作大文件时要一边从网络上读,一边往SDCard上面写,减少手机内存的使用;对文件流操作完,要

10、及时关闭。,(3)向Internet发送请求参数,即向服务器传递参数。HttpURLConnection默认使用GET方式,如果需要使用POST方式请求数据,必须设置允许输出参数;使用时最好不使用缓存,容易出现问题;在开始读取数据前用HttpURLConnection对象的setRequestProperty()进行设置,相当于生成HTML文件头。,(4)向Internet传送xml数据,XML格式是网络通信的标准语言,Android系统也支持通过传送XML文件传输数据。使用HTML的方式传输文件,一般文件大小在5M以下,传输大文件不适合HTML通信方式,对大文件的传输最好使用Socket通信

11、方式,保证程序的稳定性。,Apache HTTP客户端对请求和响应进行封装,根据请求方式的不同,可以使用HttpGet和HttpPost分别表示Get方式和Post方式。对请求的结果使用HttpResponse表示,使用DefaultHttpClient()对象获得响应。,二、HttpClient编程,(1)发送Get请求的一般处理步骤是首先创建HttpClient对象和HttpGet对象,如果需要发送请求参数,可以直接将发送的参数连接到URL的字符串中,也可以调用HttpGet的setParams()方法添加请求参数,接着调用HttpClient的execute()方法发送请求,此方法返回一

12、个HttpResponse对象,最后调用HttpResponse的getEntity()方法获得包含服务器响应内容的HttpEntity对象,通过该对象获取服务器的响应内容。,(2)对复杂数据前的请求一般使用POST方式,首先创建HttpClient对象和HttpPost对象,如果需要发送参数,可以调用HttpPost的setParams()方法添加请求参数,也可以调用setEntity()方法设置请求参数,接着调用HttpClient对象的execute()方法发送请求,返回一个HttpResponse对象,调用HttpResponse的getEntity()方法获取包含了服务器响应内容的H

13、ttpEntity对象,通过这个对象获取服务器的响应内容。,1. Web Service调用,三、WebService编程,Web Service是实现异构程序之间方法调用的一种机制。Web Service通过一种XML格式的特殊文件来描述方法、参数、调用和返回值,这种格式的XML文件成为WSDL(Web Service Description Language 即Web服务描述语言)。Web Service采用的通信协议是SOAP,Android SDK中并没有提供调用WebService的库,Google也发布了针对Android的KSOAP2 jar包。,1. WebView组件,四、W

14、ebView编程,WebView组件对象通过WebChromeClient子类可以对影响浏览器ui交互动作发生时的事件进行处理。通过WebViewClient子类可以在一些影响内容喧嚷的动作发生时被调用,通过WebSettings子类可以对WebView进行配置和管理。,1) 添加权限 首先必须在AndroidManifest.xml中添加网络访问权限“android.permission.INTERNET”,否则系统会抛出“Web page not available”的网络访问异常错误。,2) 创建WebView组件 在Activity中创建WebView对象: WebView webVi

15、ew = new WebView(this); 或者在activity的layout文件里添加webview组件: ,3) WebView常用方法如表所示。,4) 如果希望网页事件由自己处理,而不是由Android打开系统的浏览器来响应处理,则需要给WebView添加一个事件监听对象并重写其中的一些方法,5) 如果用WebView浏览了多个网页后,当用户点击系统的“Back”键时,由于Activity默认的back键处理为结束当前Activity,所以如果不做任何处理,整个浏览器会调用finish()方法程序从而结束进程。如果希望处理的是回退网页而不是退出浏览器,需要在当前Activity中处

16、理掉该Back事件。,2. WebView与javascript,1)如果需要WebView支持Javascript处理功能,则调用WebView的子类作以下设置:webview.getSettings().setJavaScriptEnabled(true),2)javascript中调用java对象及方法。,WebView可以通过调用addJavascriptInterface()方法将java对象绑定到WebView中,以方便从页面javascript中调用java对象,实现用本地java代码和html页面进行交互,甚至可以进行页面自动化。,4)java和javascript混用实现一些效果,3)java中调用js的方法 可以使用webView的loadUrl方法实现。,1.手机定位的方式,五、GPS定位,1)GPS定位,2)基站定位,3)小区定位,4)AGPS定位,5)Wifi定位,2. GPS开发常用工具类,1)LocationManager 与Android系统中

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号