运行 class 上的 Soot Jimple 优化器

Running the Soot Jimple Optimizer on a class

是否可以在 SootClass 上 运行 JOP 优化器?我想优化我通过 Java API 使用 Jimple 语句手动生成的 class。据我所知,优化器在解析时只有 运行,所以不是每次在 Jimple 主体被操纵之后。是否可以从 Java 中手动重新运行 此优化?

经过一番搜索,我找到了正确的函数调用!

PhaseOptions.v().setPhaseOption("jop", "enabled:true")
PackManager.v().getPack("jop").apply(jimpleBody)

运行 这在你想要优化的 class 的每个方法体上(jimpleBody 被那个方法体替换),它会 运行 JOP 优化器简单代码。