Android 並發開發
內容描述
本書共8章,第1章介紹了一個非典型的並發模型,以後文的闡釋做好鋪墊。第2章和第3章分別介紹了Java並發和Android應用程序模型,主要介紹Java線程、同步、並發包、生命周期和組件、Android進程等基本概念。第4章介紹AsyncTask和Loader。第5—7章是本書的核心內容,深入探討Android操作系統的細節,如Looper/Handler、Service、Binder、定時任務等。第8章介紹並發工具,如靜態分析、註解、斷言等。
本書適合有一定Android開發經驗的讀者參考。如果你是一名新手,建議你在掌握相關入門知識的基礎上閱讀本書,以達到更好的學習效果。本書給出多段代碼,旨在讓讀者親自實踐後更好地掌握Android並發開發的相關內容。
目錄大綱
第1章了解並發1
1.1並發很難1
1.1.1軟件中的並發1
1.1.2硬件中的並發3
1.2並發很簡單4
1.2.1線程4
1.2.2原子執行5
1.2.3可視化6
1.3小結7
第2章Java並發8
2.1 Java線程8
2.1.1 Thread類9
2.1.2 Runnable 10
2.2同步11
2.2.1互斥11
2.2.2常見的同步錯誤15
2.3 volatile 17
2.4 wait和notify 21
2.4.1 wait 21
2.4.2 notify 22
2.5並發包23
2.5.1安全發布24
2.5.2 executor 26
2.5.3 future 27
2.6小結28
第3章Android應用程序模型29
3.1生命週期和組件29
3.1.1進程優先級31
3.1.2組件生命週期33
3.2 Android應用程序作為Web應用程序34
3.3 Android進程35
3.3.1應用程序啟動35
3.3.2 Android主線程38
3.4小結39
第4章AsyncTask和Loader 40
4.1 AsyncTask體系40
4.1.1 AsyncTask基礎44
4.1.2 AsyncTask的執行47
4.1.3 AsyncTask的完成49
4.2使用AsyncTask 52
4.2.1 AsyncTask:被認為是危險的52
4.2.2使之正確59
4.3 Loader和CursorLoader 60
4.4 AsyncTask:哪裡出錯了?68
4.5小結69
第5章Looper/Handler 71
5.1 Looper/Handler簡介71
5.1.1 Looper/Handler的基礎73
5.1.2委託執行74
5.2一些細節83
5.2.1 Handler和消息83
5.2.2啟動Looper 86
5.2 .3 Native Looper 88
5.2.4調度和同步屏障89
5.3小結91
第6章Service、進程和Binder IPC 93
6.1 Service的基礎知識93
6.1.1啟動型Service的要點95
6.1.2綁定型Service的要點97
6.2 Intent 98
6.3 IntentService 101
6.4綁定型Service 105
6.4.1一個簡單的綁定型Service 106
6.4.2綁定一個Service 107
6.4.3解除對Service的綁定109
6.4.4綁定多個Service 110
6.4.5 Service的生命週期112
6.4.6優先級和標誌114
6.4.7本地綁定型Service 115
6.5進程間通信118
6.5 .1 Parcelable 119
6.5.2 Messenger 120
6.5.3使用AIDL 123
6.5.4創建進程128
6.6淺談Binder 130
6.6.1 Binder線程130
6.6.2 Binder數據傳輸限制130
6.6.3綁定到死131
6.7小結131
第7章定時任務132
7.1任務特性132
7.1.1線程安全133
7.1.2生命週期感知133
7.1.3巧妙使用進程優先級133
7.1.4電量節約134
7.1.5記分卡135
7.2 Timer和TimerTask 135
7.3 Looper/Handler 135
7.4基於自定義服務的調度程序138
7.5 Alarm Manager和Intent Service 139
7.5.1 AlarmManagerService 141
7.5.2可調度的任務145
7.6同步適配器148
7.6 .1定義同步適配器149
7.6.2同步適配器的工作原理152
7.6.3實現同步適配器154
7.6.4對同步適配器評分159
7.7 JobScheduler 162
7.7.1調度任務163
7.7.2運行任務166
7.7.3任務執行168
7.7.4對JobScheduler評分172
7.8小結173
第8章並發工具174
8.1靜態分析174
8.1.1 Android Studio 175
8.1.2 Findbugs 176
8.2註解183
8.2.1 JCIR註解184
8.2.2支持庫註解184
8.3斷言185
8.4結束語和最佳做法186
參考文獻188
作者介紹
作者:G. Blake Meike
譯者:師蓉
Blake Meike是一位充滿激情的工程師、架構師和代碼詩人。作為作者、演講者和導師的他,已經教給數万人如何編寫真正的Android應用程序。他有20多年的編程經驗(大部分時候是使用Java語言),他構建過亞馬遜可大規模擴展的自動縮放服務這種大型系統,也在手機上構建過基於預Android OSS Linux/基於Java平台的小型系統。他是很多書籍的合著者,包括O'Reilly的暢銷書《Programming Android》和Wiley的《Enterprise Android》。Blake擁有達特茅斯學院的數學和計算機科學學位,並且是Twitter大學的創始成員。他住在奧蘭多,在Cyanogen公司工作。