Ответ 1
Для справочного материала ничто не сравнится с документами dalvik. Вы можете найти их либо в подпроекте dalvik в AOSP, либо теперь доступны в Интернете по адресу http://s.android.com/tech/dalvik/index.html
Формат байтода (или dalvik-bytecode.html в проекте dalvik), вероятно, тот, который вас больше всего интересует. . Dex Format (dex-format.html) также полезен, как и Форматы инструкций (instruction-formats.html)
Для получения более общей информации о байт-коде, http://code.google.com/p/smali/wiki/Registers и http://code.google.com/p/smali/wiki/TypesMethodsAndFields
Вам обязательно понадобятся несколько инструментов. Я, естественно, довольно неравномерен для smali/baksmali, который является единственной доступной ассемблерной/дизассемблерной парой. Существует также дизассемблер, называемый dedexer (но не ассемблер), и dexdump, который поставляется с кодовой базой AOSP и предоставляет дамп низкого уровня файлов dex - не только байт-код, но и все структуры dex (baksmali имеет аналогичный вывод с опцией -D).
Вас также может заинтересовать apktool, который использует smali/baksmali, но также имеет возможность отменить "скомпилированный" xml файлов в apk.
Есть несколько инструментов, которые конвертируют байт-код dalvik обратно в java-байт-код, хотя я не думаю, что они на 100% еще - undx и dex2jar