I’m diving into some competitive analysis at work for which I had the need to reverse engineer an Android apk. There are some interesting things you can glean from decoding and disassembling application resources.
The best tool I found for the job is ApkTool (https://ibotpeaches.github.io/Apktool/) an open source reverse engineering application for apk files.
The tool allows for both decompiling and recompiling of the apk file if needed.
To disassemble from terminal:
apktool d apkfile.apk
The output produces source in dex format. Android’s version of byte code used by both Dalvik and ART. If like me you are new to all this stuff you will need to review the Delvik bytecode format. Here are some links to help you out