dex2jar is an open source utils to convert, edit and build apk.
1. sample to operate the tool(translate original apk and repack)
http://code.google.com/p/dex2jar/wiki/ModifyApkWithDexTool
# convert classes.dex in test_apk-debug.apk to test_apk-debug_dex2jar.jar
d2j-dex2jar.sh -f -o test_apk-debug_dex2jar.jar test_apk-debug.apk
# verify jar
d2j-asm-verify.sh test_apk-debug_dex2jar.jar
# convert to jasmin format
d2j-jar2jasmin.sh -f -o test_apk_jasmin test_apk-debug_dex2jar.jar
2.as the tool convert the apk into jasmin format, you need an manual to know what the "*.j" files mean.
if you've been familiar with java-JNI or other IL languages or even assembly language, it will be happier to ref and read the *.j files
https://www.vmth.ucdavis.edu/incoming/Jasmin/jvmref.html
http://pages.cs.wisc.edu/~fischer/cs536.f12/guide.html
3. mostly used code to add an log
;add log here, write whatever you waht to in the string
ldc "test"
ldc "com/test/android/dialer/ds:run()V"
invokestatic android/util/Log/i(Ljava/lang/String;Ljava/lang/String;)I
pop
//============================================
here is a link URL that shows the total steps as an example for ref.
http://dukeland.hk/2013/05/13/android-apk-reverse-engineering-cracking-the-mytv-hd-restriction/
just record and mybe update in future.