极客时间商城店铺主页二维码
极客时间商城
为极致和美好付费
微信扫描二维码,访问我们的微信店铺

iOS性能优化实战

69.90
运费: 免运费
库存: 0 件
商品已售罄 收藏 / 分享
iOS性能优化实战 商品图0
iOS性能优化实战 商品缩略图0

商品详情

书名:iOS性能优化实战
定价:99.0
ISBN:9787121361524
作者:珲少
版次:第1版
出版时间:2019-05

内容提要:

    所谓性能,无非是一种指标,在软件开发中,性能指标往往会关注两个方面:效率和消耗。效率主要是指代码的执行效率,动画的流畅度,应用的冷启动时间和热启动时间,网络通讯的阻塞时间等等。消耗只要是指内存的消耗,有没有内存泄露,CPU的占用率,耗电与应用程序包尺寸等。本书主要讨论在iOS应用性能优化中,有哪些性能指标可能是你需要考虑的。并将向你介绍如何使用工具来分析一款iOS应用的性能问题。并且,也会向读者介绍在iOS软件开发过程的更多高级技巧。



作者简介:

     张益辉,TicTalk Foundation合伙人,博客笔名珲少,曾就职于唯品会,参与特卖项目《唯品会》、唯品会美妆项目《唯美》、唯品会返利项目《唯享客》。iOS开发、Swift 语言、Objective-C 语言、Java 与JavaScript语言、Android 等相关技术博客370余篇。任麦子学院iOS金牌讲师,良师益友网、51CTO学院、CSND网络学院签约讲师,开源中国高手问答栏目受邀技术专家,博客访问量90多万次。



目录:

目    录

第1章  关于性能你需要知道的事1

1.1  衡量应用程序性能优劣的一些标准1

1.1.1  代码的执行效率2

1.1.2  内存占用4

1.1.3  CPU负担与能耗5

1.1.4  动画流畅度7

1.1.5  网络缓存8

1.1.6  应用程序启动时间9

1.1.7  应用程序包尺寸9

1.2  Xcode断点与静态分析工具10

1.2.1  添加自定义断点10

1.2.2  为自定义断点添加行为11

1.2.3  添加全局类型的断点13

1.2.4  Xcode的静态分析工具14

1.3  Instruments:性能分析和测试工具16

1.3.1  Activity Monitor:活动监视器16

1.3.2  Allocations:内存跟踪工具17

1.3.3  CoreAnimation:核心动画监测工具19

1.3.4  Counters:仪表计数器20

1.3.5  Energy Log:能耗记录器21

1.3.6  Leaks:内存泄漏检查工具22

1.3.7  Network:网络连接检查工具23

1.3.8  自定义Instruments工具模板23

1.4  使用LLDB调试工具25

1.4.1  使用expression指令进行动态代码执行25

1.4.2  使用frame指令查看代码帧信息27

1.4.3  使用thread相关指令操作线程29

1.4.4  其他LLDB常用指令33

1.5  日志与埋点34

1.5.1  异常分析35

1.5.2  使用Bugly异常捕获工具41

1.5.3  应用程序埋点43

1.5.4  使用Fabric分析工具43

第2章  iOS内存管理45

2.1  iOS的内存管理模型45

2.1.1  关于内存消耗与引用计数45

2.1.2  MRC内存管理46

2.1.3  关于ARC49

2.1.4  属性修饰符51

2.1.5  ARC与MRC进行混编53

2.2  自动释放内存54

2.2.1  关于autorelease方法55

2.2.2  自动释放池57

2.2.3  系统维护的自动释放池59

2.3  杜绝内存泄漏60

2.3.1  Block与循环引用61

2.3.2  代理与循环引用63

2.3.3  定时器引起的内存泄漏65

2.4  关于“僵尸”对象66

2.4.1  捕获“僵尸”对象66

2.4.2  处理“僵尸”对象68

2.5  CoreFoundation框架中的内存管理71

2.5.1  CoreFoundation中的引用计数71

2.5.2  CoreFoundation框架与Foundation框架混用72

2.6  扩展:关于id与void*74

2.6.1  关于id类型74

2.6.2  关于void与void*75

2.6.3  解决最初的问题76

第3章  应用程序网络与能耗优化77

3.1  深入iOS网络开发技术77

3.1.1  初识NSURLSession79

3.1.2  NSURLConnection的简单应用83

3.1.3  请求对象NSURLRequest85

3.1.4  请求回执对象NSURLResponse87

3.1.5  数据缓存对象NSURLCache88

3.1.6  本地用户凭证对象NSHTTPCookie90

3.1.7  使用第三方网络诊断库——LDNetDiagnoService_IOS92

3.2  iOS网络开发及优化秘技96

3.2.1  使用Charles抓包工具96

3.2.2  使用Charles进行HTTPS抓包100

3.2.3  使用Charles进行网络环境模拟102

3.2.4  使用Charles添加请求断点104

3.2.5  使用Charles进行数据模拟106

3.2.6  Charles的请求重写功能108

3.2.7  使用Mock.js搭建本地数据模拟服务110

3.2.8  学习使用JSONModel库116

3.2.9  属性自动生成工具121

3.3  定位与地图130

3.3.1  使用定位服务130

3.3.2  原生地图开发133

3.3.3  添加大头针与自定义标注136

3.3.4  添加地图覆盖物138

3.3.5  检索附近兴趣点和导航服务140

3.4  定时器应用146

3.4.1  NSTimer的简单应用146

3.4.2  关于RunLoop的一些探究148

3.4.3  中心化管理NSTimer定时器149

3.4.4  CADisplayLink类的应用153

3.4.5  使用GCD方式的定时器154

第4章  从应用程序启动说起156

4.1  应用程序的启动原理156

4.1.1  深入UIApplication类156

4.1.2  UIApplication相关类别介绍159

4.1.3  关于UIApplicationDelegate162

4.2  本地通知与远程推送166

4.2.1  使用本地推送166

4.2.2  远程推送基础169

4.2.3  深入理解UserNotification框架174

4.3  PushKit框架与CallKit框架189

4.3.1  VoIP与PushKit190

4.3.2  学习使用CallKit框架192

4.3.3  来电拦截与号码识别199

 

第5章  深入iOS视图与动画204

5.1  关于视图控制器204

5.1.1  UIViewController的生命周期204

5.1.2  从StoryBoard加载UIViewController对象的传值陷阱207

5.1.3  关于UIViewController的切换209

5.2  视图控制器的转场动画210

5.2.1  UIViewController的模态跳转转场211

5.2.2  导航转场动画的自定义218

5.2.3  UITabBarController的转场动画221

5.3  列表视图的性能优化221

5.3.1  UITableView的构建原理221

5.3.2  对UITableView可变行高的优化方式224

5.3.3  关于高度不定的列表分区头、尾视图228

5.4  iOS图像绘制技术230

5.4.1  CGPath路径类231

5.4.2  理解图形上下文238

5.4.3  颜色与色彩空间252

5.4.4  图形变换函数258

5.4.5  Patterns模型的应用259

5.4.6  绘制梯度渐变视图263

5.4.7  进行图像处理268

5.4.8  关于层聚合272

5.5  iOS核心动画技术275

5.5.1  初识CoreAnimation275

5.5.2  深入理解CALayer277

5.5.3  几种常用的CALayer子类282

5.5.4  CoreAnimation动画287

 

第6章  iOS多线程开发技术293

6.1  使用NSThread进行线程管理293

6.1.1  NSThread中常用类方法293

6.1.2  NSThread成员方法和属性的应用295

6.1.3  隐式地使用NSThread进行多线程编程296

6.2  NSOperation与NSOperationQueue的应用296

6.2.1  关于Operation基类的解析296

6.2.2  NSBlockOperation类的应用297

6.2.3  NSInvocationOperation类的应用299

6.2.4  操作之间的依赖关系300

6.2.5  NSOperationQueue操作队列的应用301

6.3  学习使用GCD303

6.3.1  GCD的调度机制303

6.3.2  添加任务到调度队列中304

6.3.3  使用队列组305

6.3.4  GCD对循环任务的处理308

6.3.5  GCD中的消息与信号309

6.3.6  队列的挂起与开启310

6.3.7  使用GCD处理延时任务310

6.3.8  数据存取的线程安全问题311

6.3.9  GCD模式的单例313

6.3.10  关于GCD中的内存管理314

第7章  iOS运行时技术315

7.1  动态的Objective-C语言315

7.1.1  窥探消息转发机制316

7.1.2  消息传递与继承链318

7.1.3  拯救未知消息的三根救命稻草320

7.1.4  你真的需要救命稻草吗324

7.1.5  发送消息相关的几个函数328

7.2  运行时方法解析331

7.2.1  与运行时相关的类操作函数332

7.2.2  与运行时相关的实例对象属性操作函数334

7.2.3  与运行时相关的实例对象方法操作函数337

7.2.4  与运行时相关的协议操作函数340

7.3  运行时特性的基本应用341

7.3.1  操作变量的巧妙方法341

7.3.2  操作方法的巧妙方法345

7.4  使用运行时动态修改UILabel的默认字体348

7.4.1  使用框架统一处理348

7.4.2  使用运行时函数替换UILabel的初始化方法348

7.5  设置可自动归档的数据模型基类352

第8章  JavaScript与Native交互技术的应用354

8.1  JavaScriptCore框架详解354

8.1.1  JavaScriptCore框架中的几个核心类355

8.1.2  在Native中运行JavaScript脚本代码356

8.1.3  在JavaScript脚本中调用Objective-C Native方法358

8.1.4  深入JSContext类359

8.1.5  深入JSValue类360

8.1.6  Objective-C与JavaScript复杂对象的映射365

8.1.7  C语言风格的API366

8.1.8  设计Hybird App框架371

8.2  WebKit框架的应用377

8.2.1  WebKit框架概览377

8.2.2  使用WKWebViewConfiguration对WebView进行配置379

8.2.3  WKWebView中的属性和方法解析382

8.2.4  WKWebView中的JavaScript与Native交互384

8.2.5  WKNavigationDelegate协议中的方法解析385

8.2.6  WKUIDelegate协议中的方法解析388

第9章  iOS扩展开发390

9.1  Today扩展的应用390

9.1.1  创建Today扩展程序391

9.1.2  Today扩展与宿主应用程序进行数据交互393

9.2  分享扩展的应用396

9.3  照片编辑扩展399

9.4  自定义键盘扩展400

9.4.1  了解UIInputViewController类400

9.4.2  创建自定义的数字输入键盘401

9.5  iMessage扩展的应用404

9.5.1  开发独立的表情包404

9.5.2  开发寄宿于宿主应用程序的表情包扩展406

9.5.3  开发iMessage App407

9.5.4  对开发iMessage App的几点建议418



极客时间商城店铺主页二维码
极客时间商城
为极致和美好付费
扫描二维码,访问我们的微信店铺

iOS性能优化实战

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏