如何锁定线程创建者

105 阅读1分钟

锁定线程创建背景

项目变大之后收敛线程

项目源码、三方库、aar中都有线程的创建

避免恶化的一种监控预防手段

锁定线程创建方案

分析

创建线程的位置获取堆栈

所有的异步方式,都会走到new Thread

hook Thead的构造函数

DexposedBridge.hookAllConstructors(Thread.class, new XC_MethodHook() {
            @Override
            protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                super.afterHookedMethod(param);
                Thread thread = (Thread) param.thisObject;
                LogUtils.i(thread.getName()+" stack "+Log.getStackTraceString(new Throwable()));
            }
        });