package org.jf.dexlib.Interface; /** * * @author Juergen Graf <juergen.graf@gmail.com> * */ public interface DexAnalysis<I extends DexAnalysis.Input> { /** * Currently this can only be called once, because smali stores information in static * variables, that would need to be reinitialized for each run. Some refactoring * will be needed to address this issue. ClassPath.InitializeClassPathFromOdex() * and ClassPath.InitializeClassPath() are the methods to blame. */ DexProgram analyze(I program) throws DexAnalysisException; public interface Input { String toString(); } public static class DexAnalysisException extends Exception { private static final long serialVersionUID = 4473332448782956303L; public DexAnalysisException() { super(); } public DexAnalysisException(final String message) { super(message); } public DexAnalysisException(final Throwable cause) { super(cause); } public DexAnalysisException(final String message, final Throwable cause) { super(message, cause); } } }