书籍详情
iOS全埋点解决方案
作者:王灼洲 著
出版社:机械工业出版社
出版时间:2020-06-01
ISBN:9787111653622
定价:¥89.00
购买这本书可以去
内容简介
本书从实战角度全面讲解了iOS全埋点技术和解决方案,为基于iOS系统的各种数据采集场景提供详尽的指导。 本书由神策数据官方出品,总结了他们过去为1000余家企业客户提供服务的实践经验。执笔人是神策数据合肥研发中心负责人,在Android & iOS等领域有10年的研发经验,对各种数据采集技术和解决方案都有深入研究,开发和维护着国内第一个商用的开源 Android & iOS 数据埋点 SDK。 全书一共14章: 第1~2章介绍了数据采集SDK框架的搭建,以及应用程序的退出和启动,这是实现iOS全埋点的基础; 第3~6章依次详细讲解了页面浏览事件、控件点击事件、UITableView和UICollection View点击事件、手势采集等场景的全埋点技术和解决方案; 第7~14章分别讲解了用户标识、时间相关、数据存储、数据同步、采集崩溃、App 与 H5 打通、App Extension React Native等场景的全埋点技术和解决方案。 所有的解决方案都提供了完整的项目源代码,具有极强的实操性。
作者简介
王灼洲 资深移动开发技术专家,目前就职于神策网络科技(北京)有限公司,担任合肥研发中心负责人,是公司最早的核心骨干。 有10年的Android & iOS开发经验,是国内第一批Android研发工程师。对基于Android和iOS系统的各种客户端和服务端的数据采集技术和解决方案都有深入研究,开发和维护着国内第一个商用的开源 Android & iOS 数据埋点 SDK。 著有《Android全埋点解决方案》一书,在行业里引起了巨大的反响。
目录
推荐序
前言
第1章 数据采集SDK1
1.1 数据采集SDK简介1
1.2 搭建SDK框架3
1.2.1 新建Cocoa Touch Framework3
1.2.2 新建Workspace4
1.2.3 新建Demo工程7
1.2.4 添加依赖关系10
1.2.5 编写埋点SDK10
1.2.6 Demo集成埋点SDK18
第2章 应用程序退出和启动20
2.1 全埋点简介20
2.2 应用程序退出21
2.2.1 应用程序状态21
2.2.2 实现步骤22
2.3 应用程序启动24
2.3.1 实现步骤24
2.3.2 优化26
2.4 被动启动28
2.4.1 Background Modes29
2.4.2 实现步骤30
2.4.3 优化33
第3章 页面浏览事件36
3.1 UIViewController 生命周期36
3.2 Method Swizzling37
3.2.1 Method Swizzling基础37
3.2.2 实现Method Swizzling的相关函数39
3.2.3 实现Method Swizzling40
3.3 实现页面浏览事件全埋点42
3.3.1 实现步骤42
3.3.2 优化45
3.3.3 扩展48
3.3.4 遗留问题52
第4章 控件点击事件53
4.1 Target-Action53
4.2 方案一54
4.2.1 实现步骤55
4.2.2 优化$AppClick事件57
4.2.3 支持更多控件65
4.3 方案二70
4.3.1 实现步骤70
4.3.2 支持更多控件75
4.4 方案总结78
第5章 UITableView和UICollection-View点击事件80
5.1 支持UITableView控件80
5.1.1 方案一:方法交换80
5.1.2 方案二:动态子类86
5.1.3 方案三:消息转发93
5.1.4 三种方案的总结102
5.1.5 优化103
5.2 支持UICollectionView控件107
第6章 手势采集112
6.1 手势识别器112
6.2 手势全埋点114
6.2.1 UITapGestureRecognizer全埋点114
6.2.2 UILongPressGestureRecognizer全埋点118
第7章 用户标识121
7.1 登录之前122
7.1.1 UDID122
7.1.2 UUID125
7.1.3 MAC地址126
7.1.4 IDFA128
7.1.5 IDFV129
7.1.6 IMEI130
7.1.7 实践130
7.2 登录之后140
第8章 时间相关144
8.1 事件发生的时间戳145
8.2 统计事件持续时长147
8.2.1 实现步骤147
8.2.2 事件的暂停和恢复152
8.2.3 后台状态下的事件时长155
8.3 全埋点事件时长158
8.3.1 $AppEnd事件时长158
8.3.2 $AppViewScreen 事件时长160
第9章 数据存储162
9.1 数据存储策略162
9.1.1 沙盒163
9.1.2 数据缓存165
9.2 文件缓存166
9.2.1 实现步骤166
9.2.2 优化174
9.2.3 总结179
9.3 数据库缓存179
9.3.1 实现步骤179
9.3.2 优化190
9.3.3 总结197
第10章 数据同步198
10.1 同步数据198
10.1.1 Foundation简介198
10.1.2 同步数据202
10.2 数据同步策略212
10.2.1 基本原则212
10.2.2 策略一214
10.2.3 策略二215
10.2.4 策略三220
第11章 采集崩溃223
11.1 NSException异常223
11.1.1 捕获NSException 异常224
11.1.2 传递UncaughtException-Handler227
11.2 捕获信号229
11.2.1 Mach 异常和Unix 信号230
11.2.2 捕获Unix信号异常231
11.3 采集应用程序异常时的$AppEnd事件235
第12章 App与H5打通238
12.1 App与H5打通原因238
12.2 方案一:拦截请求239
12.2.1 修改UserAgent239
12.2.2 是否拦截243
12.2.3 二次加工H5事件244
12.2.4 拦截246
12.2.5 测试验证247
12.3 方案二:JavaScript与WebView相互调用255
第13章 App Extension259
13.1 App Extension介绍259
13.1.1 App Extension类型259
13.1.2 App Extension 生命周期261
13.1.3 App Extension通信261
13.1.4 App Extension示例262
13.2 App Extension埋点270
第14章 React Native全埋点283
14.1 React Native 简介283
14.1.1 创建项目283
14.1.2 基础控件286
14.2 React Native全埋点293
14.2.1 事件响应293
14.2.2 $AppClick 事件295
前言
第1章 数据采集SDK1
1.1 数据采集SDK简介1
1.2 搭建SDK框架3
1.2.1 新建Cocoa Touch Framework3
1.2.2 新建Workspace4
1.2.3 新建Demo工程7
1.2.4 添加依赖关系10
1.2.5 编写埋点SDK10
1.2.6 Demo集成埋点SDK18
第2章 应用程序退出和启动20
2.1 全埋点简介20
2.2 应用程序退出21
2.2.1 应用程序状态21
2.2.2 实现步骤22
2.3 应用程序启动24
2.3.1 实现步骤24
2.3.2 优化26
2.4 被动启动28
2.4.1 Background Modes29
2.4.2 实现步骤30
2.4.3 优化33
第3章 页面浏览事件36
3.1 UIViewController 生命周期36
3.2 Method Swizzling37
3.2.1 Method Swizzling基础37
3.2.2 实现Method Swizzling的相关函数39
3.2.3 实现Method Swizzling40
3.3 实现页面浏览事件全埋点42
3.3.1 实现步骤42
3.3.2 优化45
3.3.3 扩展48
3.3.4 遗留问题52
第4章 控件点击事件53
4.1 Target-Action53
4.2 方案一54
4.2.1 实现步骤55
4.2.2 优化$AppClick事件57
4.2.3 支持更多控件65
4.3 方案二70
4.3.1 实现步骤70
4.3.2 支持更多控件75
4.4 方案总结78
第5章 UITableView和UICollection-View点击事件80
5.1 支持UITableView控件80
5.1.1 方案一:方法交换80
5.1.2 方案二:动态子类86
5.1.3 方案三:消息转发93
5.1.4 三种方案的总结102
5.1.5 优化103
5.2 支持UICollectionView控件107
第6章 手势采集112
6.1 手势识别器112
6.2 手势全埋点114
6.2.1 UITapGestureRecognizer全埋点114
6.2.2 UILongPressGestureRecognizer全埋点118
第7章 用户标识121
7.1 登录之前122
7.1.1 UDID122
7.1.2 UUID125
7.1.3 MAC地址126
7.1.4 IDFA128
7.1.5 IDFV129
7.1.6 IMEI130
7.1.7 实践130
7.2 登录之后140
第8章 时间相关144
8.1 事件发生的时间戳145
8.2 统计事件持续时长147
8.2.1 实现步骤147
8.2.2 事件的暂停和恢复152
8.2.3 后台状态下的事件时长155
8.3 全埋点事件时长158
8.3.1 $AppEnd事件时长158
8.3.2 $AppViewScreen 事件时长160
第9章 数据存储162
9.1 数据存储策略162
9.1.1 沙盒163
9.1.2 数据缓存165
9.2 文件缓存166
9.2.1 实现步骤166
9.2.2 优化174
9.2.3 总结179
9.3 数据库缓存179
9.3.1 实现步骤179
9.3.2 优化190
9.3.3 总结197
第10章 数据同步198
10.1 同步数据198
10.1.1 Foundation简介198
10.1.2 同步数据202
10.2 数据同步策略212
10.2.1 基本原则212
10.2.2 策略一214
10.2.3 策略二215
10.2.4 策略三220
第11章 采集崩溃223
11.1 NSException异常223
11.1.1 捕获NSException 异常224
11.1.2 传递UncaughtException-Handler227
11.2 捕获信号229
11.2.1 Mach 异常和Unix 信号230
11.2.2 捕获Unix信号异常231
11.3 采集应用程序异常时的$AppEnd事件235
第12章 App与H5打通238
12.1 App与H5打通原因238
12.2 方案一:拦截请求239
12.2.1 修改UserAgent239
12.2.2 是否拦截243
12.2.3 二次加工H5事件244
12.2.4 拦截246
12.2.5 测试验证247
12.3 方案二:JavaScript与WebView相互调用255
第13章 App Extension259
13.1 App Extension介绍259
13.1.1 App Extension类型259
13.1.2 App Extension 生命周期261
13.1.3 App Extension通信261
13.1.4 App Extension示例262
13.2 App Extension埋点270
第14章 React Native全埋点283
14.1 React Native 简介283
14.1.1 创建项目283
14.1.2 基础控件286
14.2 React Native全埋点293
14.2.1 事件响应293
14.2.2 $AppClick 事件295
猜您喜欢