本書是一本Android進階類書籍,書中各知識點由淺入深、環環相扣,終這些知識點形成了一個體系結構。本書共分為11章。第1章介紹Android 5.0到Android 7.0的新特性。第2章介紹Material Design。第3章介紹View體系,包括View的事件分發、工作流程、自定義View等知識點。第4章介紹多線程的知識。第5章介紹網絡編程與網絡框架的知識。第6章介紹常用的設計模式。第7章介紹事件總線。第8到第10章介紹架構設計所需要的知識點。第11章簡單介紹Android系統框架與MediaPlayer框架。本書詳細并深入講解Android開發者必備的和前沿的知識,適合有一定開發基礎的開發者閱讀,這有助于他們提高技術水平;同時,本書系統的知識體系結構也令高級開發者從中獲益良多。
劉望舒,Android高級工程師,擁有多年的開發和技術管理經驗。對Android框架層及應用層開發有著深入的理解。熱愛技術和分享,連續6年在CSDN發表技術文章,有多篇文章廣受好評,并被授予CSDN博客專家稱號,此外,他還活躍在簡書和稀土掘金。曾在華為和開心網從事Android開發工作。
目錄
第1章Android新特性 1
1.1Android 5.0新特性 1
1.1.1Android 5.0主要新特性概述 1
1.1.2替換ListView和GridView的RecyclerView 3
1.1.3卡片CardView 13
1.1.43種Notification 18
1.1.5Toolbar與Palette 23
1.2Android 6.0新特性 29
1.2.1Android 6.0主要新特性概述 29
1.2.2運行時權限機制 30
1.3Android 7.0新特性 43
1.3.1Android 7.0主要新特性概述 43
1.3.2多窗口模式 44
1.4本章小結 47
第2章Material Design 48
2.1Material Design概述 48
2.1.1核心思想 48
2.1.2材質與空間 49
2.1.3動畫 49
2.1.4樣式 50
2.1.5圖標 51
2.1.6圖像 51
2.1.7組件 51
2.2Design Support Library常用控件詳解 54
2.2.1Snackbar的使用 54
2.2.2用TextInputLayout實現登錄界面 55
2.2.3FloatingActionButton的使用 60
2.2.4用TabLayout實現類似網易選項卡的動態滑動效果 61
2.2.5用NavigationView實現抽屜菜單界面 68
2.2.6用CoordinatorLayout實現Toolbar隱藏和折疊 74
2.3本章小結 86
第3章View體系與自定義View 87
3.1View與ViewGroup 87
3.2坐標系 89
3.2.1Android坐標系 89
3.2.2View坐標系 90
3.3View的滑動 91
3.3.1layout()方法 92
3.3.2offsetLeftAndRight()與offsetTopAndBottom() 94
3.3.3LayoutParams(改變布局參數) 95
3.3.4動畫 95
3.3.5scrollTo與scollBy 96
3.3.6Scroller 98
3.4屬性動畫 99
3.5解析Scroller 105
3.6View的事件分發機制 108
3.6.1源碼解析Activity的構成 108
3.6.2源碼解析View的事件分發機制 112
3.7View的工作流程 119
3.7.1View的工作流程入口 119
3.7.2理解MeasureSpec 122
3.7.3View的measure流程 126
3.7.4View的layout流程 132
3.7.5View的draw流程 135
3.8自定義View 139
3.8.1繼承系統控件的自定義View 140
3.8.2繼承View的自定義View 141
3.8.3自定義組合控件 147
3.8.4自定義ViewGroup 152
3.9本章小結 164
第4章多線程編程 165
4.1線程基礎 165
4.1.1進程與線程 165
4.1.2線程的狀態 167
4.1.3創建線程 168
4.1.4理解中斷 170
4.1.5安全地終止線程 171
4.2同步 173
4.2.1重入鎖與條件對象 173
4.2.2同步方法 175
4.2.3同步代碼塊 176
4.2.4volatile 177
4.3阻塞隊列 183
4.3.1阻塞隊列簡介 183
4.3.2Java中的阻塞隊列 184
4.3.3阻塞隊列的實現原理 186
4.3.4阻塞隊列的使用場景 188
4.4線程池 190
4.4.1ThreadPoolExecutor 190
4.4.2線程池的處理流程和原理 192
4.4.3線程池的種類 193
4.5AsyncTask的原理 197
4.6本章小結 203
第5章網絡編程與網絡框架 204
5.1網絡分層 204
5.2TCP的三次握手與四次揮手 205
5.3HTTP協議原理 207
5.3.1HTTP簡介 207
5.3.2HTTP請求報文 208
5.3.3HTTP響應報文 209
5.3.4HTTP的消息報頭 210
5.3.5抓包應用舉例 211
5.4HttpClient與HttpURLConnection 212
5.4.1HttpClient 212
5.4.2HttpURLConnection 216
5.5解析Volley 218
5.5.1Volley基本用法 218
5.5.2源碼解析Volley 223
5.6解析OkHttp 231
5.6.1OkHttp基本用法 232
5.6.2源碼解析OkHttp 240
5.7解析Retrofit 255
5.7.1Retrofit基本用法 255
5.7.2源碼解析Retrofit 261
5.8本章小結 270
第6章設計模式 271
6.1設計模式六大原則 271
6.2設計模式分類 273
6.3創建型設計模式 273
6.3.1單例模式 274
6.3.2簡單工廠模式 277
6.3.3工廠方法模式 279
6.3.4建造者模式 281
6.4結構型設計模式 284
6.4.1模式 285
6.4.2裝飾模式 288
6.4.3外觀模式 291
6.4.4享元模式 295
6.5行為型設計模式 298
6.5.1策略模式 298
6.5.2模板方法模式 301
6.5.3觀察者模式 304
6.6本章小結 307
第7章事件總線 308
7.1解析EventBus 308
7.1.1使用EventBus 308
7.1.2源碼解析EventBus 314
7.2解析otto 324
7.2.1使用otto 324
7.2.2源碼解析otto 327
第8章函數響應式編程 333
8.1RxJava基本用法 333
8.1.1RxJava概述 333
8.1.2RxJava基本實現 334
8.1.3RxJava的不完整定義回調 336
8.2RxJava的Subject 338
8.3RxJava操作符入門 339
8.3.1創建操作符 339
8.3.2變換操作符 340
8.3.3過濾操作符 344
8.3.4組合操作符 349
8.3.5輔助操作符 352
8.3.6錯誤處理操作符 355
8.3.7條件操作符和布爾操作符 357
8.3.8轉換操作符 360
8.4RxJava的線程控制 362
8.5RxJava的使用場景 362
8.5.1RxJava結合OkHttp訪問網絡 362
8.5.2RxJava結合Retrofit訪問網絡 364
8.5.3用RxJava實現RxBus 368
8.6RxJava源碼解析 370
8.6.1 RxJava的訂閱過程 371
8.6.2RxJava的變換過程 372
8.6.3RxJava的線程切換過程 376
8.7本章小結 381
第9章注解與依賴注入框架 382
9.1注解 382
9.1.1注解分類 382
9.1.2定義注解 384
9.1.3注解處理器 385
9.2依賴注入的原理 392
9.2.1控制反轉與依賴注入 392
9.2.2依賴注入的實現方式 393
9.3依賴注入框架 395
9.3.1為何使用依賴注入框架 395
9.3.2解析ButterKnife 395
9.3.3解析Dagger2 405
9.4本章小結 421
第10章應用架構設計 422
10.1 MVC模式 422
10.2MVP模式 423
10.2.1應用MVP模式 424
10.2.2MVP結合RxJava和Dagger2 431
10.3MVVM模式 438
10.3.1解析Data Binding 439
10.3.2應用Data Binding 457
10.4本章小結 459
第11章系統架構與MediaPlayer框架 460
11.1Android系統架構 460
11.2Android系統源碼目錄 463
11.2.1整體結構 463
11.2.2應用層部分 464
11.2.3應用框架層部分 465
11.2.4C/C 程序庫部分 465
11.3Source Insights使用 466
11.4MediaPlayer框架 467
11.4.1Java Framework層的MediaPlayer分析 467
11.4.2JNI層的MediaPlayer分析 469
11.4.3Native層的MediaPlayer分析 471
11.5本章小結 478
后記 479
別的都很好 就是書的封面 有一些坑印
聽說這本書很好,剛收到,看了后再追評
還好吧,紙質一般,公司買的,不要求太多了
不錯 正品 值得買
還不錯,幫同事帶的。
有點難,慢慢研究吧。
幫同事采購
很好。。。。
紙張實在是太差,感覺盜版的感覺
進階必備,深入淺出
和藝術探索相輔相成
劉望舒的書,一直看他的blog。很不錯。但書的印刷感覺有點差了。書紙也有點軟。
書里面的內容不錯,專業技術知識點全面并深入,但是印刷質量真不行,紙張也很薄。
正好Android到了瓶頸,需要提升,搜了那么多進階的書,就這本是最新的。看了書中的目錄,基本都是我目前需要學習的內容,真的是很有幫助!