1.理解Android 的多線程的基本概念
進程:運行中的應(yīng)用程序稱為進程,擁有系統(tǒng)資源(cpu睛藻、內(nèi)存)
線程:進程中的一段代碼启上,一個進程中可以有多段代碼。本身不擁有資源(共享所在進程的資源)
在java中店印,程序入口被自動創(chuàng)建為主線程冈在,在主線程中可以創(chuàng)建多個子線程。
多線程: 在同一應(yīng)用程序中有多個功能流同時執(zhí)行
2.掌握 Android 的主線程與子線程交互的常用方法
1按摘、handler
2包券、Activity.runOnUIThread(Runnable)
3、View.Post(Runnable)
4院峡、View.PostDelayed(Runnabe,long)
5兴使、AsyncTask
3.理解 Handler 的異步消息機制的實現(xiàn)原理
Handler 工作流程基本包括 Handler、Looper照激、Message发魄、MessageQueue 四個部分。但我們在日常開發(fā)中俩垃,經(jīng)常都只會用到 Handler 和 Message 兩個類励幼。Message 負(fù)責(zé)消息的搭載,里面有個 target 用于標(biāo)記消息口柳,obj 用于存放內(nèi)容苹粟,Handler 負(fù)責(zé)消息的分發(fā)和處理。
4.掌握 AsyncTask 類的各個方法的定義及作用
onPreExecute://在UI線程調(diào)用跃闹,在doInBackground之前執(zhí)行嵌削,顯示加載框、AsyncTask的準(zhǔn)備工作
doInBackground://在后臺線程調(diào)用望艺,執(zhí)行后臺任務(wù)的方法
onProgressUpdate://在UI線程調(diào)用苛秕,顯示操作進度
onPostExecute:////在UI線程調(diào)用,在doInBackground之后執(zhí)行 找默,隱藏加載框艇劫、任務(wù)完成,通知主線程結(jié)果
5.掌握 Handler惩激、AsyncTask 的開發(fā)流程
handler
- 首先new一個Handler對象
- 需要更新UI的子線程代碼處new一個Message對象與主線程通信
- 當(dāng)Handler接收到Message之后店煞,通過if語句判斷what值
- 執(zhí)行我們刷新UI的邏輯
AsyncTask
一個異步任務(wù)的執(zhí)行一般包括以下幾個步驟:
- execute,執(zhí)行一個異步任務(wù)风钻,觸發(fā)異步任務(wù)的執(zhí)行顷蟀。
- onPreExecute,在執(zhí)行后臺任務(wù)前對 UI做一些
標(biāo)記骡技。 - doInBackground衩椒,在 onPreExecute()完成后立即執(zhí)行,用于執(zhí)行較為費時的操作。
- onProgressUpdate在調(diào)用毛萌,此方法被執(zhí)行,直接將進度信息更新到UI組件上喝滞。
- onPostExecute阁将,當(dāng)后臺操作結(jié)束時,此方法將會被調(diào)用右遭,計算結(jié)果將做為參數(shù)傳遞到此方法中做盅,直接將結(jié)果顯示到 UI 組件上。
6.掌握 Http 協(xié)議的基本概念
請求由三部分組成窘哈,分別是:請求行吹榴、消息報頭、請求正文
HTTP(超文本傳輸協(xié)議)是一個基于請求與響應(yīng)模式的滚婉、無狀態(tài)的图筹、應(yīng)用層的協(xié)議,橙酶梗基于TCP的連接方式远剩,
常用的HTTP方法
GET: 用于請求訪問已經(jīng)被URI(統(tǒng)一資源標(biāo)識符)識別的資源,可以通過URL傳參給服務(wù)器骇窍。
POST:用于傳輸信息給服務(wù)器瓜晤,主要功能與GET方法類似,但一般推薦使用POST方式腹纳。
7.掌握 HttpURLConnection 訪問網(wǎng)絡(luò)的開發(fā)流程
- 準(zhǔn)備HttpURLConnection請求地址url痢掠。
- 準(zhǔn)備請求數(shù)據(jù)并拼接到請示url上。
- 如果請求url中請求參數(shù)存在中文的情況嘲恍,要先將url進行encode操作
- 創(chuàng)建連接:HttpURLConnection connection = (HttpURLConnection)realUrl.openConnection();
- 設(shè)置此時請求的requestHeader請求頭信息
- 進行請求連接:connection.connect();
- 創(chuàng)建一個讀取響應(yīng)信息的一個輸入流類BufferedReader
8. 掌握 OkHttp璧亮、Voiley 或 Retrofit 等一種網(wǎng)絡(luò)通訊框架的使用方法
Retrofit網(wǎng)絡(luò)通訊框架
- 添加Retrofit庫的依賴
- 創(chuàng)建 接收服務(wù)器返回數(shù)據(jù) 的類
- 創(chuàng)建 用于描述網(wǎng)絡(luò)請求 的接口
- 創(chuàng)建 Retrofit 實例
- 創(chuàng)建 網(wǎng)絡(luò)請求接口實例 并 配置網(wǎng)絡(luò)請求參數(shù)
- 發(fā)送網(wǎng)絡(luò)請求(異步 / 同步)秋秤,封裝了 數(shù)據(jù)轉(zhuǎn)換、線程切換的操作
- 處理服務(wù)器返回的數(shù)據(jù)