第一次遍历Class,收集待插桩method

总体流程都在collect方法中

public HashMap collect(List<File> srcFolderList, List<File> dependencyJarList) {
mTraceConfig.parseBlackFile(mMappingCollector);
//获取base模块已经收集到的待插桩方法
File originMethodMapFile = new File(mTraceConfig.getBaseMethodMap());
getMethodFromBaseMethod(originMethodMapFile);

Log.i(TAG, "[collect] %s method from %s", mCollectedMethodMap.size(), mTraceConfig.getBaseMethodMap());
//转换为混淆后的方法名
retraceMethodMap(mMappingCollector, mCollectedMethodMap);
//仅收集目录、jar包中的class信息
collectMethodFromSrc(srcFolderList, true);
collectMethodFromJar(dependencyJarList, true);
//收集目录、jar包中的method信息
collectMethodFromSrc(srcFolderList, false);
collectMethodFromJar(dependencyJarList, false);
Log.i(TAG, "[collect] incrementCount:%s ignoreMethodCount:%s", mIncrementCount, mIgnoreCount);
//存储待插桩的方法信息到文件
saveCollectedMethod(mMappingCollector);
//存储不需要插桩的方法信息到文件(包括黑名单中的方法)
saveIgnoreCollectedMethod(mMappingCollector);
//返回待插桩的方法集合
return mCollectedMethodMap;

}

posted @ 2019-08-02 21:02  李艳艳665  阅读(107)  评论(0编辑  收藏  举报