LFProjectMonitor 1.0.0

LFProjectMonitor 1.0.0

Lam TsanFeng 维护。



  • lincf0912

LFProjectMonitor

简单嵌入项目并监听,便于移除或关闭监听。不影响项目结构与代码。

  • 监听 UI Controller
    1. 是否被持有(关闭后没有被释放)
    2. 当前显示的 Controller 类名(便于接触了解项目)
  • 监听 UI 的点击事件
    1. 具体的点击坐标、点击状态、被点击的类名、点击触发的方法
  • 监听 UI 响应的卡顿(真机测试)
    1. 假定连续 3 次超时 90ms 认为卡顿(也包含了单次超时 90ms)
  • 监听方法响应时间(真机 64 位测试)
    1. 拦截 objc_msgSend 的 before 与 after 之间的耗时

监听开启后会在控制台输出,同时也会记录在 Documents/ProjectMonitor 目录下。

## 如何使用

创建一个任意文件,重写 +load 方法,内容如下:

+ (void)load
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
    
        /** 创建管理器 */
        MonitorManager *manager = [MonitorManager new];
        
        /** 创建监听模式 */
        
        /** UI销毁 */
        MonitorBase *muid = [MonitorUIDestroy new];
        [manager addMonitor:muid];
        
        /** 屏幕点击 */
        MonitorBase *muit = [MonitorUITouch new];
        [manager addMonitor:muit];

        /** 卡顿 */
        MonitorBase *muis = [MonitorUIStutter new];
        [manager addMonitor:muis];
        
        /** 方法耗时监控,必须真机64位 */
        MonitorBase *mumtc = [MonitorMethodTimeCost new];
        [manager addMonitor:mumtc];
        
        /** 执行组合模式 */
        [manager execute];
    });
}