課程名稱:Android App性能優化
一、 簡介
本課程根據講師多年來從事App開發的工作經驗,以及業界若干App的性能優化經驗分享,總結出Android App開發時的若干性能優化經驗,基本覆蓋了Android App性能優化的方方面面。
本課程在講解Android App性能優化技術的同時,還涉及了很多Android底層技術,包括:
l 16ms黃金準則
本課程對于千萬級用戶的App產品和小量的App產品都適用,尤其是目前存在性能問題對Android App。
本課程適用于具有以下特征的學員:
1、1-2年Android開發經驗。
2、正在對公司App做性能優化工作。
二、 培訓大綱(2天)
第一天
第1講 抽絲剝繭看性能——Android性能問題概述
l Android渲染原理
l Android性能問題分類
l Android性能優化指標
第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問題
l ANR發生原因
l 使用StrictMode規避ANR
第4講 壓死駱駝的最后一根稻草——OOM問題
l OOM原理
l 使用MAT檢測內存問題
l OOM規避
第5講 感受如絲般潤滑——Android流暢度問題
l 16ms性能
l 過度繪制
l GPU和CPU繪制
l 內存抖動
l GPU呈現模式分析
l 慎用異常
l 卡頓監控工具:BlockCanary
l TraceView和SysTrace
第6講 編程中的藝術品——Android布局的性能問題
l include
l merge
l ViewStub
l CompoundDrawable
l 使用HierarchyView查看布局層次
l 使用Dump UI Hierarchy for UI Automator查看布局層次
l 使用Lint靜態檢查布局
第7講 手機發燙的罪魁禍首——Android耗電問題
l BroadcastReceiver
l 數據傳輸
l 位置服務
l AlarmManager
l 瞌睡模式
課堂練習:
l 使用工具排查公司App的內存問題
l 使用工具排查公司App的ANR
l 使用工具排查公司App的內存泄漏
第二天
第8講 越用越卡為哪般——Android圖片渲染優化
l 圖片渲染優化方案
l Vector
l 雙緩存
l ImageServer
第9講 想說愛你不容易——ListView性能問題
l ViewHolder模式
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 把耗時操作放在異步線程中
第12講 一觸即發——App啟動優化最佳實踐
l 閃屏的優化方案
l App啟動流程
l 統計App啟動時間
l 延遲初始化和異步初始化
l IntentService
l Dex手動拆包
第13講 他山之石,可以攻玉——Android性能優化工具一覽
l 隨身測GT
l 使用Hugo打印方法執行時間
l 一種輕量級對象池的設計與實現
課堂練習:
l 使用工具檢查公司App的ListView性能
l 在公司的App中使用Hugo
文章列表