《图灵程序设计丛书 高性能IOS应用开发》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:(美)高拉夫·瓦依希(Gaurav Vaish)著;梁士兴,郝田田,陈作君译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2017
  • ISBN:9787115451200
  • 页数:360 页
图书介绍:本书将介绍对用户体验产生负面影响的各个方面,并概述如何优化iOS应用的性能。全书共5个部分,主要从性能的衡量标准、对应用至关重要的核心优化点、iOS应用开发特有的性能优化技术以及性能的非代码方面讲解了应用性能的优化问题。本书的主要目的是展示如何从工程学的角度编写最优代码。

第一部分 开始 3

第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

第二部分 核心优化 23

第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性能 119

第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 小结 143

第6章 用户界面 144

6.1 视图控制器 145

6.1.1 视图加载 148

6.1.2 视图层级 149

6.1.3 视图可见性 151

6.2 视图 153

6.2.1 UILabel 154

6.2.2 UIButton 155

6.2.3 UIImageView 156

6.2.4 UITableView 157

6.2.5 UIWebView 160

6.2.6 自定义视图 163

6.3 自动布局 169

6.4 尺寸类别 170

6.5 iOS 8中新的交互特性 174

6.5.1 交互式通知 174

6.5.2 应用扩展 175

6.6 小结 178

第7章 网络 179

7.1 指标和测量 179

7.1.1 DNS查找时间 180

7.1.2 SSL握手时间 181

7.1.3 网络类型 182

7.1.4 延迟 187

7.1.5 网络API 189

7.2 应用部署 189

7.2.1 服务器 190

7.2.2 请求 190

7.2.3 数据格式 191

7.3 工具 192

7.3.1 网络链接调节器 192

7.3.2 AT&T应用资源优化器 193

7.3.3 Charles 195

7.4 小结 198

第8章 数据共享 199

8.1 深层链接 199

8.2 剪贴板 204

8.3 共享内容 207

8.3.1 文档交互 208

8.3.2 活动 214

8.4 iOS 8扩展 216

8.4.1 配置操作扩展和共享扩展 218

8.4.2 操作扩展 219

8.4.3 共享扩展 220

8.4.4 文档提供者扩展 222

8.4.5 应用群组 227

8.5 小结 229

第9章 安全 230

9.1 应用访问 231

9.1.1 匿名访问 231

9.1.2 认证访问 233

9.2 网络安全 236

9.2.1 使用HTTPS 236

9.2.2 使用证书锁定 237

9.3 本地存储 241

9.4 数据共享 247

9.5 安全和应用性能 247

9.6 清单 247

9.7 小结 249

第四部分 代码之外 253

第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 321

第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