高性能iOS应用开发pdf

图书网 2018年12月27日09:06:1622.6K
摘要

本书为有经验的iOS开发者提供构建优异应用移动性能所需的开发建议和实践,帮助读者解决常见性能问题。
作者Gaurav Vaish从工程角度演示了编写优质代码的方法,详尽介绍如何设计和优化iOS应用,以便在网络较差、内存较低的情况下提供流畅的用户体验。书中还提供了可以反复使用的Objective-C代码,以及一些能够从众多应用中脱颖而出的高性能原生iOS应用。
概述跟踪应用性能时需要衡量的参数以及如何衡量性能。
通过最小化内存和功耗以及并发编程来编写高效应用,并探索一些相关选项。
优化应用的生命周期和UI,以及网络、数据共享和安全功能。
了解应用的测试、调试和分析工具,并监控应用
从真实用户处收集数据来分析应用的使用情况,找出瓶颈,并进行修复

高性能iOS应用开发 内容简介

性能对用户体验有着至关重要的影响。本书将介绍对用户体验产生负面影响的各个方面,并概述如何优化iOS应用的性能。全书共5个部分,主要从性能的衡量标准、对应用至关重要的核心优化点、iOS应用开发特有的性能优化技术以及性能的非代码方面,讲解了应用性能的优化问题。本书的主要目的是展示如何从工程学的角度编写优质代码。本书适合已经具有Objective-C和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应用开发 精彩文摘

1.1 定义性能

从技术视角严格来说,性能是非常模糊的术语。当一个人说“这是个高性能的应用”时,其实我们无从判断他说的是什么。他是说应用消耗的内存少?应用节约了网络流量?还是说应用使用起来非常流畅?总而言之,高性能有着多重的含义和丰富的解释方式。

图书网:高性能iOS应用开发pdf

继续阅读

→→→→→→→→→→→→→→→→→→→→查找获取

企业软件开发与实施

Spring+MyBatis企业应用实战pdf

适读人群 :Java开发人员,在校计算机及相关专业学生 1.贴近实际项目,以案例驱动 本书针对每一个知识点都通过相应的程序给出了示范,所有应用范例都密切契合企业开发实际场景,例如用...
企业软件开发与实施

大话设计模式pdf

《大话设计模式》是准备攀登面向对象编程高峰朋友们的引路人和提携者;《大话设计模式》是学习、体会和领悟了众多大师智慧结晶后的图书作品;《大话设计模式》是你深入理解和感受GoF的《设计...
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

评论:2   其中:访客  2   博主  0
    • aaa
      aaa 1

      邀请码是什么

      • aaa
        aaa 1

        看书读书,享受自在人生,人生乐事