smali is an assembler/disassembler for the dex format used by dalvik, Android's Java VM implementation. The syntax is loosely based on Jasmin's/dedexer's syntax, and supports the full functionality of the dex format (annotations, debug info, line info, etc.)
Androguard is mainly a tool written in python to play with:
Androguard is available for Linux/OSX/Windows.
This project makes it easy to convert an installed Android app that was built with the Android SDK into readable source files.
This is a Decompiler that extracts the source code of an Android application (including XML files and image assets). Works directly from your android device.
Enjarify is a tool for translating Dalvik bytecode to equivalent Java bytecode. This allows Java analysis tools to analyze Android applications.
ClassyShark is a handy browser for Android executables. It has clients for both Android (apk) and Desktop (jar). With ClassyShark you can open APK/Zip/Class/Jar files and analyze their contents.
The Android Decompile is a script that combines different tools for successfully decompiling any Android package (APK) to it's Java source-code and resources (including the AndroidManifest.xml, 9-patches, layout files, etc.).
JAva Decompiler is not maintained decompiler for the Java programming language, but it is still a powerful tool.