JADX is a decompilation tool that can produce Java Source code from Dex and Apk files, being capable of providing human-readable java classes, it reverses AndroidManifest.xml files which contains all configuration details for the app & many other resources present as part of the '.apk'.
Ranked in these QuestionsQuestion Ranking
Pro Allows you to see the app structure after decompiling
It provides the app structure and a keyword search function to browse through the decompiled APK helping the user to understand its logic.
Pro Produces human-friendly source code
JADX can decompile .dex files to Java class files, providing readability of the code.
Pro Free and open source
It's licensed under Apache 2.0.
Pro Can save a decompiled app as a gradle project
Allows the user to save a decompiled apk as a Gradle project so it can be easily recognized by common IDE's like Android Studio or Eclipse.
Pro Available as web app yag
Apps can be decompiled using this tool at javadecompilers.com/apk.
Con App decompilation might fail
If the app uses some non-ASCII characters the decompilation will fail.