Я слышал про apktool + dex2jar + jd-gui
Apktool, который основан на smali, сравнительно "годен" именно как дизассемблер и ассемблер "обратно", не путать с декомпиляцией, а JD-gui это "ширпотреб" как и Fernflower (IntelliJ IDEA Decompiler, AndroChef Decompiler), есть декомпиляторы менее популярные но в чем-то гораздо более эффективные, у меня уже девять декомпиляторов Java, и все "годные", не декомпилируется функция одним, я беру другой, а еще вы про отладку забыли, и если JNI то еще нужен NDK (именно весь, а не только gdb) и IDA + Hex-Rays.