Android系統最佳化從入門到精通

Android系統最佳化從入門到精通

《Android系統最佳化從入門到精通》是2015年機械工業出版社出版的圖書,作者是胡郁。

基本介紹

  • 中文名:Android系統最佳化從入門到精通
  • 作者:胡郁
  • 出版社:機械工業出版社
  • ISBN:9787111516163
內容簡介,圖書目錄,

內容簡介

 《Android系統最佳化從入門到精通》分為12章,第1章是Android概述,第2章是工欲善其事、必先利其器,第3章是為什麼需要最佳化,第4章是UI布局最佳化,第5章是Android的記憶體系統,第6章是Android的記憶體最佳化,第7章是=代碼最佳化,第8章是性能最佳化,第9章是系統最佳化,第10章是最佳化工具,第11-12章是綜合實例部分,通過2個綜合實例講解了最佳化大型Androd程式的基本流程。

圖書目錄

前言
第一篇 基礎知識篇
第1章 Android系統介紹
1.1 智慧型手機系統介紹
1.1.1 什麼是智慧型手機
1.1.2 主流智慧型系統的發展現狀
1.2 Android系統的發展現狀
1.2.1 Android系統的誕生和發展現狀
1.2.2 常見的Android設備
1.2.3 Android系統的巨大優勢
1.3 搭建Android套用開發環境
1.3.1 安裝Android SDK的系統要求
1.3.2 安裝JDK
1.3.3 獲取並安裝Eclipse和Android SDK
1.3.4 安裝ADT
1.3.5 設定Android SDK Home
1.3.6 驗證開發環境
1.3.7 創建Android虛擬設備(AVD)
1.3.8 啟動AVD模擬器
1.4 創建第一個Android程式
第2章 獲取並編譯Android源碼
2.1 獲取Android源碼
2.1.1 在Linux系統獲取Android源碼
2.1.2 在Windows平台獲取Android源碼
2.2 分析Android源碼結構
2.3 編譯Android源碼
2.3.1 搭建編譯環境
2.3.2 開始編譯
2.3.3 在模擬器中運行
2.3.4 常見的錯誤分析
2.3.5 實踐演練——兩種編譯Android程式的方法演示
第二篇 核心技術篇
第3章 分析記憶體系統
3.1 分析Android的進程通信機制
3.1.1 Android的進程間通信(IPC)機制Binder
3.1.2 Binder機制的上下文管理者——Service Manager
3.1.3 Service Manager服務
3.2 匿名共享記憶體子系統詳解
3.2.1 基礎數據結構
3.2.2 初始化處理
3.2.3 打開匿名共享記憶體設備檔案
3.2.4 記憶體映射
3.2.5 讀寫操作
3.2.6 鎖定和解鎖
3.2.7 回收記憶體塊
3.3 C++訪問接口層詳解
3.3.1 接口MemoryHeapBase
3.3.2 接口MemoryBase
3.4 Java訪問接口層詳解
第4章 Android記憶體最佳化
4.1 Android記憶體最佳化的作用
4.2 查看Android記憶體和CPU使用情況
4.2.1 利用Android API函式查看記憶體
4.2.2 直接對Android檔案進行解析查詢
4.2.3 通過Runtime類實現
4.2.4 使用DDMS工具獲取
4.2.5 其他方法
4.3 Android系統的記憶體泄露
4.3.1 什麼是記憶體泄漏
4.3.2 為什麼會發生記憶體泄露
4.3.3 shallow size和retained size
4.3.4 查看Android記憶體泄露的工具
4.3.5 查看Android記憶體泄露的方法
4.3.6 Android(Java)編碼時的注意事項
4.4 常見的引起記憶體泄露的陋習
4.4.1 查詢資料庫時忘記關閉游標
4.4.2 構造Adapter時不習慣使用快取的convertView
4.4.3 沒有及時釋放對象的引用
4.4.4 不在使用Bitmap對象時調用recycle()釋放記憶體
4.5 演練解決記憶體泄露
4.5.1 使用MAT根據heap dump分析Java代碼記憶體泄漏的根源
4.5.2 演練Android中記憶體泄露代碼最佳化及檢測
4.6 Android圖片的記憶體最佳化
第5章 UI布局最佳化
5.1 和布局相關的組件
5.1.1 View視圖組件
5.1.2 ViewGroup容器
5.2 Android中的五種布局方式
5.2.1 線性布局LinearLayout
5.2.2 框架布局FrameLayout
5.2.3 絕對布局AbsoluteLayout
5.2.4 相對布局RelativeLayout
5.2.5 表格布局TableLayout
5.3 使用標籤最佳化UI界面
5.3.1 注意事項
5.3.2 具體實現
5.4 最佳化Bitmap圖片
5.4.1 顯示一副圖片
5.4.2 獲取圖片的寬度和高度
5.5 FrameLayout布局最佳化
5.5.1 使用減少視圖層級結構
5.5.2 使用重用layout代碼
5.5.3 延遲載入
5.6 使用Android提供的最佳化工具
5.6.1 Layout Optimization工具
5.6.2 Hierarchy Viewer工具
5.6.3 聯合使用和標籤實現互補
第6章 最佳化代碼性能
6.1 編寫更高效的Android代碼
6.1.1 避免建立對象
6.1.2 最佳化方法調用代碼
6.1.3 最佳化代碼變數
6.1.4 最佳化代碼過程
6.1.5 提高Cursor查詢數據的性能
6.1.6 編碼中儘量使用ContentProvider共享數據
6.2 Android控制項的性能最佳化
6.2.1 ListView控制項的代碼最佳化
6.2.2 Adapter(適配器)最佳化
6.2.3 ListView異步載入圖片最佳化
6.3 最佳化Android圖形
6.3.1 2D繪圖的基本最佳化
6.3.2 觸發螢幕圖形觸摸器的最佳化
6.3.3 SurfaceView 繪圖覆蓋刷新及髒矩形刷新方法
6.4 資源存儲最佳化
6.4.1 Android檔案存儲
6.4.2 Android中的資源存儲
6.4.3 Android資源的類型和命名
6.4.4 Android檔案資源(raw/data/asset)的存取
6.4.5 Android對Drawable對象的最佳化
6.4.6 建議使用Drawable,而不是Bitmap
6.5 載入APK檔案和DEX檔案
6.5.1 APK檔案介紹
6.5.2 DEX檔案介紹和最佳化
6.5.3 Android類動態載入技術實現加密最佳化
第三篇 Dalvik 虛擬機最佳化篇
第7章 Dalvik虛擬機垃圾收集機制
7.1 引用計數算法
7.2 Mark Sweep算法
7.3 和垃圾收集算法有關的函式
7.4 垃圾回收的時機
7.5 調試信息
7.6 Dalvik 虛擬機和JVM垃圾收集機制的區別
第8章 Dalvik虛擬機記憶體最佳化機制
8.1 sp和wp簡介
8.1.1 sp基礎
8.1.2 wp基礎
8.2 智慧型指針詳解
8.2.1 智慧型指針基礎
8.2.2 輕量級指針
8.2.3 強指針
8.2.4 弱指針
第9章 Dalvik虛擬機異常處理
9.1 Java異常處理機制
9.1.1 方法調用棧
9.1.2 Java提供的異常處理類
9.2 Java 虛擬機異常處理機制詳解
9.2.1 Java語言及虛擬機的異常處理機制
9.2.2 COSIX虛擬機異常處理的設計與實現
9.3 分析Dalvik虛擬機異常處理的源碼
9.3.1 初始化虛擬機使用的異常Java類庫
9.3.2 拋出一個執行緒異常
9.3.3 持續拋出進程
9.3.4 找出異常原因
9.3.5 清除掛起的異常和等待初始化的異常
9.3.6 解決“現在等待”異常
9.3.7 輸出跟蹤當前異常的錯誤信息
9.3.8 搜尋和當前異常相匹配的方法
9.3.9 獲取匹配的捕獲塊
9.3.10 進行堆疊跟蹤
9.3.11 生成堆疊跟蹤元素
9.3.12 將內容添加到堆疊跟蹤日誌中
9.3.13 將異常日誌信息輸出為堆疊跟蹤信息
9.4 常見異常的類型與原因
9.4.1 SQLException:運算元據庫異常類
9.4.2 ClassCastException:數據類型轉換異常
9.4.3 NumberFormatException:字元串轉換為數字類型時拋出的異常
9.5 調用堆疊跟蹤分析異常
9.5.1 解決段錯誤
9.5.2 跟蹤Android Callback調用堆疊
第10章 JIT編譯
10.1 JIT簡介
10.1.1 JIT概述
10.1.2 Java虛擬機主要的最佳化技術
10.1.3 Dalvik中JIT的實現
10.2 Dalvik虛擬機對JIT的支持
10.3 彙編代碼和改動
10.3.1 彙編部分代碼
10.3.2 對C檔案的改動
10.4 Dalvik虛擬機中的JIT源碼
10.4.1 入口檔案
10.4.2 核心函式
10.4.3 編譯檔案
10.4.4 BasicBlock處理
10.4.5 記憶體初始化
10.4.6 對JIT源碼的總結
第11章 ART最佳化之啟動過程
11.1 運行環境的轉換
11.2 運行 app_process 進程
11.3 準備啟動
11.4 創建運行實例
11.5 註冊本地JNI函式
11.6 啟動守護進程
11.7 解析參數
11.8 初始化類、方法和域
第12章 ART最佳化之執行主程式
12.1 進入main主函式
12.2 查找目標類
12.2.1 函式LookupClass()
12.2.2 函式DefineClass()
12.2.3 函式InsertClass()
12.2.4 函式LinkClass()
12.3 類操作
12.4 實現託管操作
第13章 ART最佳化之安裝APK準備
13.1 PackageManagerService概述
13.2 主函式main
13.3 調用初始化函式
13.4 創建PackageManagerService服務
13.5 掃描並解析
13.6 保存解析信息
第14章 ART最佳化之安裝APK應用程式
14.1 Android安裝APK概述
14.2 啟動時安裝
14.3 ART安裝
14.4 實現dex2oat轉換
14.4.1 參數解析
14.4.2 創建oat檔案指針
14.4.3 dex2oat 準備工作
14.4.4 提取classes.dex檔案
14.4.5 創建oat檔案
14.5 APK 檔案的轉換
第15章 系統最佳化
15.1 基本系統最佳化
15.1.1 刷機重啟
15.1.2 刷核心
15.1.3 精簡內置套用
15.1.4 基本系統最佳化總結
15.2 進程管理
15.2.1 Android進程跟Windows進程是兩回事
15.2.2 查看當前系統中正在運行的程式
15.2.3 枚舉Android系統的進程、任務和服務的信息
15.2.4 研究Android進程管理器的實現
15.3 將Android軟體從手機記憶體轉移到存儲卡
15.3.1 第一步:準備工作
15.3.2 第二步:存儲卡分區
15.3.3 第三步:將軟體移動到SD卡
15.4 常用的系統最佳化工具
15.4.1 最佳化大師
15.4.2 360最佳化大師

相關詞條

熱門詞條

聯絡我們