譯者序 xv
前言 xvii
第一部分 開始
第1章 移動應用的性能 3
1.1 定義性能 3
1.2 性能指標 4
1.2.1 內存 4
1.2.2 電量消耗 4
1.2.3 初始化時間 4
1.2.4 執行速度 5
1.2.5 響應速度 5
1.2.6 本地存儲 5
1.2.7 互操作性 6
1.2.8 網絡環境 7
1.2.9 帶寬 7
1.2.10 數據刷新 8
1.2.11 多用戶支持 8
1.2.12 單點登錄 9
1.2.13 安全 9
1.2.14 崩潰 10
1.3 應用性能分析 10
1.3.1 采樣 10
1.3.2 埋點 10
1.4 測量 11
1.4.1 設置工程與代碼 11
1.4.2 設置崩潰報告 12
1.4.3 對應用埋點 13
1.4.4 日誌 17
1.5 小結 19
第二部分 核心優化
第2章 內存管理 23
2.1 內存消耗 23
2.1.1 棧大小 24
2.1.2 堆大小 25
2.2 內存管理模型 27
2.3 自動釋放對象 28
2.4 自動釋放池塊 30
2.5 自動引用計數 32
2.6 引用類型 35
2.6.1 變量限定符 36
2.6.2 屬性限定符 37
2.7 實踐環節 38
2.7.1 照片模型 38
2.7.2 更新故事闆 38
2.7.3 方法實現 39
2.7.4 輸齣分析 41
2.8 僵屍對象 42
2.9 內存管理規則 43
2.10 循環引用 43
2.10.1 避免循環引用的規則 45
2.10.2 循環引用的常見場景 46
2.10.3 觀察者 56
2.10.4 返迴錯誤 59
2.11 弱類型:id 59
2.12 對象壽命與泄漏 61
2.13 單例 62
2.14 找到神秘的持有者 64
2.15 最佳實踐 65
2.16 生産環境的內存使用情況 66
2.17 小結 67
第3章 能耗 68
3.1 CPU 68
3.2 網絡 70
3.3 定位管理器和GPS 73
3.3.1 最佳的初始化 74
3.3.2 關閉無關緊要的特性 75
3.3.3 隻在必要時使用網絡 76
3.3.4 後颱定位服務 77
3.3.5 NSTimer、NSThread 和定位服務 77
3.3.6 在應用關閉後重啓 78
3.4 屏幕 78
3.4.1 動畫 78
3.4.2 視頻播放 78
3.4.3 多屏幕 79
3.5 其他硬件 83
3.6 電池電量與代碼感知 83
3.7 分析電量使用 85
3.8 最佳實踐 86
3.9 小結 88
第4章 並發編程 89
4.1 綫程 89
4.2 綫程開銷 90
4.2.1 內核數據結構 90
4.2.2 棧空間 90
4.2.3 創建耗時 90
4.3 GCD 91
4.4 操作與隊列 92
4.5 綫程安全的代碼 93
4.5.1 原子屬性 93
4.5.2 同步塊 94
4.5.3 鎖 96
4.5.4 將讀寫鎖應用於並發讀寫 100
4.5.5 使用不可變實體 102
4.5.6 使用集中的狀態更新服務 106
4.5.7 狀態觀察者與通知 110
4.5.8 異步優於同步 114
4.6 小結 116
第三部分 iOS 性能
第5章 應用的生命周期 119
5.1 應用委托 119
5.2 應用啓動 121
5.2.1 首次啓動 123
5.2.2 冷啓動 129
5.2.3 熱啓動 135
5.2.4 升級後啓動 137
5.3 推送通知 138
5.3.1 遠程通知 138
5.3.2 本地通知 141
5.4 後颱拉取 142
5.5 小結 144
第6章 用戶界麵 145
6.1 視圖控製器 146
6.1.1 視圖加載 149
6.1.2 視圖層級 150
6.1.3 視圖可見性 152
6.2 視圖 154
6.2.1 UILabel 155
6.2.2 UIButton 156
6.2.3 UIImageView 157
6.2.4 UITableView 158
6.2.5 UIWebView 161
6.2.6 自定義視圖 164
6.3 自動布局 170
6.4 尺寸類彆 171
6.5 iOS 8 中新的交互特性 175
6.5.1 交互式通知 175
6.5.2 應用擴展 176
6.6 小結 179
第7章 網絡 180
7.1 指標和測量 180
7.1.1 DNS 查找時間 181
7.1.2 SSL 握手時間 182
7.1.3 網絡類型 183
7.1.4 延遲 188
7.1.5 網絡API 190
7.2 應用部署 190
7.2.1 服務器 191
7.2.2 請求 191
7.2.3 數據格式 192
7.3 工具 193
7.3.1 網絡鏈接調節器 193
7.3.2 AT & T 應用資源優化器 194
7.3.3 Charles 196
7.4 小結 199
第8章 數據共享 200
8.1 深層鏈接 200
8.2 剪貼闆 205
8.3 共享內容 208
8.3.1 文檔交互 209
8.3.2 活動 215
8.4 iOS 8 擴展 217
8.4.1 配置操作擴展和共享擴展 219
8.4.2 操作擴展 220
8.4.3 共享擴展 221
8.4. 4 文檔提供者擴展 223
8.4.5 應用群組 228
8.5 小結 230
第9章 安全 231
9.1 應用訪問 232
9.1.1 匿名訪問 232
9.1.2 認證訪問 234
9.2 網絡安全 237
9.2.1 使用HTTPS 237
9.2.2 使用證書鎖定 238
9.3 本地存儲 242
9.4 數據共享 248
9.5 安全和應用性能 248
9.6 清單 248
9.7 小結 250
第四部分 代碼之外
第10章 測試及發布 253
10.1 測試類型 253
10.2 定義 254
10.3 單元測試 255
10.3.1 設置 255
10.3.2 編寫單元測試 256
10.3.3 代碼覆蓋率 258
10.3.4 異步操作 262
10.3.5 Xcode 6 福利:性能單元測試 263
10.3.6 模擬依賴 265
10.3.7 其他框架 268
10.4 功能測試 268
10.4.1 設置 269
10.4.2 編寫功能測試 271
10.4.3 工程結構 273
10.5 隔離依賴 274
10.6 測試及組件設計 275
10.7 持續集成與自動化 277
10.8 最佳實踐 278
10.9 小結 282
第11章 工具 283
11.1 Accessibility Inspector 283
11.1.1 Xcode Accessibility Inspector 284
11.1.2 iOS Accessibility Inspector 285
11.2 Instruments 288
11.2.1 使用Instruments 289
11.2.2 活動監視器 291
11.2.3 內存分配 292
11.2.4 內存泄漏 295
11.2.5 網絡 296
11.2.6 時間分析器 297
11.3 Xcode 視圖調試器 298
11.4 PonyDebugger 300
11.5 Charles 304
11.6 小結 309
第12章 埋點與分析 310
12.1 詞匯 310
12.2 埋點 312
12.2.1 規劃 312
12.2.2 實現 314
12.2.3 部署 316
12.3 分析 317
12.4 真實用戶監控 317
12.4.1 分析與真實用戶監控對比 317
12.4.2 使用真實用戶監控 318
12.5 小結 318
第五部分 iOS 9
第13章 iOS 9 321
13.1 應用的生命周期 321
13.1.1 通用鏈接 322
13.1.2 搜索 324
13.1.3 搜索最佳實踐 328
13.2 用戶界麵 329
13.2.1 UIKit 框架 330
13.2.2 Safari 服務框架 332
13.3 擴展 335
13.3.1 內容攔截擴展 336
13.3.2 Spotlight 索引擴展 338
13.4 應用瘦身 339
13.4.1 分割 339
13.4.2 按需加載資源 340
13.4.3 bitcode 343
13.5 小結 344
第14章 iOS 10 345
14.1 Siri 擴展 346
14.2 改進的通知 348
14.2.1 申請權限 348
14.2.2 觸發器 348
14.2.3 為通知添加交互 349
14.2.4 完全自定義展示通知 350
14.2.5 通知服務擴展 352
14.3 iMessage 擴展 354
14.4 VoIP 支持 357
作者介紹 359
封麵介紹 359
· · · · · · (
收起)