• Stars
    star
    109
  • Rank 319,077 (Top 7 %)
  • Language
    Objective-C
  • Created over 6 years ago
  • Updated over 6 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

AopTestDemo: iOS埋点统计方案: 1.Method Swizzling 2.AOP编程

AopTestDemo

AopTestDemo: iOS埋点统计方案: 1.Method Swizzling 2.AOP编程

场景需求

  • 统计UIViewController加载次数
  • 统计UIButton点击次数
  • 统计自定义方法的执行
  • 统计UITableView的Cell点击事件

工程说明,首页Test1ViewController,其中有4个按钮,点击第一个按钮打印,第二个到第四个按钮分别跳转到Test2ViewController,Test3ViewController,Test4ViewController。

技术选型:

  • 复制统计的代码逻辑一个个地粘贴到需要统计的类和方法中去。工作量大,可维护性差,仅适用统计埋点极少的情况。
  • 通过运行时Runtime的办法 -- 利用Method Swizzling机制进行方法替换:替换原来的需要在里面统计却不含统计逻辑的方法 为 新的包含了统计逻辑的方法。
  • 通过AOP的方法 -- 利用Aspect框架对需要进行统计的方法进行挂钩(hook),并注入包含了统计逻辑的代码块(block)。

更多了解

简书地址:iOS数据埋点统计方案(附Demo): 运行时Method Swizzling机制与AOP编程(面向切面编程)

More Repositories

1

MessageForwardingDemo

iOS开发·runtime原理与实践: 消息转发篇(Message Forwarding) (类,对象,方法,消息传递,消息转发)
Objective-C
61
star
2

DictToModelDemo

iOS开发·runtime+KVC实现多层字典模型转换(多层数据:模型嵌套模型,模型嵌套数组,数组嵌套模型)
Objective-C
48
star
3

BlockTestApp

iOS中Block的用法,举例,解析与底层原理
C++
44
star
4

SortingForArray

Demo·必会的算法操作:字符串数组排序+模型对象数组排序
Objective-C
39
star
5

RunloopDemo

iOS开发·RunLoop源码与用法完全解析(输入源,定时源,观察者,线程间通信,端口间通信,NSPort,NSMessagePort,NSMachPort,NSPortMessage)
Objective-C
29
star
6

CMKVODemo

iOS开发·KVO用法,原理与底层实现: runtime模拟实现KVO监听机制(Blcok及Delgate方式)
Objective-C
27
star
7

runtime

iOS:关于Runtime的官方源码 (版本:objc4-723)
Objective-C++
25
star
8

CMPdfPreviewDemo

CMPdfPreviewDemo: 一个本地及在线PDF阅读Demo
Objective-C
24
star
9

AssociatedObjectDemo

iOS开发·runtime原理与实践: 关联对象篇(Associated Object)(应用场景:为分类添加“属性”,为UI控件关联事件Block体)
Objective-C
21
star
10

CoreFoudation

iOS:CoreFoundation(包括了runloop等)的官方源代码
C
14
star
11

TransparentNavigationBar_CM

A Demo for Transparent Navigation Bar·透明导航栏小栗子🌰
Objective-C
14
star
12

Demo_FMDB_CM

A demo for FMDB: How to use DataBase and FMDatabaseQueue(一个示例使用DataBase与FMDatabaseQueue的Demo)
Objective-C
12
star
13

iOS_Learning_PDF

The iOS Learning PDF in related blogs
7
star
14

MethodSwizzlingDemo

iOS开发·runtime原理与实践: 方法交换篇(Method Swizzling)(iOS“黑魔法”)
Objective-C
5
star
15

CMPolarCoding

CRC-PolarCode: 5G·循环冗余校验辅助的极化码编码方案研究资料(部分公开版)
MATLAB
3
star
16

ChainBlockTestApp

Demo:简单使用链式编程思想实现一个简单计算器的功能
Objective-C
3
star
17

cimain51.github.io

我的博客
HTML
1
star