手机APP性能监测技术测试分享
2022-10-13 09:44:48 0 举报
AI智能生成
手机APP性能监测技术测试分享
作者其他创作
大纲/内容
拦截到
调回去
名词约定:原始方法、代理方法
SEL数据类型
IMP数据类型
要点
1.自定义请求和响应
2.提供自定义的全局缓存支持
3.重定向网络请求
4.提供HTTP Mocking (方便前期测试)
5.其他一些全局的网络请求修改需求
6.内容过滤
应用场景
1、定一个NSURLProtocol子类
2、注册这个类
canInitWithRequest:
canonicalRequestForRequest
requestIsCacheEquivalent
startLoading
stopLoading
相关方法
3、NSURLProtocol子类实现
NSURLConnectionDelegate
NSURLConnectionDataDelegate
4.实现代理
5.注销
基本步骤
1.导致递归调用
2.未实现足够的回调
3.崩溃报错
4.httpBody
5.拦截对证书认证影响
坑
拦截UIWebView中的数据
优点
性能不好
缺点
NSURLProtocol
针对一个类
特点
1、用class_addMethod为某类添加“代理方法”
2、调用method_exchangeImplementations交换IMP
3、确保你的“代理方法”调用了“原始方法”
死循环
对类簇不起作用
重复执行
利用block作为IMP
原理
3.Block专成IMP
4.直接替换目标方法
步骤
改进版本
Method swizzling
针对一个对象
修改Isa指针
1、(动态)创建目标类子类
2、(动态)为子类添加方法
object_setClass
3、修改目标对象的isa
KVC
KVO
关于dealloc
场景
Isa swizzling
1、从NSProxy派生一个子类
methodSignatureForSelector
forwardInvocation
responseToSelector
2、实现那三个方法
3、把目标对象的isa指向这个类
Isa swizzling+NSProxy
符号表的修改
fishhook
Runlook观察者/CADisplayLink
sendEvent/addTarget:::
Others
独立进程
WKWebView
TCP数据
不定参数用栈传的
固定参数用寄存器传的
用一个入口拦截任意一个方法
疑难
监控 技术
手机APP性能监测技术测试分享
0 条评论
回复 删除
下一页