内容简介
性能对用户体验有着至关重要的影响。本书将介绍对用户体验有负面影响的各个方面,并概述如何优化iOS应用的性能。本书由五个部分组成,主要从绩效衡量标准入手、对应用程序至关重要的核心优化点、iOS应用程序开发独特的性能优化技术和性能的非代码方面解释了应用程序性能的优化。这本书的主要目的是展示如何从工程的角度写最好的代码。这本书适合那些已经有目标的人-以及在iOS方面有实践经验的c开发者。
目录
- 译者序 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
一般般,总共360页内容包含14章,这一点就注定没法写深入的内容。涉及到的面很广,但是讲的都很浅,对中级以上的开发者来说,没太大帮助,愧对中文版的书名啊。