Apk Dependency Graph (ADG)
Class dependency visualizer. Only
apk file is needed. Class coupling is one of the significant code metrics that shows how easy is to change, maintain and test the code. This tool helps to view whole picture of the project.
Table of contents
Some helpful scripts are prepared for you. All you need to do is to download and unpack the latest release and type the next command in your command line:
run.bat full\path\to\the\apk\app-release.apk full\path\to\the\filterset.json
run.batis a path to script in your local repository
full\path\to\the\apk\app-release.apkis a full path to the apk file you want to analize
full\path\to\the\filterset.jsonis a full path to the filterset file
./run.sh full/path/to/the/apk/app-release.apk full/path/to/the/filterset.json
Wait until the command finishes:
Baksmaling classes.dex... Analyzing dependencies... Success! Now open index.html in your browser.
It will decompile your apk and create
output/apk-file-name folder in the same folder where the script is. After this it will analyze the smali code and generate
gui/analyzed.js file which contains all dependencies.Now open
gui/index.html in your browser and enjoy!
At least Java 8 is needed to compile and run the
Ways to compile
>> gradle build (Gradle 5.0 or newer)
>> ant (Ant)
>> gradlew build (Gradle Wrapper)
Classes will be generated to
build/classes folder and jar file will appear onto
To get more information please check our wiki page.
Does your project look like the first or the second picture? :)
Watch demo video.
I want to say thank you to all the people who made even tiny pull request. This project is intended to improve current state of Android architecture all over the world so each detail is important. In the contributors page you can find a list of people who have found some time to improve this tool.
There is the same tool for iOS: https://github.com/PaulTaykalo/objc-dependency-visualizer I have used
gui/index.html of that project. Thanks Paul for the great tool.