解压缩Android Java源代码中使用的方法

时间:2015-04-08 04:15:06

标签: java android parsing

我一直在尝试为我的项目获取Android应用程序的.java文件中使用的方法。我使用了可在Internet上使用的解析器,但它们只解析用户定义的方法或核心java方法。我想提取也是android框架一部分的方法,就像eclipse在Java outline选项卡中显示方法和变量列表一样。

我尝试过使用javaparser,AST Parser和Java API java.lang.reflect.Method。例如,如果我有一个像以下

这样的java文件
public class MainActivity extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getResources().getBoolean(R.bool.portrait_only)) {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        } else {
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
        }
    }

    public void showLogin() {
        registerNumberEditText.setVisibility(View.VISIBLE);
        passwordEditText.setVisibility(View.VISIBLE);
        loginButton.setVisibility(View.VISIBLE);
        textView1.setVisibility(View.INVISIBLE);
        txtProg.setVisibility(View.INVISIBLE);
        loginStat = true;
    }
}

对于上面的代码,我需要代码中使用的方法和参数列表,如

Methods:
     OnCreate
     getResources
     getBoolean
     setRequestedOrientation
     showLogin
     setVisibility

但不是

Methods:
    showLogin

感谢您帮助我...

1 个答案:

答案 0 :(得分:2)

我认为java reflection API在这种情况下工作正常,请尝试下面的代码:

for (Method m:MainActivity.class.getMethods()){
        System.out.println(m.getName());
    }