包建強的培訓課程(9):Android App效能優化
課程名稱:Android App效能優化
一、簡介
本課程根據講師多年來從事App開發的工作經驗,以及業界若干App的效能優化經驗分享,總結出Android App開發時的若干效能優化經驗,基本覆蓋了Android App效能優化的方方面面。
本課程在講解Android App效能優化技術的同時,還涉及了很多Android底層技術,包括:
l16ms黃金準則
本課程對於千萬級使用者的App產品和小量的App產品都適用,尤其是目前存在效能問題對Android App。
本課程適用於具有以下特徵的學員:
1、1-2年Android開發經驗。
2、正在對公司App做效能優化工作。
二、培訓大綱(2天)
第一天
第1講抽絲剝繭看效能——Android效能問題概述
lAndroid渲染原理
lAndroid效能問題分類
lAndroid效能優化指標
第2講好借好還,再借不難——Android記憶體洩漏
l什麼是記憶體洩漏?
l物件的四種引用型別
l記憶體洩漏偵測工具LeakCanary
l場景1:靜態變數引用Activity物件
l場景2:靜態View
l場景3:內部類和匿名類
l場景4:Handler
l場景5:Threads和TimerTask
l場景6:監聽器
l場景7:靜態集合物件引起的洩漏
l場景8:資源物件未關閉
l場景9:使用物件池避免頻繁建立物件
l場景10:Back鍵退出引起的洩漏
第3講最不願看到的彈出框——ANR問題
lANR發生原因
l使用StrictMode規避ANR
第4講壓死駱駝的最後一根稻草——OOM問題
lOOM原理
l使用MAT檢測記憶體問題
lOOM規避
第5講感受如絲般潤滑——Android流暢度問題
l16ms效能
l過度繪製
lGPU和CPU繪製
l記憶體抖動
lGPU呈現模式分析
l慎用異常
l卡頓監控工具:BlockCanary
lTraceView和SysTrace
第6講程式設計中的藝術品——Android佈局的效能問題
linclude
lmerge
lViewStub
lCompoundDrawable
l使用HierarchyView檢視佈局層次
l使用Dump UI Hierarchy for UI Automator檢視佈局層次
l使用Lint靜態檢查佈局
第7講手機發燙的罪魁禍首——Android耗電問題
lBroadcastReceiver
l資料傳輸
l位置服務
lAlarmManager
l瞌睡模式
課堂練習:
l使用工具排查公司App的記憶體問題
l使用工具排查公司App的ANR
l使用工具排查公司App的記憶體洩漏
第二天
第8講越用越卡為哪般——Android圖片渲染優化
l圖片渲染優化方案
lVector
l雙快取
lImageServer
第9講想說愛你不容易——ListView效能問題
lViewHolder模式
l按需載入圖片
l滑動引起的多執行緒併發問題
l列表項中圖片的圓角和縮放
l巢狀列表的解決方案
第10講高速公路任我行——Android網路訪問優化
l資料快取
l重試機制
l介面合併
l增量更新
l低端機模式
l弱網優化之道
第11講資料,還是資料——SQLite調優
l快速查詢:按需獲取資料列
l快速查詢:提前獲取列索引
l快速查詢:ContentValues的容量調整
l快速查詢:建立索引
l索引真的好麼?
l編譯SQL語句
l顯示使用事務
l及時關閉Cursor
l把耗時操作放在非同步執行緒中
第