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
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.