查找哪个模块导入了另一个模块

Find which module imported another module

我需要找出为什么某些模块会包含在编译中。

有一些 class 不应包括在内,我认为有一些未使用的导入或不良架构需要不必要的导入。有没有办法找到哪些模块导入了某个模块,哪些模块导入了包含该模块的这些模块,等等,一直追踪到应用程序的主要class?

您可以为此使用 -D dump-dependencies,在这种情况下,编译器将生成两个文件,可用于在两个方向上遵循依赖关系图:

  • dump/<target>/.dependants.dump
  • dump/<target>/.dependencies.dump

还有一个 handy online tool created by Mark Knol 对分析这些文件有很大帮助。要回答问题 "what does Array depend on?",您只需上传这两个文件并在搜索字段中输入 "array":

方便的是,结果也是可点击的。

我想到了一个很简单的想法:删除这个文件,导入这个模块的地方就会出现编译错误