編輯推薦
本書為有經驗的iOS開發者提供構建優異應用移動性能所需的開發建議和實踐,幫助讀者解決常見性能問題。
作者Gaurav Vaish從工程角度演示瞭編寫優質代碼的方法,詳盡介紹如何設計和優化iOS應用,以便在網絡較差、內存較低的情況下提供流暢的用戶體驗。書中還提供瞭可以反復使用的Objective-C代碼,以及一些能夠從眾多應用中脫穎而齣的高性能原生iOS應用。
·概述跟蹤應用性能時需要衡量的參數以及如何衡量性能。
·通過zui小化內存和功耗以及並發編程來編寫高效應用,並探索一些相關選項。
·優化應用的生命周期和UI,以及網絡、數據共享和安全功能。
·瞭解應用的測試、調試和分析工具,並監控應用
·從真實用戶處收集數據來分析應用的使用情況,找齣瓶頸,並進行修復
內容簡介
性能對用戶體驗有著至關重要的影響。本書將介紹對用戶體驗産生負麵影響的各個方麵,並概述如何優化iOS應用的性能。全書共5個部分,主要從性能的衡量標準、對應用至關重要的核心優化點、iOS應用開發特有的性能優化技術以及性能的非代碼方麵,講解瞭應用性能的優化問題。本書的主要目的是展示如何從工程學的角度編寫優質代碼。本書適閤已經具有Objective-C和iOS實踐經驗的開發人員閱讀。
作者簡介
Gaurav Vaish,就職於雅虎公司的移動和新興産品團隊,為每月有數億人使用的移動應用創建優雅的可重用方案。他曾是IIT全球指導計劃的成員,還在印度班加羅爾創立瞭InColeg Learning及Edujini Labs有限公司。
梁士興,畢業於北京航空航天大學,現任職美團-大眾點評iOS高級技術專傢。有多年的一綫iOS開發經驗,對於iOS應用性能有深入研究和獨到見解。對iOS前沿技術、移動應用架構模式非常感興趣。
郝田田,畢業於西安電子科技大學,現任職美團-大眾點評iOS研發工程師,具有豐富的iOS軟件開發經驗,長期關注iOS領域前沿技術,曾參與數本iOS技術類書籍翻譯工作。
陳作君,畢業於北京理工大學,現任職滴滴齣行iOS研發工程師,多年大型移動端應用開發經驗,熱衷於開源項目建設,是一名技術書籍翻譯的愛好者。
目錄
譯者序 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
高性能iOS應用開發 下載 mobi epub pdf txt 電子書