使用WALA调用android分析中缺少的调用图节点

时间:2014-03-10 14:28:09

标签: android call-graph

我正在使用WALA为简单的Android应用程序构建“onCreate”方法的调用图。以下是代码段:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Camera mCamera = Camera.open();
    mCamera.release();
}

但是,调用图中有一些缺少的节点。 调用图如下:

的onCreate(...)

-onCreate(...)

-setContentView(...)

-open(...)

如您所见,缺少release()。

怎么会发生? 欢迎任何建议。

1 个答案:

答案 0 :(得分:1)

您需要在分析中包含android.jar(随SDK提供)。为了让WALA能够识别所有包裹。请务必使用与您的代码级别匹配的android.jar版本。

您可以将其添加为额外的原始或应用程序节点,具体取决于您的需求。

但是,如果您计划分析android API,则需要找到一个完整的android.jar,因为SDK中提供的只有stub方法。 This项目准备好了一些完整的android.jar。如果你需要的只是在没有API调用的情况下单独分析应用程序代码,那么SDK中的android.jar就可以了。