Skip to content
Alex Zaitsev edited this page Jul 16, 2019 · 12 revisions

To build a graph of your dependencies you only need an apk file.

We need to perform the next operations to get the graph:

  1. decompile apk to smali code
  2. analyze smali code and build .js file with dependencies
  3. display the graph

We're using the next technologies to archieve our goals:

  1. backsmali is used to decompile apk to smali code
  2. apk-dependency-graph is used to analyze smali code and build .js file with dependencies
  3. html page with d3 support (this is a js library) is used to display the graph

Now let's understand the structure of this project:

  1. src folder contains apk-dependency-graph source and test code, build folder contains apk-dependency-graph.jar file (build folder needs to be generated, it's not included in source code but can be found in release archives)
  2. gui folder contains generated analyzed.js file, index.html to display the graph and other scripts
  3. filters folder contains filtersets. Each project can have one or more filtersets. It's very useful and allows to create simple and beautiful graphs so don't ignore them.
  4. root folder contains run scripts, ant build config and gradle build config.

I hope that now you have better understanding of what is going on there :) Don't hesitate to create issues with bugs or questions.

Want to contribute? Issues page is a good place to start.
Clone this wiki locally