1.理解Android 的多线程的基本概念
进程:运行中的应用程序称为进程,拥有系统资源(cpu、内存)
线程:进程中的一段代码,一个进程中可以有多段代码。本身不拥有资源(共享所在进程的资源)
在java中,程序入口被自动创建为主线程,在主线程中可以创建多个子线程。
多线程: 在同一应用程序中有多个功能流同时执行
2.掌握 Android 的主线程与子线程交互的常用方法
1、handler
2、Activity.runOnUIThread(Runnable)
3、View.Post(Runnable)
4、View.PostDelayed(Runnabe,long)
5、AsyncTask
3.理解 Handler 的异步消息机制的实现原理
Handler 工作流程基本包括 Handler、Looper、Message、MessageQueue 四个部分。但我们在日常开发中,经常都只会用到 Handler 和 Message 两个类。Message 负责消息的搭载,里面有个 target 用于标记消息,obj 用于存放内容,Handler 负责消息的分发和处理。
4.掌握 AsyncTask 类的各个方法的定义及作用
onPreExecute://在UI线程调用,在doInBackground之前执行,显示加载框、AsyncTask的准备工作
doInBackground://在后台线程调用,执行后台任务的方法
onProgressUpdate://在UI线程调用,显示操作进度
onPostExecute:////在UI线程调用,在doInBackground之后执行 ,隐藏加载框、任务完成,通知主线程结果
5.掌握 Handler、AsyncTask 的开发流程
handler
- 首先new一个Handler对象
- 需要更新UI的子线程代码处new一个Message对象与主线程通信
- 当Handler接收到Message之后,通过if语句判断what值
- 执行我们刷新UI的逻辑
AsyncTask
一个异步任务的执行一般包括以下几个步骤:
- execute,执行一个异步任务,触发异步任务的执行。
- onPreExecute,在执行后台任务前对 UI做一些
标记。 - doInBackground,在 onPreExecute()完成后立即执行,用于执行较为费时的操作。
- onProgressUpdate在调用,此方法被执行,直接将进度信息更新到UI组件上。
- onPostExecute,当后台操作结束时,此方法将会被调用,计算结果将做为参数传递到此方法中,直接将结果显示到 UI 组件上。
6.掌握 Http 协议的基本概念
请求由三部分组成,分别是:请求行、消息报头、请求正文
HTTP(超文本传输协议)是一个基于请求与响应模式的、无状态的、应用层的协议,常基于TCP的连接方式,
常用的HTTP方法
GET: 用于请求访问已经被URI(统一资源标识符)识别的资源,可以通过URL传参给服务器。
POST:用于传输信息给服务器,主要功能与GET方法类似,但一般推荐使用POST方式。
7.掌握 HttpURLConnection 访问网络的开发流程
- 准备HttpURLConnection请求地址url。
- 准备请求数据并拼接到请示url上。
- 如果请求url中请求参数存在中文的情况,要先将url进行encode操作
- 创建连接:HttpURLConnection connection = (HttpURLConnection)realUrl.openConnection();
- 设置此时请求的requestHeader请求头信息
- 进行请求连接:connection.connect();
- 创建一个读取响应信息的一个输入流类BufferedReader
8. 掌握 OkHttp、Voiley 或 Retrofit 等一种网络通讯框架的使用方法
Retrofit网络通讯框架
- 添加Retrofit库的依赖
- 创建 接收服务器返回数据 的类
- 创建 用于描述网络请求 的接口
- 创建 Retrofit 实例
- 创建 网络请求接口实例 并 配置网络请求参数
- 发送网络请求(异步 / 同步),封装了 数据转换、线程切换的操作
- 处理服务器返回的数据