dxcut is a library for reading, editing, and writing dex and odex files which contain the class definition and Dalvik bytecode used by the Android operating system. This project includes a disassembler/decompiler, dex optimizer, and hooking utils.
jbytecode is a Java bytecode disassembler/assembler written in Python. Dissasembly code is aligned with Java bytecodes in the class file so modification and re-assembly is always possible, even when class is obfuscated.