一、OKHttp
OK get 異步請求
①獲取ok對象
②獲取request對象
③獲取call對象
④call執(zhí)行請求ok post異步請求
①獲取ok對象
②創(chuàng)建請求體
③獲取request對象
④獲取call對象
⑤call執(zhí)行請求請求體
①string:RequestBody.create(type,"");
②stream:new RequestBody()
③form:FormBody.builder().build();
④file請求頭、緩存、超時
請求頭:reques.header() request.addHeader()
緩存:okHttpClient.cacha(new Cache(file,time))
超時:ok.timeout()OKHttp源碼學(xué)習(xí)
二、Retrofit
retrofit使用步驟
①創(chuàng)建接口服務(wù)類:baseURL和方法,添加依賴
②創(chuàng)建retrofit對象
③通過retrofit對象獲取接口服務(wù)對象
④接口服務(wù)對象調(diào)用自己的方法
⑤通過call執(zhí)行請求常用注解
①請求方式
get
post
②參數(shù)
field
fieldMap
query
queryMap
③請求頭
FormUrlEncoded
Header:頭
headers:方法
④請求路勁
path
url
⑤請求體
bodyOKHttp和retrofit區(qū)別
retrofit源碼學(xué)習(xí)
三、數(shù)據(jù)庫
- SQL語句
①分類
②SQL語句
③查詢、模糊查詢
④排序
⑤聚合函數(shù)
⑥分組
四、 Greendao
- Greendao配置:123
- 雙檢鎖單例模式:得到表對象
- 獲取整個App的上下文
- 使用Greendao實現(xiàn)增刪改查
- 數(shù)據(jù)庫升級
①復(fù)制MigrationHelper到項目它主要是通過創(chuàng)建一個臨時表,將舊表的數(shù)據(jù)遷移到新表中,大家可以去看下源碼。
②新建一個類,繼承DaoMaster.DevOpenHelper,重寫onUpgrade(Database db, int oldVersion, int newVersion)方法,在該方法中使用MigrationHelper進行數(shù)據(jù)庫升級以及數(shù)據(jù)遷移。
然后使用MyOpenHelper替代DaoMaster.DevOpenHelper來進行創(chuàng)建數(shù)據(jù)庫等操作
③在表實體中,調(diào)整其中的變量(表字段),一般就是新增/刪除/修改字段。
將原本自動生成的構(gòu)造方法以及getter/setter方法刪除,重新Build—>Make Project進行生成。
④修改Module下build.gradle中數(shù)據(jù)庫的版本號schemaVersion ,遞增加1即可,最后運行app - 收藏項目
①添加依賴、權(quán)限
②配置數(shù)據(jù)庫123,提供全局上下文,創(chuàng)建數(shù)據(jù)庫工具類
③TVF
④實現(xiàn)首頁功能:retrofit實現(xiàn)網(wǎng)絡(luò)請求、點擊事件、插入數(shù)據(jù)
⑤實現(xiàn)收藏功能:查詢數(shù)據(jù)庫、刪除數(shù)據(jù)、viewpager結(jié)合fragment實現(xiàn)懶加載
五、Rxjava
- Rxjava定義、優(yōu)點、作用、三個概念、原理、事件、調(diào)度器
- Rxjava使用:基本使用、鏈式使用
- Rxjava結(jié)合retrofit實現(xiàn)網(wǎng)絡(luò)請求
①定義接口服務(wù)的時候返回類型是Observable
②retrofit網(wǎng)絡(luò)請求
③call請求替換為Observable訂閱observer
④通過調(diào)度器控制網(wǎng)絡(luò)請求、結(jié)果處理的線程 - Rxjava其他操作符
六、廣播
七、架構(gòu)模式
- 架構(gòu)模式有幾類
MVC、MVP、MVP - MVC:Model 、View、Controller
- MVP:Model、View、Presenter
- MVP原理:用戶觸碰界面觸發(fā)事件,View層把事件通知Presenter層,Presenter層通知Model層處理這個事件,Model層處理后把結(jié)果發(fā)送到Presenter層,Presenter層再通知View層,最后View層做出改變。
八、注解
- Butterknife:通過注解的方式找資源
①添加依賴
②添加插件
③使用 - EventBus:事件總線
①添加依賴
②注冊、解注冊Eventbus,接受事件的方法
③發(fā)送事件
- 注意
①普通事件粘性事件
②粘性事件:發(fā)送Eventbus.postAticky、接受方法注解中必須sticky=true
九、Glide
- Glide可以加載四種資源
網(wǎng)絡(luò)地址、sdcard、本地資源、字節(jié)流 - 占位圖
預(yù)占位圖、錯誤占位圖 - 緩存
硬盤緩存:總共五種,默認AutoMatic
內(nèi)存緩存:默認有 - 指定圖片的格式:asBitmap、asGif(必須放在with后邊)
- 指定圖片大小
- 下載圖片
- 圖形變換
圓形、圓角、三方
十、Fresco
- 使用
①添加依賴
②初始化配置:init
③創(chuàng)建布局、找控件
④控件設(shè)置url
⑤其他屬性:圓形和圓角等
十一、Matrix和ColorMatrix
- 什么是Matrix
- Matrix功能
- ColorMatrix功能
十二、LRUCache
- 原理(*****):底層、順序、LRU順序操作、移除
- 通過案例學(xué)習(xí)entry順序
- 通過demo掌握三級緩存的原理
①什么是三級緩存
②內(nèi)存緩存工具類
③硬盤緩存工具類
十三、文件上傳
- ok上傳
- Retrofit上傳
- HTTPURLCollection上傳
- 相機上傳
- 相冊上傳
十四、下載
- ok下載
- retrofit下載
- con上傳
- 文件保存
- 安裝
- 多線程斷點續(xù)傳下載
十五、視頻播放
- 系統(tǒng)播放器:隱式跳轉(zhuǎn)
- videoview
①創(chuàng)建布局
②獲取MediaController對象
③設(shè)置MediaController
④設(shè)置路徑并開始
⑤設(shè)置上一個下一個 - MediaPlayer+surfaceView
①創(chuàng)建布局surfaceView
②獲取MediaPlayer對象
③surfaceview和綁定必須在界面渲染的時候處理,也就是在初始化處理
④mp設(shè)置資源、準備、開始 - 獲取視頻的第一幀
①獲取MediaMetadataRetriever對象
②設(shè)置資源
③獲取某一幀(四種模式)
十六、總復(fù)習(xí)
- greendao配置:123,收藏功能實現(xiàn)
- MVP:
- 導(dǎo)航頁
- TVF:vp、tab、適配器、選擇器
- RecyclerView使用:分割線、方向、多布局、點擊事件、刷新
- 上傳和下載、保存、安裝、在服務(wù)中下載
- 廣播、廣播傳值、bean序列化、傳遞Bean
- Rxjava實現(xiàn)倒計時
- 四種動畫
- EventBus:普通用法、粘性事件用法
- WebView使用
- OK緩存攔截器使用
- sp保存url
- 菜單:側(cè)滑菜單、選項菜單、上下文菜單
- Populwindown
- 通知