●第1章Activity的生命周期和啟動模式/1
1.1Activity的生命周期全面分析/1
1.1.1典型情況下的生命周期分析/2
1.1.2異常情況下的生命周期分析/8
1.2Activity的啟動模式/16
1.2.1Activity的LaunchMode/16
1.2.2Activity的Flags/27
1.3IntentFilter的匹配規則/28
第2章IPC機制/35
2.1AndroidIPC簡介/35
2.2Android中的多進程模式/36
2.2.1開啟多進程模式/36
2.2.2多進程模式的運行機制/39
2.3IPC基礎概念介紹/42
2.3.1Serializable接口/42
2.3.2Parcelable接口/45
2.3.3Binder/47
2.4Android中的IPC方式/61
2.4.1使用Bundle/61
2.4.2使用文件共享/62
2.4.3使用Messenger/65
2.4.4使用AIDL/71
2.4.5使用ContentProvider/91
2.4.6使用Socket/103
2.5Binder連接池/112
2.6選用合適的IPC方式/121
第3章View的事件體繫/122
3.1View基礎知識/122
3.1.1什麼是View/123
3.1.2View的位置參數/123
3.1.3MotionEvent和TouchSlop/125
3.1.4VelocityTracker、GestureDetector和Scroller/126
3.2View的滑動/129
3.2.1使用scrollTo/scrollBy/129
3.2.2使用動畫/131
3.2.3改變布局參數/133
3.2.4各種滑動方式的對比/133
3.3彈性滑動/135
3.3.1使用Scroller/136
3.3.2通過動畫/138
3.3.3使用延時策略/139
3.4View的事件分發機制/140
3.4.1點擊事件的傳遞規則/140
3.4.2事件分發的源碼解析/144
3.5View的滑動衝突/154
3.5.1常見的滑動衝突場景/155
3.5.2滑動衝突的處理規則/156
3.5.3滑動衝突的解決方式/157
第4章View的工作原理/174
4.1初識ViewRoot和DecorView/174
4.2理解MeasureSpec/177
4.2.1MeasureSpec/177
4.2.2MeasureSpec和LayoutParams的對應關繫/178
4.3View的工作流程/183
4.3.1measure過程/183
4.3.2layout過程/193
4.3.3draw過程/197
4.4自定義View/199
4.4.1自定義View的分類/200
4.4.2自定義View須知/201
4.4.3自定義View示例/202
4.4.4自定義View的思想/217
第5章理解RemoteViews/218
5.1RemoteViews的應用/218
5.1.1RemoteViews在通知欄上的應用/219
5.1.2RemoteViews在桌面小部件上的應用/221
5.1.3PendingIntent概述/228
5.2RemoteViews的內部機制/230
5.3RemoteViews的意義/239
第6章Android的Drawable/243
6.1Drawable簡介/243
6.2Drawable的分類/244
6.2.1BitmapDrawable/244
6.2.2ShapeDrawable/247
6.2.3LayerDrawable/251
6.2.4StateListDrawable/253
6.2.5LevelListDrawable/255
6.2.6TransitionDrawable/256
6.2.7InsetDrawable/257
6.2.8ScaleDrawable/258
6.2.9ClipDrawable/260
6.3自定義Drawable/262
第7章Android動畫深入分析/265
7.1View動畫/265
7.1.1View動畫的種類/265
7.1.2自定義View動畫/270
7.1.3幀動畫/272
7.2View動畫的特殊使用場景/273
7.2.1LayoutAnimation/273
7.2.2Activity的切換效果/275
7.3屬性動畫/276
7.3.1使用屬性動畫/276
7.3.2理解插值器和估值器/280
7.3.3屬性動畫的監聽器/282
7.3.4對任意屬性做動畫/282
7.3.5屬性動畫的工作原理/288
7.4使用動畫的注意事項/292
第8章理解Window和WindowManager/294
8.1Window和WindowManager/294
8.2Window的內部機制/297
8.2.1Window的添加過程/298
8.2.2Window的刪除過程/301
8.2.3Window的更新過程/303
8.3Window的創建過程/304
8.3.1Activity的Window創建過程/304
8.3.2Dialog的Window創建過程/308
8.3.3Toast的Window創建過程/311
第9章四大組件的工作過程/316
9.1四大組件的運行狀態/316
9.2Activity的工作過程/318
9.3Service的工作過程/336
9.3.1Service的啟動過程/336
9.3.2Service的綁定過程/344
9.4BroadcastReceiver的工作過程/352
9.4.1廣播的注冊過程/353
9.4.2廣播的發送和接收過程/356
9.5ContentProvider的工作過程/362
第10章Android的消息機制/372
10.1Android的消息機制概述/373
10.2Android的消息機制分析/375
10.2.1ThreadLocal的工作原理/375
10.2.2消息隊列的工作原理/380
10.2.3Looper的工作原理/383
10.2.4Handler的工作原理/385
10.3主線程的消息循環/389
第11章Android的線程和線程池/391
11.1主線程和子線程/392
11.2Android中的線程形態/392
11.2.1AsyncTask/392
11.2.2AsyncTask的工作原理/395
11.2.3HandlerThread/402
11.2.4IntentService/403
11.3Android中的線程池/406
11.3.1ThreadPoolExecutor/407
11.3.2線程池的分類/410
第12章Bitmap的加載和Cache/413
12.1Bitmap的高效加載/414
12.2Android中的緩存策略/417
12.2.1LruCache/418
12.2.2DiskLruCache/419
12.2.3ImageLoader的實現/424
12.3ImageLoader的使用/441
12.3.1照片牆效果/441
12.3.2優化列表的卡頓現像/446
第13章綜合技術/448
13.1使用CrashHandler來獲取應用的crash信息/449
13.2使用multidex來解決方法數越界/455
13.3Android的動態加載技術/463
13.4反編譯初步/469
13.4.1使用dex2jar和jd-gui反編譯apk/470
13.4.2使用apktool對apk進行二次打包/470
第14章JNI和NDK編程/473
14.1JNI的開發流程/474
14.2NDK的開發流程/478
14.3JNI的數據類型和類型簽名/484
14.4JNI調用Java方法的流程/486
第15章Android性能優化/489
15.1Android的性能優化方法/490
15.1.1布局優化/490
15.1.2繪制優化/493
15.1.3內存洩露優化/493
15.1.4響應速度優化和ANR日志分析/496
15.1.5ListView和Bitmap優化/501
15.1.6線程優化/501
15.1.7一些性能優化建議/501
15.2內存洩露分析之MAT工具/502
15.3提高程序的可維護性/506