当前课程知识点:Android应用开发基础 >  第九章 网络技术 >  9.1 网络服务概述 >  9.1 网络服务概述

返回《Android应用开发基础》慕课在线视频课程列表

9.1 网络服务概述在线视频

下一节:9.1 实践案例-WebView和Http服务

返回《Android应用开发基础》慕课在线视频列表

9.1 网络服务概述课程教案、知识点、字幕

本节我们介绍Android的网络服务

现在很多App里都内置了Web网页

比如说很多电商平台

淘宝 京东 聚划算等等

那么这种该如何实现呢

其实这是Android里一个叫WebView的组件实现

Android手机中内置了一个

高性能的webkit内核浏览器

在sdk被打包成WebView组件

这个组件主要应用于网页的加载

可以直接显示网页

也可以加载HTML文件

实现复杂的布局界面

下面我们介绍一个

使用WebView浏览网页的例子

我们内置了新浪的web网页

网页和普通网页一样

可以支持页面的跳转和内部访问

WebView的使用比较简单

我们看一下常用的用法

如图所示

1. WebView组件是Android的一个Web访问组件

使用findViewById对WebView控件进行初始化

2. 使用setJavaScriptEnabled

设置WebView控件支持JavaScript脚本

3. 使用setWebViewClient设置网络客户端

4. 我们使用loadUrl设置网页地址

5. 增加网络的访问权限

android.permission.INTERNET

WebView方法适合访问简单的网页

现在一般都是将HTML

放置在Tomcat服务器上

用服务器显示HTML文件

客服端获取并显示内容

说到HTTP协议

那必须要说说WWW了

WWW是环球信息网

World Wide Web的缩写

也可以简称为Web

中文名字为“万维网”

简单来说

WWW是以Internet

作为传输媒介的一个应用系统

WWW网上基本的传输单位是Web网页

WWW的工作是基于B/S模型

由Web浏览器和Web服务器构成

两者之间采用超文本传输协议

HTTP协议进行通信

HTTP协议是基于TCP/IP协议之上的协议

是Web浏览器

和Web服务器之间的应用层的协议

是通用的 无状态的面向对象的协议

我们首先普及一下网络协议的知识

数据在Internet上传输

一般通过三种协议来实现发送信息和实现

1. HTTP协议 也是在工作中最常用的

是建立在TCP/IP基础上实现的

2. FTP协议 文件传输协议

3. TCP/IP协议 它也是最底层的协议

其它的方式必须要通过它

但是想要实现这种协议必须要实现socket编程

这种方法用来上传一些比较大的文件

视频

进行断电续传的操作

下面我们看一个

使用HTTP协议访问网络的一个实例

输入网络地址www.sohu.com

如果访问成功

将网络返回的HTML文件的内容

全部显示到文本框

访问一个地址https://192.168.1.100

访问不成功后提示错误信息

下面是Http协议访问的实现框架

那么异步线程与主线程通过EventBus通讯

主视图中启动网络异步线程

自定义线程中包含了

网络请求成功和请求失败两种可能

网络请求的结果通过EventBus

将网络请求的数据发送到主视图

这种架构数据结构比较统一

但是缺点是EventBus

并不能处理复杂的网络数据

我们再来看一种升级的

Http协议访问的实例

架构

异步线程与主线程通过接口进行通讯

主视图中启动网络异步线程

同时在网络异步线程中

设置了一个回调的接口HttpListenser

HttpListenser包含两个接口

其中onSucess处理网络成功访问的消息

onFailed处理网络访问失败的消息

异步线程处理网络请求成功后通过onSucess

onFailed将网络请求的数据发送到主视图

这种架构可以处理复杂的网络数据

并且网络处理效率高

但是必须实现接口

不同的网络处理请求需要实现不同的接口

下面介绍一下HTTP协议的实现流程

1. 监听接口设计

新建一个HttpListener的监听接口

包含onSuccess和onFailed两个实现方法

2. 新建一个Http线程类

新建一个mHttpListener变量和strUrl变量

并根据两个变量生成构造函数

http协议的访问实现如下

Android目前提供两种http通信方式

HttpURLConnection和HttpClient

HttpURLConnection

用于发送或接收流式数据

因此比较适合上传/下载文件

我们使用HttpURLConnection

来实现HTTP的访问

首先我们进行网络设置

1. 新建HttpURLConnection访问对象

2. 新建BufferedReader缓存

3. 新建InputStream输入流

由于要进行文件输入输出流操作

网络请求代码需要使用try catch保护

4. 新建URL对象

5. 根据URL初始化

HttpURLConnection访问对象

6. 设置网络访问超时时间为5秒

7. 指定请求方式为GET方式

8. 设置读取数据超时时间为5秒

那么HTTP协议返回数据后的处理

如图所示

1. 获取输入流

2. 将输入流放入缓存

3. 新建字符串缓存

4. 按行读取输入流缓存

并将网络请求所有内容存入字符串缓存

5. 网络请求成功将信息提交回调接口

6. 网络请求失败将错误信息提交回调接口

主视图中实现了主界面的监听接口

由于网络请求后的数据

最后都是在主视图中显示

因此监听接口需要在主视图中实现

如图所示

1. 新建网络监听器对象

2. 初始化网络监听器对象

3. 实现onSuccess接口

由于网络访问后回调属于异步线程

需要使用runOnUiThread

子线程来完成对组件的访问

4. 将网络成功后获取数据显示到组件中

5. 实现onFailed接口

由于网络访问的回调属于异步线程

需要使用runOnUiThread完成对组件的访问

6. 将网络访问失败后的信息

获取的数据来显示到组件

网络访问后需要回收数据

如图所示

1. 关闭缓存

2. 关闭输入流

3. 关闭网络连接

最后我们在主视图中启动HTTP线程

如图所示

1. 新建HttpThread线程对象

并使用ipadress和mHttpListener

监听器对象初始化构造函数

2. 使用mHttpThread.start()方法启动线程

3. 增加网络访问权限

那么Android的网络权限为

android.permission.INTERNET

那么这就是通过Http协议来访问网络的全部内容

Android应用开发基础课程列表:

课程教案

-1 Android应用开发基础-课程标准

-2 Android应用开发基础-教案

第一章 Android概述

-讨论:Android应用开发基础资源下载地址

-讨论的问题:华为“鸿蒙系统”会取代安卓吗?

-Android Studio4.1.2安装常用问题汇总2021.3.15

-1.1 Android概述

--1.1 Android概述

--1.1 Android Studio安装与配置-实践案例

-1.1 Android概述--作业

-1.2 Android程序

--1.2 Android程序

--1.2 第一个Android应用程序-实践案例

-1.2 Android程序--作业

-1.3 Android程序调试

--1.3 Android程序调试

--1.3 Android程序调试-实践案例

-1.3 Android程序调试--作业

-讨论-完成第一个Android程序需要多长时间?

第二章 Android视图

-讨论-什么是Activity?

-2.1 Activity概述

--2.1 Activity概述

--2.1.1 实践案例-Activity生命周期

--2.1.2 实践案例-Activity跳转和数据传递

-2.1 Activity概述--作业

-2.2 Activity应用

--2.2 Activity应用

--2.2 实践案例-Activity四种启动模式

-第2章 Android视图--2.2 Activity应用

-讨论-怎么理解常用的四种启动模式?

第三章 Android组件

-讨论:Android在五个常用布局外还有哪几种布局方式?

-3.1 Activity布局

--3.1 Activity布局

--3.1 实践案例-Android布局

-3.1 Activity布局--作业

-3.2 Android基础组件

--3.2 Android基础组件

--3.2.1 实践案例-文本和按钮组件

--3.2.2 实践案例-编辑框和进度条组件

-3.2 Android基础组件--作业

-3.3 Android中级组件

--3.3 Android中级组件

--3.3.1 实践案例-复选框和开关组件

--3.3.2 实践案例-单选框和图像组件

-3.3 Android中级组件--作业

-3.4 Android适配器

--3.4.1 系统适配器

--3.4.2 自定义适配器

--3.4.1实践案例-系统适配器

--3.4.2 实践案例-自定义适配器

-3.4 Android适配器--作业

-讨论-如何解决Android的布局嵌套问题的?

第四章 Android Fragment

-讨论:Fragment的优点?

-4.1 Fragment碎片组件

--4.1.1 Fragment静态加载

--4.1.2 Fragment与Activity通讯

--4.1.3 Fragment动态加载

--4.1.1 实践案例-Fragment静态加载

--4.1.2 实践案例-Fragment的动态加载

-4.1 Fragment碎片组件--作业

-4.2 ViewPager翻页类组件

--4.2.1 ViewPager翻页类组件

--4.2.2 引导页和标题栏

--4.2 实践案例-引导页和选项卡

-4.2 ViewPager翻页类组件--作业

-讨论:fragment与activity的生命周期有哪些不同?

第五章 广播

-讨论:Android广播有什么作用?

-5.1 Android广播概述

--5.1 Android广播概述

--5.1.1 实践案例-手机电量显示

--5.1.2 实践案例-手机充电状态显示

-5.1 Android广播概述--作业

-5.2 Android广播工作原理

--5.2 Android广播工作原理

--5.2.1 实践案例-手机网络状态显示

--5.2.2 实践案例-短消息接收

-5.2 Android广播工作原理--作业

-5.3 自定义广播

--5.3 自定义广播

--5.3 实践案例-自定义广播与有序广播

-第5章 广播--5.3 自定义广播

-5.4 有序广播

--5.4有序广播

--5.4.2 实践案例-登录广播-记住密码

--5.4.2 实践案例-登录广播-强制退出

-第5章 广播--5.4 有序广播

-讨论:广播的动态注册和静态注册有什么区别?

第六章 Android服务

-讨论:Android的服务有什么作用?

-6.1 系统服务概述

--6.1 系统服务概述

-6.1 系统服务概述--作业

-6.2 访问系统服务

--6.2 访问系统服务

--6.2 实践案例-通知服务

-6.2 访问系统服务--作业

-6.3 自定义服务

--6.3 自定义服务

--6.3.1 实践案例-启动服务

--6.3.2 实践案例-绑定服务

--6.3.3 实践案例-后台服务

-第6章 Android服务--6.3 自定义服务

-6.4 多线程

--6.4 多线程

--6.4.2 实践案例-MyService下载

--6.4.3 实践案例-MyIntentService

--6.4.4 实践案例-AsyncTask实现对话框下载

--6.4.5 实践案例-下载精灵

-第6章 Android服务--6.4 多线程

-讨论:Android中怎么启动Service?

第七章 内容提供者ContentProvider

-讨论:ContentProvide的作用是什么?

-7.1 Android运行权限

--7.1 Android运行权限

--7.1 实践案例-拨打电话与发送短信

-7.1 Android运行权限--作业

-7.2 URL URI概述

--7.2 URL URI概述

-第7章 内容提供者ContentProvider--7.2 URL URI概述

-7.3 ContentProvider概述

--7.3 ContentProvider概述

--7.3 实践案例-读取联系人

-第7章 内容提供者ContentProvider--7.3 ContentProvider概述

-7.4 访问通讯录

--7.4 访问通讯录

--7.4.1 实践案例-读取通讯录

--7.4.2 实践案例-添加通讯录

--7.4.3 实践案例-删除更改通讯录

-第7章 内容提供者ContentProvider--7.4 访问通讯录

-7.5 课后作业案例

--7.5.1 实践案例-文件管理器-查看

--7.5.2 实践案例-文件管理器-播放

-讨论:ContentProvide如何使用?

第八章 多媒体

-讨论:Android多媒体主要应用于哪些场景?

-8.1 相机服务

--8.1 相机服务

--8.1.1实践案例-拍照服务

--8.1.2 实践案例-相册服务

-8.1 相机服务--作业

-8.2 音视频服务

--8.2 音视频服务

--8.2.1实践案例-音乐播放

--8.2.2 实践案例-视频播放

-8.2 音视频服务--作业

-讨论:Android视频组件的使用流程?

第九章 网络技术

-讨论:为什么使用Json作为网络的通讯格式?

-9.1 网络服务概述

--9.1 网络服务概述

--9.1 实践案例-WebView和Http服务

-9.1 网络服务概述--作业

-9.2 网络框架

--9.2 网络框架

--9.2 实践案例-okhttp框架

-9.2 网络框架--作业

-9.3 Json

--9.3 Json

--9.3 实践案例-json协议

-第9章 网络技术--9.3 Json

-9.4 Volley

--9.4 volley

--9.4 实践案例-volley框架

-第9章 网络技术--9.4 Volley

-讨论:OkHttp和Volley的有什么区别?

第十章 数据存储

-讨论:Android的存储方式有哪几种?

-10.1 文件存储

--10.1 文件存储

--10.1.1 实践案例-文件读写布局

--10.1.2 实践案例-文件读写

--10.1.3 实践案例-SharedPreference文件读写

-10.1 文件存储--作业

-10.2 数据库存储

--10.2 数据库存储

--10.2.1 实践案例-Sqlite数据库操作布局

--10.2.2 实践案例-Sqlite数据库操作

-10.2 数据库存储--作业

-讨论:SQLite的基础操作的流程是什么?

课程实训(不计入考核)

-第1章 实训简介以及开发环境配置

--实训项目简介PPT以及实训指导书

--1.1 实训项目简介

--1.2 项目开发环境配置

-第2章 在线音乐播放器整体设计以及服务端开发

--在线音乐播放器整体介绍PPT以及服务端开发实训指导书

--2.1 在线音乐播放器-整体设计

--2.2 在线音乐播放器-服务端开发

-第3章 在线音乐播放器-客户端开发

--3.1 客服端开发实训指导书以及PPT

--3.2 客户端开发-讲课视频

-第4章 在线音乐播放器-完整版

--4.1 实训指导书以及PPT

--4.2 在线音乐播放器-完整版授课视频

-第5章 QQ聊天项目

--5.1 实训指导书以及PPT

--5.2 QQ聊天项目授课视频

-第6章 在线点餐系统

--6.1 实训指导书以及PPT

--6.2 在线点餐系统授课视频

9.1 网络服务概述笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。