Show me the code! – By Davanum Srinivas

November 25, 2007

[HOWTO] Poke into the dex file

Filed under: Uncategorized — Davanum Srinivas @ 3:07 pm

Just use the dexdump utility after you start “adb shell”

# cd data
cd data
# cd dalvik*cache
cd dalvik*cache
# ls *XMPP*
ls *XMPP*
-rw-rw-rw- app_8    app_8       12700 2007-11-22 15:27 data@app@XMPPSender.apk@classes.dex
# dexdump -d -f -g -C data@app@XMPPSender.apk@classes.dex
dexdump -d -f -g -C data@app@XMPPSender.apk@classes.dex
unknown option -- gdexdump: [-f] [-h] dexfile...

 -d : disassemble code sections
 -f : display summary information from file header
 -h : display file header details
 -C : decode (demangle) low-level symbol names
 -S : compute sizes only
# dexdump -d -f -h -C data@app@XMPPSender.apk@classes.dex
dexdump -d -f -h -C data@app@XMPPSender.apk@classes.dex
Processing 'data@app@XMPPSender.apk@classes.dex'...
Loaded 'data@app@XMPPSender.apk@classes.dex', DEX version '009'
DEX file header:
magic               : 'dex
009'
checksum            : db7b0e2c
signature           : 744b...9100
file_size           : 11900
header_size         : 92
link_size           : 0
link_off            : 0 (0x000000)
string_ids_size     : 188
string_ids_off      : 92 (0x00005c)
string_objects_size : 9
class_ids_size      : 29
class_ids_off       : 1596 (0x00063c)
field_ids_size      : 28
field_ids_off       : 1712 (0x0006b0)
method_ids_size     : 61
method_ids_off      : 2048 (0x000800)
class_defs_size     : 9
class_defs_off      : 2780 (0x000adc)

Class #0 header:
class_idx           : 12
access_flags        : 131089 (0x20011)
superclass_idx      : 14
interfaces_off      : 0 (0x000000)
sfields_off         : 0 (0x000000)
ifields_off         : 0 (0x000000)
dmeths_off          : 3072 (0x000c00)
vmeths_off          : 0 (0x000000)

Class #0            -
  Class name        : 'org/apache/xmpp/R'
  Access flags      : 0x20011 (PUBLIC FINAL OPTIMIZED)
  Superclass        : 'java/lang/Object'
  Interfaces        -
  Static fields     -
  Instance fields   -
  Direct methods    -
    #0              : (in org/apache/xmpp/R)
      name          : ''
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      source_idx    : 79
      insns         : 6 16-bit code units
0017e4:                                        |[0017e4] org/apache/xmpp/R.:()V
0017e8: 0720                                   |0000: move-object v0, v2
0017ea: 0701                                   |0001: move-object v1, v0
0017ec: f001 1800 0100                         |0002: +invoke-direct-empty {v1}, java/lang/Object.:()V // method@0018
0017f2: 0e00                                   |0005: return-void
      exceptions    : (none)
      positions     : 2
        0x0000 line=10
        0x0005 line=22
      locals        : 1
        0x0001 - 0x0006 reg=0 this Lorg/apache/xmpp/R;

  Virtual methods   -

Class #1 header:
class_idx           : 18
access_flags        : 131089 (0x20011)
superclass_idx      : 14
interfaces_off      : 0 (0x000000)
sfields_off         : 0 (0x000000)
ifields_off         : 0 (0x000000)
dmeths_off          : 3092 (0x000c14)
vmeths_off          : 0 (0x000000)

Class #1            -
  Class name        : 'org/apache/xmpp/R$attr'
  Access flags      : 0x20011 (PUBLIC FINAL OPTIMIZED)
  Superclass        : 'java/lang/Object'
  Interfaces        -
  Static fields     -
  Instance fields   -
  Direct methods    -
    #0              : (in org/apache/xmpp/R$attr)
      name          : ''
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      source_idx    : 79
      insns         : 6 16-bit code units
0017f4:                                        |[0017f4] org/apache/xmpp/R$attr.:()V
0017f8: 0720                                   |0000: move-object v0, v2
0017fa: 0701                                   |0001: move-object v1, v0
0017fc: f001 1800 0100                         |0002: +invoke-direct-empty {v1}, java/lang/Object.:()V // method@0018
001802: 0e00                                   |0005: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=11
      locals        : 1
        0x0001 - 0x0006 reg=0 this Lorg/apache/xmpp/R$attr;

  Virtual methods   -

Class #2 header:
class_idx           : 1
access_flags        : 131089 (0x20011)
superclass_idx      : 14
interfaces_off      : 0 (0x000000)
sfields_off         : 3112 (0x000c28)
ifields_off         : 0 (0x000000)
dmeths_off          : 3184 (0x000c70)
vmeths_off          : 0 (0x000000)

Class #2            -
  Class name        : 'org/apache/xmpp/R$id'
  Access flags      : 0x20011 (PUBLIC FINAL OPTIMIZED)
  Superclass        : 'java/lang/Object'
  Interfaces        -
  Static fields     -
    #0              : (in org/apache/xmpp/R$id)
      name          : 'fetch'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f040003
    #1              : (in org/apache/xmpp/R$id)
      name          : 'message_text'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f040001
    #2              : (in org/apache/xmpp/R$id)
      name          : 'send'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f040002
    #3              : (in org/apache/xmpp/R$id)
      name          : 'username'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f040000
  Instance fields   -
  Direct methods    -
    #0              : (in org/apache/xmpp/R$id)
      name          : ''
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      source_idx    : 79
      insns         : 6 16-bit code units
001804:                                        |[001804] org/apache/xmpp/R$id.:()V
001808: 0720                                   |0000: move-object v0, v2
00180a: 0701                                   |0001: move-object v1, v0
00180c: f001 1800 0100                         |0002: +invoke-direct-empty {v1}, java/lang/Object.:()V // method@0018
001812: 0e00                                   |0005: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=13
      locals        : 1
        0x0001 - 0x0006 reg=0 this Lorg/apache/xmpp/R$id;

  Virtual methods   -

Class #3 header:
class_idx           : 26
access_flags        : 131089 (0x20011)
superclass_idx      : 14
interfaces_off      : 0 (0x000000)
sfields_off         : 3208 (0x000c88)
ifields_off         : 0 (0x000000)
dmeths_off          : 3232 (0x000ca0)
vmeths_off          : 0 (0x000000)

Class #3            -
  Class name        : 'org/apache/xmpp/R$layout'
  Access flags      : 0x20011 (PUBLIC FINAL OPTIMIZED)
  Superclass        : 'java/lang/Object'
  Interfaces        -
  Static fields     -
    #0              : (in org/apache/xmpp/R$layout)
      name          : 'main'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f020000
  Instance fields   -
  Direct methods    -
    #0              : (in org/apache/xmpp/R$layout)
      name          : ''
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      source_idx    : 79
      insns         : 6 16-bit code units
001814:                                        |[001814] org/apache/xmpp/R$layout.:()V
001818: 0720                                   |0000: move-object v0, v2
00181a: 0701                                   |0001: move-object v1, v0
00181c: f001 1800 0100                         |0002: +invoke-direct-empty {v1}, java/lang/Object.:()V // method@0018
001822: 0e00                                   |0005: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=19
      locals        : 1
        0x0001 - 0x0006 reg=0 this Lorg/apache/xmpp/R$layout;

  Virtual methods   -

Class #4 header:
class_idx           : 17
access_flags        : 131089 (0x20011)
superclass_idx      : 14
interfaces_off      : 0 (0x000000)
sfields_off         : 3256 (0x000cb8)
ifields_off         : 0 (0x000000)
dmeths_off          : 3424 (0x000d60)
vmeths_off          : 0 (0x000000)

Class #4            -
  Class name        : 'org/apache/xmpp/R$string'
  Access flags      : 0x20011 (PUBLIC FINAL OPTIMIZED)
  Superclass        : 'java/lang/Object'
  Interfaces        -
  Static fields     -
    #0              : (in org/apache/xmpp/R$string)
      name          : 'app_name'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f030000
    #1              : (in org/apache/xmpp/R$string)
      name          : 'found_stale_xmpp_service'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f030009
    #2              : (in org/apache/xmpp/R$string)
      name          : 'invalid_username'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f030006
    #3              : (in org/apache/xmpp/R$string)
      name          : 'message_text'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f030004
    #4              : (in org/apache/xmpp/R$string)
      name          : 'send_message'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f030005
    #5              : (in org/apache/xmpp/R$string)
      name          : 'xmpp_data_message_sender'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f030001
    #6              : (in org/apache/xmpp/R$string)
      name          : 'xmpp_send_message_sender_desc'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f030002
    #7              : (in org/apache/xmpp/R$string)
      name          : 'xmpp_service_not_connected'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f030007
    #8              : (in org/apache/xmpp/R$string)
      name          : 'xmpp_session_not_found'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f030008
    #9              : (in org/apache/xmpp/R$string)
      name          : 'xmpp_username'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f030003
  Instance fields   -
  Direct methods    -
    #0              : (in org/apache/xmpp/R$string)
      name          : ''
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      source_idx    : 79
      insns         : 6 16-bit code units
001824:                                        |[001824] org/apache/xmpp/R$string.:()V
001828: 0720                                   |0000: move-object v0, v2
00182a: 0701                                   |0001: move-object v1, v0
00182c: f001 1800 0100                         |0002: +invoke-direct-empty {v1}, java/lang/Object.:()V // method@0018
001832: 0e00                                   |0005: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=22
      locals        : 1
        0x0001 - 0x0006 reg=0 this Lorg/apache/xmpp/R$string;

  Virtual methods   -

Class #5 header:
class_idx           : 7
access_flags        : 131073 (0x20001)
superclass_idx      : 5
interfaces_off      : 0 (0x000000)
sfields_off         : 3448 (0x000d78)
ifields_off         : 3472 (0x000d90)
dmeths_off          : 3532 (0x000dcc)
vmeths_off          : 3648 (0x000e40)

Class #5            -
  Class name        : 'org/apache/xmpp/XMPPSender'
  Access flags      : 0x20001 (PUBLIC OPTIMIZED)
  Superclass        : 'android/app/Activity'
  Interfaces        -
  Static fields     -
    #0              : (in org/apache/xmpp/XMPPSender)
      name          : 'LOG_TAG'
      type          : 'Ljava/lang/String;'
      access        : 0x001a (PRIVATE STATIC FINAL)
      constantValue : 0x00000003
  Instance fields   -
    #0              : (in org/apache/xmpp/XMPPSender)
      name          : 'mXmppSession'
      type          : 'Lcom/google/android/xmppService/IXmppSession;'
      access        : 0x0000 ()
    #1              : (in org/apache/xmpp/XMPPSender)
      name          : 'mUsernameField'
      type          : 'Landroid/widget/EditText;'
      access        : 0x0000 ()
    #2              : (in org/apache/xmpp/XMPPSender)
      name          : 'mTextField'
      type          : 'Landroid/widget/EditText;'
      access        : 0x0000 ()
    #3              : (in org/apache/xmpp/XMPPSender)
      name          : 'mSendButton'
      type          : 'Landroid/widget/Button;'
      access        : 0x0000 ()
    #4              : (in org/apache/xmpp/XMPPSender)
      name          : 'mFetchButton'
      type          : 'Landroid/widget/Button;'
      access        : 0x0000 ()
    #5              : (in org/apache/xmpp/XMPPSender)
      name          : 'mConnection'
      type          : 'Landroid/content/ServiceConnection;'
      access        : 0x0002 (PRIVATE)
    #6              : (in org/apache/xmpp/XMPPSender)
      name          : 'mOnClickListener'
      type          : 'Landroid/view/View$OnClickListener;'
      access        : 0x0002 (PRIVATE)
  Direct methods    -
    #0              : (in org/apache/xmpp/XMPPSender)
      name          : ''
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 7
      ins           : 1
      outs          : 2
      source_idx    : 80
      insns         : 34 16-bit code units
001834:                                        |[001834] org/apache/xmpp/XMPPSender.:()V
001838: 0760                                   |0000: move-object v0, v6
00183a: 0701                                   |0001: move-object v1, v0
00183c: 6f01 0000 0100                         |0002: invoke-direct {v1}, android/app/Activity.:()V // method@0000
001842: 0701                                   |0005: move-object v1, v0
001844: 1202                                   |0006: const/4 v2, #int 0 // #0
001846: f712 8800                              |0007: +iput-object-quick v2, v1, [obj+0088]
00184a: 0701                                   |0009: move-object v1, v0
00184c: 2102 0300                              |000a: new-instance v2, org/apache/xmpp/XMPPSender$2 // class@0003
001850: 0725                                   |000c: move-object v5, v2
001852: 0752                                   |000d: move-object v2, v5
001854: 0753                                   |000e: move-object v3, v5
001856: 0704                                   |000f: move-object v4, v0
001858: 6f02 3800 4300                         |0010: invoke-direct {v3, v4}, org/apache/xmpp/XMPPSender$2.:(Lorg/apache/xmpp/XMPPSender;)V // method@0038

00185e: f712 9c00                              |0013: +iput-object-quick v2, v1, [obj+009c]
001862: 0701                                   |0015: move-object v1, v0
001864: 2102 0f00                              |0016: new-instance v2, org/apache/xmpp/XMPPSender$3 // class@000f
001868: 0725                                   |0018: move-object v5, v2
00186a: 0752                                   |0019: move-object v2, v5
00186c: 0753                                   |001a: move-object v3, v5
00186e: 0704                                   |001b: move-object v4, v0
001870: 6f02 3b00 4300                         |001c: invoke-direct {v3, v4}, org/apache/xmpp/XMPPSender$3.:(Lorg/apache/xmpp/XMPPSender;)V // method@003b

001876: f712 a000                              |001f: +iput-object-quick v2, v1, [obj+00a0]
00187a: 0e00                                   |0021: return-void
      exceptions    : (none)
      positions     : 4
        0x0000 line=39
        0x0005 line=42
        0x0009 line=113
        0x0015 line=146
      locals        : 1
        0x0001 - 0x0022 reg=0 this Lorg/apache/xmpp/XMPPSender;

    #1              : (in org/apache/xmpp/XMPPSender)
      name          : 'bindXmppService'
      type          : '()V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 8
      ins           : 1
      outs          : 5
      source_idx    : 80
      insns         : 26 16-bit code units
00187c:                                        |[00187c] org/apache/xmpp/XMPPSender.bindXmppService:()V
001880: 0770                                   |0000: move-object v0, v7
001882: 0701                                   |0001: move-object v1, v0
001884: 2102 0900                              |0002: new-instance v2, android/content/Intent // class@0009
001888: 0726                                   |0004: move-object v6, v2
00188a: 0762                                   |0005: move-object v2, v6
00188c: 0763                                   |0006: move-object v3, v6
00188e: 6f01 0400 0300                         |0007: invoke-direct {v3}, android/content/Intent.:()V // method@0004
001894: 6103 0100                              |000a: sget-object v3, com/google/android/xmppService/XmppConstants.XMPP_SERVICE_COMPONENT:Landroid/content/Compo
nentName; // field@0001
001898: f802 2700 3200                         |000c: +invoke-virtual-quick {v2, v3}, [0027] // vtable #0027
00189e: 0c02                                   |000f: move-result-object v2
0018a0: 1203                                   |0010: const/4 v3, #int 0 // #0
0018a2: 0704                                   |0011: move-object v4, v0
0018a4: f444 9c00                              |0012: +iget-object-quick v4, v4, [obj+009c]
0018a8: 1205                                   |0014: const/4 v5, #int 0 // #0
0018aa: f905 3500 0100                         |0015: +invoke-virtual-quick/range {v1, v2, v3, v4, v5}, [0035] // vtable #0035
0018b0: 0a01                                   |0018: move-result v1
0018b2: 0e00                                   |0019: return-void
      exceptions    : (none)
      positions     : 2
        0x0000 line=89
        0x0019 line=92
      locals        : 1
        0x0001 - 0x001a reg=0 this Lorg/apache/xmpp/XMPPSender;

    #2              : (in org/apache/xmpp/XMPPSender)
      name          : 'isValidUsername'
      type          : '(Ljava/lang/String;)Z'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 6
      ins           : 2
      outs          : 2
      source_idx    : 80
      insns         : 28 16-bit code units
0018b4:                                        |[0018b4] org/apache/xmpp/XMPPSender.isValidUsername:(Ljava/lang/String;)Z
0018b8: 0740                                   |0000: move-object v0, v4
0018ba: 0751                                   |0001: move-object v1, v5
0018bc: 0712                                   |0002: move-object v2, v1
0018be: 7001 0a00 0200                         |0003: invoke-static {v2}, android/text/TextUtils.isEmpty:(Ljava/lang/CharSequence;)Z // method@000a
0018c4: 0a02                                   |0006: move-result v2
0018c6: 3d02 0500                              |0007: if-eqz v2, 000c // +0005
0018ca: 1202                                   |0009: const/4 v2, #int 0 // #0
0018cc: 0120                                   |000a: move v0, v2
0018ce: 0f00                                   |000b: return v0
0018d0: 0712                                   |000c: move-object v2, v1
0018d2: 1303 4000                              |000d: const/16 v3, #int 64 // #40
0018d6: f802 1500 3200                         |000f: +invoke-virtual-quick {v2, v3}, [0015] // vtable #0015
0018dc: 0a02                                   |0012: move-result v2
0018de: 12f3                                   |0013: const/4 v3, #int -1 // #ff
0018e0: 3832 0500                              |0014: if-ne v2, v3, 0019 // +0005
0018e4: 1202                                   |0016: const/4 v2, #int 0 // #0
0018e6: 0120                                   |0017: move v0, v2
0018e8: 33f3                                   |0018: goto 000b // -000d
0018ea: 1212                                   |0019: const/4 v2, #int 1 // #1
0018ec: 0120                                   |001a: move v0, v2
0018ee: 33f0                                   |001b: goto 000b // -0010
      exceptions    : (none)
      positions     : 6
        0x0000 line=95
        0x0009 line=96
        0x000b line=103
        0x000c line=99
        0x0016 line=100
        0x0019 line=103
      locals        : 2
        0x0001 - 0x001c reg=0 this Lorg/apache/xmpp/XMPPSender;
        0x0002 - 0x001c reg=1 username Ljava/lang/String;

    #3              : (in org/apache/xmpp/XMPPSender)
      name          : 'logMessage'
      type          : '(Ljava/lang/CharSequence;)V'
      access        : 0x0002 (PRIVATE)
      code          -
      registers     : 10
      ins           : 2
      outs          : 5
      source_idx    : 80
      insns         : 22 16-bit code units
0018f0:                                        |[0018f0] org/apache/xmpp/XMPPSender.logMessage:(Ljava/lang/CharSequence;)V
0018f4: 0780                                   |0000: move-object v0, v8
0018f6: 0791                                   |0001: move-object v1, v9
0018f8: 0703                                   |0002: move-object v3, v0
0018fa: 1804 0700                              |0003: const-string v4, "notification" // string@0007
0018fe: f802 3800 4300                         |0005: +invoke-virtual-quick {v3, v4}, [0038] // vtable #0038
001904: 0c03                                   |0008: move-result-object v3
001906: 1e03 1c00                              |0009: check-cast v3, android/app/NotificationManager // class@001c
00190a: 0732                                   |000b: move-object v2, v3
00190c: 0723                                   |000c: move-object v3, v2
00190e: 1304 7b00                              |000d: const/16 v4, #int 123 // #7b
001912: 0715                                   |000f: move-object v5, v1
001914: 1216                                   |0010: const/4 v6, #int 1 // #1
001916: 1207                                   |0011: const/4 v7, #int 0 // #0
001918: f905 0e00 0300                         |0012: +invoke-virtual-quick/range {v3, v4, v5, v6, v7}, [000e] // vtable #000e
00191e: 0e00                                   |0015: return-void
      exceptions    : (none)
      positions     : 3
        0x0000 line=107
        0x000c line=110
        0x0015 line=111
      locals        : 3
        0x0001 - 0x0016 reg=0 this Lorg/apache/xmpp/XMPPSender;
        0x0002 - 0x0016 reg=1 msg Ljava/lang/CharSequence;
        0x000c - 0x0016 reg=2 nm Landroid/app/NotificationManager;

    #4              : (in org/apache/xmpp/XMPPSender)
      name          : 'access$000'
      type          : '(Lorg/apache/xmpp/XMPPSender;Ljava/lang/CharSequence;)V'
      access        : 0x1008 (STATIC SYNTHETIC)
      code          -
      registers     : 6
      ins           : 2
      outs          : 2
      source_idx    : 80
      insns         : 8 16-bit code units
001920:                                        |[001920] org/apache/xmpp/XMPPSender.access$000:(Lorg/apache/xmpp/XMPPSender;Ljava/lang/CharSequence;)V
001924: 0740                                   |0000: move-object v0, v4
001926: 0751                                   |0001: move-object v1, v5
001928: 0702                                   |0002: move-object v2, v0
00192a: 0713                                   |0003: move-object v3, v1
00192c: 6f02 2f00 3200                         |0004: invoke-direct {v2, v3}, org/apache/xmpp/XMPPSender.logMessage:(Ljava/lang/CharSequence;)V // method@002f
001932: 0e00                                   |0007: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=39
      locals        : 2
        0x0001 - 0x0008 reg=0 x0 Lorg/apache/xmpp/XMPPSender;
        0x0002 - 0x0008 reg=1 x1 Ljava/lang/CharSequence;

    #5              : (in org/apache/xmpp/XMPPSender)
      name          : 'access$100'
      type          : '(Lorg/apache/xmpp/XMPPSender;Ljava/lang/String;)Z'
      access        : 0x1008 (STATIC SYNTHETIC)
      code          -
      registers     : 6
      ins           : 2
      outs          : 2
      source_idx    : 80
      insns         : 10 16-bit code units
001934:                                        |[001934] org/apache/xmpp/XMPPSender.access$100:(Lorg/apache/xmpp/XMPPSender;Ljava/lang/String;)Z
001938: 0740                                   |0000: move-object v0, v4
00193a: 0751                                   |0001: move-object v1, v5
00193c: 0702                                   |0002: move-object v2, v0
00193e: 0713                                   |0003: move-object v3, v1
001940: 6f02 2e00 3200                         |0004: invoke-direct {v2, v3}, org/apache/xmpp/XMPPSender.isValidUsername:(Ljava/lang/String;)Z // method@002e
001946: 0a02                                   |0007: move-result v2
001948: 0120                                   |0008: move v0, v2
00194a: 0f00                                   |0009: return v0
      exceptions    : (none)
      positions     : 1
        0x0000 line=39
      locals        : 2
        0x0001 - 0x000a reg=0 x0 Lorg/apache/xmpp/XMPPSender;
        0x0002 - 0x000a reg=1 x1 Ljava/lang/String;

    #6              : (in org/apache/xmpp/XMPPSender)
      name          : 'access$200'
      type          : '(Lorg/apache/xmpp/XMPPSender;)V'
      access        : 0x1008 (STATIC SYNTHETIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      source_idx    : 80
      insns         : 6 16-bit code units
00194c:                                        |[00194c] org/apache/xmpp/XMPPSender.access$200:(Lorg/apache/xmpp/XMPPSender;)V
001950: 0720                                   |0000: move-object v0, v2
001952: 0701                                   |0001: move-object v1, v0
001954: 6f01 2a00 0100                         |0002: invoke-direct {v1}, org/apache/xmpp/XMPPSender.bindXmppService:()V // method@002a
00195a: 0e00                                   |0005: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=39
      locals        : 1
        0x0001 - 0x0006 reg=0 x0 Lorg/apache/xmpp/XMPPSender;

  Virtual methods   -
    #0              : (in org/apache/xmpp/XMPPSender)
      name          : 'onCreate'
      type          : '(Landroid/os/Bundle;)V'
      access        : 0x0004 (PROTECTED)
      code          -
      registers     : 9
      ins           : 2
      outs          : 2
      source_idx    : 80
      insns         : 124 16-bit code units
00195c:                                        |[00195c] org/apache/xmpp/XMPPSender.onCreate:(Landroid/os/Bundle;)V
001960: 0770                                   |0000: move-object v0, v7
001962: 0781                                   |0001: move-object v1, v8
001964: 0702                                   |0002: move-object v2, v0
001966: 0713                                   |0003: move-object v3, v1
001968: fa02 4c00 3200                         |0004: +invoke-super-quick {v2, v3}, [004c] // vtable #004c
00196e: 0702                                   |0007: move-object v2, v0
001970: 1403 0000 027f                         |0008: const v3, #float 172799639452039063477494917836444794880.000000 // #7f020000
001976: f802 6100 3200                         |000b: +invoke-virtual-quick {v2, v3}, [0061] // vtable #0061
00197c: 0702                                   |000e: move-object v2, v0
00197e: 0703                                   |000f: move-object v3, v0
001980: 1404 0000 047f                         |0010: const v4, #float 175458095443608895223302531957005484032.000000 // #7f040000
001986: f802 6000 4300                         |0013: +invoke-virtual-quick {v3, v4}, [0060] // vtable #0060
00198c: 0c03                                   |0016: move-result-object v3
00198e: 1e03 0800                              |0017: check-cast v3, android/widget/EditText // class@0008
001992: f723 8c00                              |0019: +iput-object-quick v3, v2, [obj+008c]
001996: 0702                                   |001b: move-object v2, v0
001998: f422 8c00                              |001c: +iget-object-quick v2, v2, [obj+008c]
00199c: 0703                                   |001e: move-object v3, v0
00199e: f433 a000                              |001f: +iget-object-quick v3, v3, [obj+00a0]
0019a2: f802 1100 3200                         |0021: +invoke-virtual-quick {v2, v3}, [0011] // vtable #0011
0019a8: 0702                                   |0024: move-object v2, v0
0019aa: f422 8c00                              |0025: +iget-object-quick v2, v2, [obj+008c]
0019ae: f801 1400 0200                         |0027: +invoke-virtual-quick {v2}, [0014] // vtable #0014
0019b4: 0702                                   |002a: move-object v2, v0
0019b6: 0703                                   |002b: move-object v3, v0
0019b8: 1404 0100 047f                         |002c: const v4, #float 175458115726018498874972955904256770048.000000 // #7f040001
0019be: f802 6000 4300                         |002f: +invoke-virtual-quick {v3, v4}, [0060] // vtable #0060
0019c4: 0c03                                   |0032: move-result-object v3
0019c6: 1e03 0800                              |0033: check-cast v3, android/widget/EditText // class@0008
0019ca: f723 9000                              |0035: +iput-object-quick v3, v2, [obj+0090]
0019ce: 0702                                   |0037: move-object v2, v0
0019d0: 0703                                   |0038: move-object v3, v0
0019d2: 1404 0200 047f                         |0039: const v4, #float 175458136008428102526643379851508056064.000000 // #7f040002
0019d8: f802 6000 4300                         |003c: +invoke-virtual-quick {v3, v4}, [0060] // vtable #0060
0019de: 0c03                                   |003f: move-result-object v3
0019e0: 1e03 0000                              |0040: check-cast v3, android/widget/Button // class@0000
0019e4: f723 9400                              |0042: +iput-object-quick v3, v2, [obj+0094]
0019e8: 0702                                   |0044: move-object v2, v0
0019ea: f422 9400                              |0045: +iget-object-quick v2, v2, [obj+0094]
0019ee: 0703                                   |0047: move-object v3, v0
0019f0: f433 a000                              |0048: +iget-object-quick v3, v3, [obj+00a0]
0019f4: f802 1100 3200                         |004a: +invoke-virtual-quick {v2, v3}, [0011] // vtable #0011
0019fa: 0702                                   |004d: move-object v2, v0
0019fc: f422 9400                              |004e: +iget-object-quick v2, v2, [obj+0094]
001a00: 1203                                   |0050: const/4 v3, #int 0 // #0
001a02: f802 2000 3200                         |0051: +invoke-virtual-quick {v2, v3}, [0020] // vtable #0020
001a08: 0702                                   |0054: move-object v2, v0
001a0a: 0703                                   |0055: move-object v3, v0
001a0c: 1404 0300 047f                         |0056: const v4, #float 175458156290837706178313803798759342080.000000 // #7f040003
001a12: f802 6000 4300                         |0059: +invoke-virtual-quick {v3, v4}, [0060] // vtable #0060
001a18: 0c03                                   |005c: move-result-object v3
001a1a: 1e03 0000                              |005d: check-cast v3, android/widget/Button // class@0000
001a1e: f723 9800                              |005f: +iput-object-quick v3, v2, [obj+0098]
001a22: 0702                                   |0061: move-object v2, v0
001a24: f422 9800                              |0062: +iget-object-quick v2, v2, [obj+0098]
001a28: 2103 0d00                              |0064: new-instance v3, org/apache/xmpp/XMPPSender$1 // class@000d
001a2c: 0736                                   |0066: move-object v6, v3
001a2e: 0763                                   |0067: move-object v3, v6
001a30: 0764                                   |0068: move-object v4, v6
001a32: 0705                                   |0069: move-object v5, v0
001a34: 6f02 3600 5400                         |006a: invoke-direct {v4, v5}, org/apache/xmpp/XMPPSender$1.:(Lorg/apache/xmpp/XMPPSender;)V // method@0036

001a3a: f802 1100 3200                         |006d: +invoke-virtual-quick {v2, v3}, [0011] // vtable #0011
001a40: 0702                                   |0070: move-object v2, v0
001a42: f422 9800                              |0071: +iget-object-quick v2, v2, [obj+0098]
001a46: 1203                                   |0073: const/4 v3, #int 0 // #0
001a48: f802 2000 3200                         |0074: +invoke-virtual-quick {v2, v3}, [0020] // vtable #0020
001a4e: 0702                                   |0077: move-object v2, v0
001a50: 6f01 2a00 0200                         |0078: invoke-direct {v2}, org/apache/xmpp/XMPPSender.bindXmppService:()V // method@002a
001a56: 0e00                                   |007b: return-void
      exceptions    : (none)
      positions     : 14
        0x0000 line=50
        0x0007 line=52
        0x000e line=54
        0x001b line=55
        0x0024 line=56
        0x002a line=58
        0x0037 line=60
        0x0044 line=61
        0x004d line=62
        0x0054 line=64
        0x0061 line=65
        0x0070 line=77
        0x0077 line=79
        0x007b line=80
      locals        : 2
        0x0001 - 0x007c reg=0 this Lorg/apache/xmpp/XMPPSender;
        0x0002 - 0x007c reg=1 icicle Landroid/os/Bundle;

    #1              : (in org/apache/xmpp/XMPPSender)
      name          : 'onDestroy'
      type          : '()V'
      access        : 0x0004 (PROTECTED)
      code          -
      registers     : 4
      ins           : 1
      outs          : 2
      source_idx    : 80
      insns         : 13 16-bit code units
001a58:                                        |[001a58] org/apache/xmpp/XMPPSender.onDestroy:()V
001a5c: 0730                                   |0000: move-object v0, v3
001a5e: 0701                                   |0001: move-object v1, v0
001a60: fa01 5900 0100                         |0002: +invoke-super-quick {v1}, [0059] // vtable #0059
001a66: 0701                                   |0005: move-object v1, v0
001a68: 0702                                   |0006: move-object v2, v0
001a6a: f422 9c00                              |0007: +iget-object-quick v2, v2, [obj+009c]
001a6e: f802 3600 2100                         |0009: +invoke-virtual-quick {v1, v2}, [0036] // vtable #0036
001a74: 0e00                                   |000c: return-void
      exceptions    : (none)
      positions     : 3
        0x0000 line=84
        0x0005 line=85
        0x000c line=86
      locals        : 1
        0x0001 - 0x000d reg=0 this Lorg/apache/xmpp/XMPPSender;

    #2              : (in org/apache/xmpp/XMPPSender)
      name          : 'onReceiveIntent'
      type          : '(Landroid/content/Context;Landroid/content/Intent;)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 3
      outs          : 0
      source_idx    : 80
      insns         : 1 16-bit code units
001a78:                                        |[001a78] org/apache/xmpp/XMPPSender.onReceiveIntent:(Landroid/content/Context;Landroid/content/Intent;)V
001a7c: 0e00                                   |0000: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=176
      locals        : 3
        0x0000 - 0x0001 reg=0 this Lorg/apache/xmpp/XMPPSender;
        0x0000 - 0x0001 reg=1 context Landroid/content/Context;
        0x0000 - 0x0001 reg=2 intent Landroid/content/Intent;


Class #6 header:
class_idx           : 13
access_flags        : 131072 (0x20000)
superclass_idx      : 14
interfaces_off      : 3700 (0x000e74)
sfields_off         : 0 (0x000000)
ifields_off         : 3708 (0x000e7c)
dmeths_off          : 3720 (0x000e88)
vmeths_off          : 3740 (0x000e9c)

Class #6            -
  Class name        : 'org/apache/xmpp/XMPPSender$1'
  Access flags      : 0x20000 (OPTIMIZED)
  Superclass        : 'java/lang/Object'
  Interfaces        -
    #0              : 'android/view/View$OnClickListener'
  Static fields     -
  Instance fields   -
    #0              : (in org/apache/xmpp/XMPPSender$1)
      name          : 'this$0'
      type          : 'Lorg/apache/xmpp/XMPPSender;'
      access        : 0x1010 (FINAL SYNTHETIC)
  Direct methods    -
    #0              : (in org/apache/xmpp/XMPPSender$1)
      name          : ''
      type          : '(Lorg/apache/xmpp/XMPPSender;)V'
      access        : 0x0000 ()
      code          -
      registers     : 6
      ins           : 2
      outs          : 1
      source_idx    : 80
      insns         : 11 16-bit code units
001a80:                                        |[001a80] org/apache/xmpp/XMPPSender$1.:(Lorg/apache/xmpp/XMPPSender;)V
001a84: 0740                                   |0000: move-object v0, v4
001a86: 0751                                   |0001: move-object v1, v5
001a88: 0702                                   |0002: move-object v2, v0
001a8a: 0713                                   |0003: move-object v3, v1
001a8c: f723 0800                              |0004: +iput-object-quick v3, v2, [obj+0008]
001a90: 0702                                   |0006: move-object v2, v0
001a92: f001 1800 0200                         |0007: +invoke-direct-empty {v2}, java/lang/Object.:()V // method@0018
001a98: 0e00                                   |000a: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=66
      locals        : 1
        0x0001 - 0x000b reg=0 this Lorg/apache/xmpp/XMPPSender$1;

  Virtual methods   -
    #0              : (in org/apache/xmpp/XMPPSender$1)
      name          : 'onClick'
      type          : '(Landroid/view/View;)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 14
      ins           : 2
      outs          : 6
      source_idx    : 80
      insns         : 177 16-bit code units
001a9c:                                        |[001a9c] org/apache/xmpp/XMPPSender$1.onClick:(Landroid/view/View;)V
001aa0: 07c0                                   |0000: move-object v0, v12
001aa2: 07d1                                   |0001: move-object v1, v13
001aa4: 0705                                   |0002: move-object v5, v0
001aa6: f455 0800                              |0003: +iget-object-quick v5, v5, [obj+0008]
001aaa: 6106 0000                              |0005: sget-object v6, android/provider/Im$Messages.CONTENT_URI:Landroid/net/ContentURI; // field@0000
001aae: 1207                                   |0007: const/4 v7, #int 0 // #0
001ab0: 2108 0400                              |0008: new-instance v8, java/lang/StringBuilder // class@0004
001ab4: 078b                                   |000a: move-object v11, v8
001ab6: 07b8                                   |000b: move-object v8, v11
001ab8: 07b9                                   |000c: move-object v9, v11
001aba: 6f01 1b00 0900                         |000d: invoke-direct {v9}, java/lang/StringBuilder.:()V // method@001b
001ac0: 1809 0600                              |0010: const-string v9, "contact='" // string@0006
001ac4: f802 3700 9800                         |0012: +invoke-virtual-quick {v8, v9}, [0037] // vtable #0037
001aca: 0c08                                   |0015: move-result-object v8
001acc: 0709                                   |0016: move-object v9, v0
001ace: f499 0800                              |0017: +iget-object-quick v9, v9, [obj+0008]
001ad2: f499 8c00                              |0019: +iget-object-quick v9, v9, [obj+008c]
001ad6: f801 0301 0900                         |001b: +invoke-virtual-quick {v9}, [0103] // vtable #0103
001adc: 0c09                                   |001e: move-result-object v9
001ade: f801 0700 0900                         |001f: +invoke-virtual-quick {v9}, [0007] // vtable #0007
001ae4: 0c09                                   |0022: move-result-object v9
001ae6: f802 3700 9800                         |0023: +invoke-virtual-quick {v8, v9}, [0037] // vtable #0037
001aec: 0c08                                   |0026: move-result-object v8
001aee: 1809 0000                              |0027: const-string v9, "'" // string@0000
001af2: f802 3700 9800                         |0029: +invoke-virtual-quick {v8, v9}, [0037] // vtable #0037
001af8: 0c08                                   |002c: move-result-object v8
001afa: f801 0700 0800                         |002d: +invoke-virtual-quick {v8}, [0007] // vtable #0007
001b00: 0c08                                   |0030: move-result-object v8
001b02: 1209                                   |0031: const/4 v9, #int 0 // #0
001b04: 120a                                   |0032: const/4 v10, #int 0 // #0
001b06: f906 5b00 0500                         |0033: +invoke-virtual-quick/range {v5, v6, v7, v8, v9, v10}, [005b] // vtable #005b
001b0c: 0c05                                   |0036: move-result-object v5
001b0e: 0752                                   |0037: move-object v2, v5
001b10: 0725                                   |0038: move-object v5, v2
001b12: 7101 0900 0500                         |0039: invoke-interface {v5}, android/database/Cursor.next:()Z // method@0009
001b18: 0a05                                   |003c: move-result v5
001b1a: 3d05 7300                              |003d: if-eqz v5, 00b0 // +0073
001b1e: 0725                                   |003f: move-object v5, v2
001b20: 7101 0700 0500                         |0040: invoke-interface {v5}, android/database/Cursor.getColumnNames:()[Ljava/lang/String; // method@0007
001b26: 0c05                                   |0043: move-result-object v5
001b28: 0753                                   |0044: move-object v3, v5
001b2a: 1205                                   |0045: const/4 v5, #int 0 // #0
001b2c: 0154                                   |0046: move v4, v5
001b2e: 0145                                   |0047: move v5, v4
001b30: 0736                                   |0048: move-object v6, v3
001b32: 2066                                   |0049: array-length v6, v6
001b34: 3a65 6500                              |004a: if-ge v5, v6, 00af // +0065
001b38: 1805 0300                              |004c: const-string v5, "XMPPSender" // string@0003
001b3c: 2106 0400                              |004e: new-instance v6, java/lang/StringBuilder // class@0004
001b40: 076b                                   |0050: move-object v11, v6
001b42: 07b6                                   |0051: move-object v6, v11
001b44: 07b7                                   |0052: move-object v7, v11
001b46: 6f01 1b00 0700                         |0053: invoke-direct {v7}, java/lang/StringBuilder.:()V // method@001b
001b4c: 1807 0500                              |0056: const-string v7, "col " // string@0005
001b50: f802 3700 7600                         |0058: +invoke-virtual-quick {v6, v7}, [0037] // vtable #0037
001b56: 0c06                                   |005b: move-result-object v6
001b58: 0147                                   |005c: move v7, v4
001b5a: f802 3200 7600                         |005d: +invoke-virtual-quick {v6, v7}, [0032] // vtable #0032
001b60: 0c06                                   |0060: move-result-object v6
001b62: 1807 0100                              |0061: const-string v7, ":" // string@0001
001b66: f802 3700 7600                         |0063: +invoke-virtual-quick {v6, v7}, [0037] // vtable #0037
001b6c: 0c06                                   |0066: move-result-object v6
001b6e: 0737                                   |0067: move-object v7, v3
001b70: 0148                                   |0068: move v8, v4
001b72: 4507 0708                              |0069: aget-object v7, v7, v8
001b76: f802 3700 7600                         |006b: +invoke-virtual-quick {v6, v7}, [0037] // vtable #0037
001b7c: 0c06                                   |006e: move-result-object v6
001b7e: f801 0700 0600                         |006f: +invoke-virtual-quick {v6}, [0007] // vtable #0007
001b84: 0c06                                   |0072: move-result-object v6
001b86: 7002 0c00 6500                         |0073: invoke-static {v5, v6}, android/util/Log.i:(Ljava/lang/String;Ljava/lang/String;)I // method@000c
001b8c: 0a05                                   |0076: move-result v5
001b8e: 1805 0300                              |0077: const-string v5, "XMPPSender" // string@0003
001b92: 2106 0400                              |0079: new-instance v6, java/lang/StringBuilder // class@0004
001b96: 076b                                   |007b: move-object v11, v6
001b98: 07b6                                   |007c: move-object v6, v11
001b9a: 07b7                                   |007d: move-object v7, v11
001b9c: 6f01 1b00 0700                         |007e: invoke-direct {v7}, java/lang/StringBuilder.:()V // method@001b
001ba2: 1807 0800                              |0081: const-string v7, "val " // string@0008
001ba6: f802 3700 7600                         |0083: +invoke-virtual-quick {v6, v7}, [0037] // vtable #0037
001bac: 0c06                                   |0086: move-result-object v6
001bae: 0147                                   |0087: move v7, v4
001bb0: f802 3200 7600                         |0088: +invoke-virtual-quick {v6, v7}, [0032] // vtable #0032
001bb6: 0c06                                   |008b: move-result-object v6
001bb8: 1807 0100                              |008c: const-string v7, ":" // string@0001
001bbc: f802 3700 7600                         |008e: +invoke-virtual-quick {v6, v7}, [0037] // vtable #0037
001bc2: 0c06                                   |0091: move-result-object v6
001bc4: 0727                                   |0092: move-object v7, v2
001bc6: 0728                                   |0093: move-object v8, v2
001bc8: 0739                                   |0094: move-object v9, v3
001bca: 014a                                   |0095: move v10, v4
001bcc: 4509 090a                              |0096: aget-object v9, v9, v10
001bd0: 7102 0600 9800                         |0098: invoke-interface {v8, v9}, android/database/Cursor.getColumnIndex:(Ljava/lang/String;)I // method@0006
001bd6: 0a08                                   |009b: move-result v8
001bd8: 7102 0800 8700                         |009c: invoke-interface {v7, v8}, android/database/Cursor.getString:(I)Ljava/lang/String; // method@0008
001bde: 0c07                                   |009f: move-result-object v7
001be0: f802 3700 7600                         |00a0: +invoke-virtual-quick {v6, v7}, [0037] // vtable #0037
001be6: 0c06                                   |00a3: move-result-object v6
001be8: f801 0700 0600                         |00a4: +invoke-virtual-quick {v6}, [0007] // vtable #0007
001bee: 0c06                                   |00a7: move-result-object v6
001bf0: 7002 0c00 6500                         |00a8: invoke-static {v5, v6}, android/util/Log.i:(Ljava/lang/String;Ljava/lang/String;)I // method@000c
001bf6: 0a05                                   |00ab: move-result v5
001bf8: d804 0401                              |00ac: add-int/lit8 v4, v4, #int 1 // #01
001bfc: 3399                                   |00ae: goto 0047 // -0067
001bfe: 3389                                   |00af: goto 0038 // -0077
001c00: 0e00                                   |00b0: return-void
      exceptions    : (none)
      positions     : 9
        0x0000 line=67
        0x0038 line=68
        0x003f line=69
        0x0045 line=70
        0x004c line=71
        0x0077 line=72
        0x00ac line=70
        0x00af line=74
        0x00b0 line=75
      locals        : 5
        0x0001 - 0x00b1 reg=0 this Lorg/apache/xmpp/XMPPSender$1;
        0x0002 - 0x00b1 reg=1 view Landroid/view/View;
        0x0038 - 0x00b1 reg=2 cur Landroid/database/Cursor;
        0x0045 - 0x00b0 reg=3 columnNames [Ljava/lang/String;
        0x0047 - 0x00b0 reg=4 i I


Class #7 header:
class_idx           : 3
access_flags        : 131072 (0x20000)
superclass_idx      : 14
interfaces_off      : 3760 (0x000eb0)
sfields_off         : 0 (0x000000)
ifields_off         : 3768 (0x000eb8)
dmeths_off          : 3780 (0x000ec4)
vmeths_off          : 3800 (0x000ed8)

Class #7            -
  Class name        : 'org/apache/xmpp/XMPPSender$2'
  Access flags      : 0x20000 (OPTIMIZED)
  Superclass        : 'java/lang/Object'
  Interfaces        -
    #0              : 'android/content/ServiceConnection'
  Static fields     -
  Instance fields   -
    #0              : (in org/apache/xmpp/XMPPSender$2)
      name          : 'this$0'
      type          : 'Lorg/apache/xmpp/XMPPSender;'
      access        : 0x1010 (FINAL SYNTHETIC)
  Direct methods    -
    #0              : (in org/apache/xmpp/XMPPSender$2)
      name          : ''
      type          : '(Lorg/apache/xmpp/XMPPSender;)V'
      access        : 0x0000 ()
      code          -
      registers     : 6
      ins           : 2
      outs          : 1
      source_idx    : 80
      insns         : 11 16-bit code units
001c04:                                        |[001c04] org/apache/xmpp/XMPPSender$2.:(Lorg/apache/xmpp/XMPPSender;)V
001c08: 0740                                   |0000: move-object v0, v4
001c0a: 0751                                   |0001: move-object v1, v5
001c0c: 0702                                   |0002: move-object v2, v0
001c0e: 0713                                   |0003: move-object v3, v1
001c10: f723 0800                              |0004: +iput-object-quick v3, v2, [obj+0008]
001c14: 0702                                   |0006: move-object v2, v0
001c16: f001 1800 0200                         |0007: +invoke-direct-empty {v2}, java/lang/Object.:()V // method@0018
001c1c: 0e00                                   |000a: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=138
      locals        : 1
        0x0001 - 0x000b reg=0 this Lorg/apache/xmpp/XMPPSender$2;

  Virtual methods   -
    #0              : (in org/apache/xmpp/XMPPSender$2)
      name          : 'onServiceConnected'
      type          : '(Landroid/content/ComponentName;Landroid/os/IBinder;)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 14
      ins           : 3
      outs          : 3
      source_idx    : 80
      insns         : 120 16-bit code units
001c20:                                        |[001c20] org/apache/xmpp/XMPPSender$2.onServiceConnected:(Landroid/content/ComponentName;Landroid/os/IBinder;)V
001c24: 07b0                                   |0000: move-object v0, v11
001c26: 07c1                                   |0001: move-object v1, v12
001c28: 07d2                                   |0002: move-object v2, v13
001c2a: 0725                                   |0003: move-object v5, v2
001c2c: 7001 1400 0500                         |0004: invoke-static {v5}, com/google/android/xmppService/IXmppService$Stub.asInterface:(Landroid/os/IBinder;)Lco
m/google/android/xmppService/IXmppService; // method@0014
001c32: 0c05                                   |0007: move-result-object v5
001c34: 0753                                   |0008: move-object v3, v5
001c36: 0705                                   |0009: move-object v5, v0
001c38: f455 0800                              |000a: +iget-object-quick v5, v5, [obj+0008]
001c3c: 0736                                   |000c: move-object v6, v3
001c3e: 7101 1300 0600                         |000d: invoke-interface {v6}, com/google/android/xmppService/IXmppService.getDefaultSession:()Lcom/google/android
/xmppService/IXmppSession; // method@0013
001c44: 0c06                                   |0010: move-result-object v6
001c46: f756 8800                              |0011: +iput-object-quick v6, v5, [obj+0088]
001c4a: 0705                                   |0013: move-object v5, v0
001c4c: f455 0800                              |0014: +iget-object-quick v5, v5, [obj+0008]
001c50: f455 8800                              |0016: +iget-object-quick v5, v5, [obj+0088]
001c54: 3e05 1300                              |0018: if-nez v5, 002b // +0013
001c58: 0705                                   |001a: move-object v5, v0
001c5a: f455 0800                              |001b: +iget-object-quick v5, v5, [obj+0008]
001c5e: 0706                                   |001d: move-object v6, v0
001c60: f466 0800                              |001e: +iget-object-quick v6, v6, [obj+0008]
001c64: 1407 0800 037f                         |0020: const v7, #float 174129029707100808563762116474735427584.000000 // #7f030008
001c6a: f802 0f00 7600                         |0023: +invoke-virtual-quick {v6, v7}, [000f] // vtable #000f
001c70: 0c06                                   |0026: move-result-object v6
001c72: 7002 2600 6500                         |0027: invoke-static {v5, v6}, org/apache/xmpp/XMPPSender.access$000:(Lorg/apache/xmpp/XMPPSender;Ljava/lang/Char
Sequence;)V // method@0026
001c78: 0e00                                   |002a: return-void
001c7a: 0705                                   |002b: move-object v5, v0
001c7c: f455 0800                              |002c: +iget-object-quick v5, v5, [obj+0008]
001c80: f455 8800                              |002e: +iget-object-quick v5, v5, [obj+0088]
001c84: 2106 1500                              |0030: new-instance v6, com/google/android/xmppService/Presence // class@0015
001c88: 076a                                   |0032: move-object v10, v6
001c8a: 07a6                                   |0033: move-object v6, v10
001c8c: 07a7                                   |0034: move-object v7, v10
001c8e: 1258                                   |0035: const/4 v8, #int 5 // #5
001c90: 1809 0200                              |0036: const-string v9, "Am here now!" // string@0002
001c94: 6f03 1700 8709                         |0038: invoke-direct {v7, v8, v9}, com/google/android/xmppService/Presence.:(ILjava/lang/String;)V // metho
d@0017
001c9a: 7102 1600 6500                         |003b: invoke-interface {v5, v6}, com/google/android/xmppService/IXmppSession.setPresence:(Lcom/google/android/xm
ppService/Presence;)V // method@0016
001ca0: 0705                                   |003e: move-object v5, v0
001ca2: f455 0800                              |003f: +iget-object-quick v5, v5, [obj+0008]
001ca6: f455 9400                              |0041: +iget-object-quick v5, v5, [obj+0094]
001caa: 1216                                   |0043: const/4 v6, #int 1 // #1
001cac: f802 2000 6500                         |0044: +invoke-virtual-quick {v5, v6}, [0020] // vtable #0020
001cb2: 33e3                                   |0047: goto 002a // -001d
001cb4: 0d05                                   |0048: move-exception v5
001cb6: 0754                                   |0049: move-object v4, v5
001cb8: 1805 0300                              |004a: const-string v5, "XMPPSender" // string@0003
001cbc: 2106 0400                              |004c: new-instance v6, java/lang/StringBuilder // class@0004
001cc0: 076a                                   |004e: move-object v10, v6
001cc2: 07a6                                   |004f: move-object v6, v10
001cc4: 07a7                                   |0050: move-object v7, v10
001cc6: 6f01 1b00 0700                         |0051: invoke-direct {v7}, java/lang/StringBuilder.:()V // method@001b
001ccc: 1807 0400                              |0054: const-string v7, "caught " // string@0004
001cd0: f802 3700 7600                         |0056: +invoke-virtual-quick {v6, v7}, [0037] // vtable #0037
001cd6: 0c06                                   |0059: move-result-object v6
001cd8: 0747                                   |005a: move-object v7, v4
001cda: f802 3600 7600                         |005b: +invoke-virtual-quick {v6, v7}, [0036] // vtable #0036
001ce0: 0c06                                   |005e: move-result-object v6
001ce2: f801 0700 0600                         |005f: +invoke-virtual-quick {v6}, [0007] // vtable #0007
001ce8: 0c06                                   |0062: move-result-object v6
001cea: 7002 0b00 6500                         |0063: invoke-static {v5, v6}, android/util/Log.e:(Ljava/lang/String;Ljava/lang/String;)I // method@000b
001cf0: 0a05                                   |0066: move-result v5
001cf2: 0705                                   |0067: move-object v5, v0
001cf4: f455 0800                              |0068: +iget-object-quick v5, v5, [obj+0008]
001cf8: 0706                                   |006a: move-object v6, v0
001cfa: f466 0800                              |006b: +iget-object-quick v6, v6, [obj+0008]
001cfe: 1407 0900 037f                         |006d: const v7, #float 174129049989510412215432540421986713600.000000 // #7f030009
001d04: f802 0f00 7600                         |0070: +invoke-virtual-quick {v6, v7}, [000f] // vtable #000f
001d0a: 0c06                                   |0073: move-result-object v6
001d0c: 7002 2600 6500                         |0074: invoke-static {v5, v6}, org/apache/xmpp/XMPPSender.access$000:(Lorg/apache/xmpp/XMPPSender;Ljava/lang/Char
Sequence;)V // method@0026
001d12: 33c7                                   |0077: goto 003e // -0039
      exceptions    : 1
        0x000a - 0x003e --> 0x0048 (24 android/os/DeadObjectException)
      positions     : 13
        0x0000 line=120
        0x0009 line=123
        0x0013 line=124
        0x001a line=126
        0x002a line=127
        0x002a line=136
        0x002b line=129
        0x003e line=133
        0x003e line=135
        0x0047 line=136
        0x0048 line=130
        0x004a line=131
        0x0067 line=132
      locals        : 5
        0x0001 - 0x0078 reg=0 this Lorg/apache/xmpp/XMPPSender$2;
        0x0002 - 0x0078 reg=1 className Landroid/content/ComponentName;
        0x0003 - 0x0078 reg=2 service Landroid/os/IBinder;
        0x0009 - 0x0078 reg=3 xmppService Lcom/google/android/xmppService/IXmppService;
        0x004a - 0x0078 reg=4 ex Landroid/os/DeadObjectException;

    #1              : (in org/apache/xmpp/XMPPSender$2)
      name          : 'onServiceDisconnected'
      type          : '(Landroid/content/ComponentName;)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 6
      ins           : 2
      outs          : 2
      source_idx    : 80
      insns         : 18 16-bit code units
001d14:                                        |[001d14] org/apache/xmpp/XMPPSender$2.onServiceDisconnected:(Landroid/content/ComponentName;)V
001d18: 0740                                   |0000: move-object v0, v4
001d1a: 0751                                   |0001: move-object v1, v5
001d1c: 0702                                   |0002: move-object v2, v0
001d1e: f422 0800                              |0003: +iget-object-quick v2, v2, [obj+0008]
001d22: 1203                                   |0005: const/4 v3, #int 0 // #0
001d24: f723 8800                              |0006: +iput-object-quick v3, v2, [obj+0088]
001d28: 0702                                   |0008: move-object v2, v0
001d2a: f422 0800                              |0009: +iget-object-quick v2, v2, [obj+0008]
001d2e: f422 9400                              |000b: +iget-object-quick v2, v2, [obj+0094]
001d32: 1203                                   |000d: const/4 v3, #int 0 // #0
001d34: f802 2000 3200                         |000e: +invoke-virtual-quick {v2, v3}, [0020] // vtable #0020
001d3a: 0e00                                   |0011: return-void
      exceptions    : (none)
      positions     : 3
        0x0000 line=141
        0x0008 line=142
        0x0011 line=143
      locals        : 2
        0x0001 - 0x0012 reg=0 this Lorg/apache/xmpp/XMPPSender$2;
        0x0002 - 0x0012 reg=1 className Landroid/content/ComponentName;


Class #8 header:
class_idx           : 15
access_flags        : 131072 (0x20000)
superclass_idx      : 14
interfaces_off      : 3700 (0x000e74)
sfields_off         : 0 (0x000000)
ifields_off         : 3836 (0x000efc)
dmeths_off          : 3848 (0x000f08)
vmeths_off          : 3868 (0x000f1c)

Class #8            -
  Class name        : 'org/apache/xmpp/XMPPSender$3'
  Access flags      : 0x20000 (OPTIMIZED)
  Superclass        : 'java/lang/Object'
  Interfaces        -
    #0              : 'android/view/View$OnClickListener'
  Static fields     -
  Instance fields   -
    #0              : (in org/apache/xmpp/XMPPSender$3)
      name          : 'this$0'
      type          : 'Lorg/apache/xmpp/XMPPSender;'
      access        : 0x1010 (FINAL SYNTHETIC)
  Direct methods    -
    #0              : (in org/apache/xmpp/XMPPSender$3)
      name          : ''
      type          : '(Lorg/apache/xmpp/XMPPSender;)V'
      access        : 0x0000 ()
      code          -
      registers     : 6
      ins           : 2
      outs          : 1
      source_idx    : 80
      insns         : 11 16-bit code units
001d3c:                                        |[001d3c] org/apache/xmpp/XMPPSender$3.:(Lorg/apache/xmpp/XMPPSender;)V
001d40: 0740                                   |0000: move-object v0, v4
001d42: 0751                                   |0001: move-object v1, v5
001d44: 0702                                   |0002: move-object v2, v0
001d46: 0713                                   |0003: move-object v3, v1
001d48: f723 0800                              |0004: +iput-object-quick v3, v2, [obj+0008]
001d4c: 0702                                   |0006: move-object v2, v0
001d4e: f001 1800 0200                         |0007: +invoke-direct-empty {v2}, java/lang/Object.:()V // method@0018
001d54: 0e00                                   |000a: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=147
      locals        : 1
        0x0001 - 0x000b reg=0 this Lorg/apache/xmpp/XMPPSender$3;

  Virtual methods   -
    #0              : (in org/apache/xmpp/XMPPSender$3)
      name          : 'onClick'
      type          : '(Landroid/view/View;)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 12
      ins           : 2
      outs          : 5
      source_idx    : 80
      insns         : 170 16-bit code units
001d58:                                        |[001d58] org/apache/xmpp/XMPPSender$3.onClick:(Landroid/view/View;)V
001d5c: 07a0                                   |0000: move-object v0, v10
001d5e: 07b1                                   |0001: move-object v1, v11
001d60: 0714                                   |0002: move-object v4, v1
001d62: 0705                                   |0003: move-object v5, v0
001d64: f455 0800                              |0004: +iget-object-quick v5, v5, [obj+0008]
001d68: f455 8c00                              |0006: +iget-object-quick v5, v5, [obj+008c]
001d6c: 3854 0b00                              |0008: if-ne v4, v5, 0013 // +000b
001d70: 0704                                   |000a: move-object v4, v0
001d72: f444 0800                              |000b: +iget-object-quick v4, v4, [obj+0008]
001d76: f444 9400                              |000d: +iget-object-quick v4, v4, [obj+0094]
001d7a: f801 1400 0400                         |000f: +invoke-virtual-quick {v4}, [0014] // vtable #0014
001d80: 0e00                                   |0012: return-void
001d82: 0704                                   |0013: move-object v4, v0
001d84: f444 0800                              |0014: +iget-object-quick v4, v4, [obj+0008]
001d88: f444 8c00                              |0016: +iget-object-quick v4, v4, [obj+008c]
001d8c: f801 0301 0400                         |0018: +invoke-virtual-quick {v4}, [0103] // vtable #0103
001d92: 0c04                                   |001b: move-result-object v4
001d94: f801 0700 0400                         |001c: +invoke-virtual-quick {v4}, [0007] // vtable #0007
001d9a: 0c04                                   |001f: move-result-object v4
001d9c: 0742                                   |0020: move-object v2, v4
001d9e: 0704                                   |0021: move-object v4, v0
001da0: f444 0800                              |0022: +iget-object-quick v4, v4, [obj+0008]
001da4: 0725                                   |0024: move-object v5, v2
001da6: 7002 2700 5400                         |0025: invoke-static {v4, v5}, org/apache/xmpp/XMPPSender.access$100:(Lorg/apache/xmpp/XMPPSender;Ljava/lang/Stri
ng;)Z // method@0027
001dac: 0a04                                   |0028: move-result v4
001dae: 3e04 1300                              |0029: if-nez v4, 003c // +0013
001db2: 0704                                   |002b: move-object v4, v0
001db4: f444 0800                              |002c: +iget-object-quick v4, v4, [obj+0008]
001db8: 0705                                   |002e: move-object v5, v0
001dba: f455 0800                              |002f: +iget-object-quick v5, v5, [obj+0008]
001dbe: 1406 0600 037f                         |0031: const v6, #float 174128989142281601260421268580232855552.000000 // #7f030006
001dc4: f802 0f00 6500                         |0034: +invoke-virtual-quick {v5, v6}, [000f] // vtable #000f
001dca: 0c05                                   |0037: move-result-object v5
001dcc: 7002 2600 5400                         |0038: invoke-static {v4, v5}, org/apache/xmpp/XMPPSender.access$000:(Lorg/apache/xmpp/XMPPSender;Ljava/lang/Char
Sequence;)V // method@0026
001dd2: 33d7                                   |003b: goto 0012 // -0029
001dd4: 0704                                   |003c: move-object v4, v0
001dd6: f444 0800                              |003d: +iget-object-quick v4, v4, [obj+0008]
001dda: f444 8800                              |003f: +iget-object-quick v4, v4, [obj+0088]
001dde: 3e04 1300                              |0041: if-nez v4, 0054 // +0013
001de2: 0704                                   |0043: move-object v4, v0
001de4: f444 0800                              |0044: +iget-object-quick v4, v4, [obj+0008]
001de8: 0705                                   |0046: move-object v5, v0
001dea: f455 0800                              |0047: +iget-object-quick v5, v5, [obj+0008]
001dee: 1406 0700 037f                         |0049: const v6, #float 174129009424691204912091692527484141568.000000 // #7f030007
001df4: f802 0f00 6500                         |004c: +invoke-virtual-quick {v5, v6}, [000f] // vtable #000f
001dfa: 0c05                                   |004f: move-result-object v5
001dfc: 7002 2600 5400                         |0050: invoke-static {v4, v5}, org/apache/xmpp/XMPPSender.access$000:(Lorg/apache/xmpp/XMPPSender;Ljava/lang/Char
Sequence;)V // method@0026
001e02: 33bf                                   |0053: goto 0012 // -0041
001e04: 0704                                   |0054: move-object v4, v0
001e06: f444 0800                              |0055: +iget-object-quick v4, v4, [obj+0008]
001e0a: f444 8800                              |0057: +iget-object-quick v4, v4, [obj+0088]
001e0e: 0725                                   |0059: move-object v5, v2
001e10: 1506 0000                              |005a: const-wide/16 v6, #int 0 // #0
001e14: 0708                                   |005c: move-object v8, v0
001e16: f488 0800                              |005d: +iget-object-quick v8, v8, [obj+0008]
001e1a: f488 9000                              |005f: +iget-object-quick v8, v8, [obj+0090]
001e1e: f801 0301 0800                         |0061: +invoke-virtual-quick {v8}, [0103] // vtable #0103
001e24: 0c08                                   |0064: move-result-object v8
001e26: f801 0700 0800                         |0065: +invoke-virtual-quick {v8}, [0007] // vtable #0007
001e2c: 0c08                                   |0068: move-result-object v8
001e2e: 7605 1500 0400                         |0069: invoke-interface/range {v4, v5, v6, v7, v8}, com/google/android/xmppService/IXmppSession.sendTextMessage:(
Ljava/lang/String;JLjava/lang/String;)V // method@0015
001e34: 33a6                                   |006c: goto 0012 // -005a
001e36: 0d04                                   |006d: move-exception v4
001e38: 0743                                   |006e: move-object v3, v4
001e3a: 1804 0300                              |006f: const-string v4, "XMPPSender" // string@0003
001e3e: 2105 0400                              |0071: new-instance v5, java/lang/StringBuilder // class@0004
001e42: 0759                                   |0073: move-object v9, v5
001e44: 0795                                   |0074: move-object v5, v9
001e46: 0796                                   |0075: move-object v6, v9
001e48: 6f01 1b00 0600                         |0076: invoke-direct {v6}, java/lang/StringBuilder.:()V // method@001b
001e4e: 1806 0400                              |0079: const-string v6, "caught " // string@0004
001e52: f802 3700 6500                         |007b: +invoke-virtual-quick {v5, v6}, [0037] // vtable #0037
001e58: 0c05                                   |007e: move-result-object v5
001e5a: 0736                                   |007f: move-object v6, v3
001e5c: f802 3600 6500                         |0080: +invoke-virtual-quick {v5, v6}, [0036] // vtable #0036
001e62: 0c05                                   |0083: move-result-object v5
001e64: f801 0700 0500                         |0084: +invoke-virtual-quick {v5}, [0007] // vtable #0007
001e6a: 0c05                                   |0087: move-result-object v5
001e6c: 7002 0b00 5400                         |0088: invoke-static {v4, v5}, android/util/Log.e:(Ljava/lang/String;Ljava/lang/String;)I // method@000b
001e72: 0a04                                   |008b: move-result v4
001e74: 0704                                   |008c: move-object v4, v0
001e76: f444 0800                              |008d: +iget-object-quick v4, v4, [obj+0008]
001e7a: 0705                                   |008f: move-object v5, v0
001e7c: f455 0800                              |0090: +iget-object-quick v5, v5, [obj+0008]
001e80: 1406 0900 037f                         |0092: const v6, #float 174129049989510412215432540421986713600.000000 // #7f030009
001e86: f802 0f00 6500                         |0095: +invoke-virtual-quick {v5, v6}, [000f] // vtable #000f
001e8c: 0c05                                   |0098: move-result-object v5
001e8e: 7002 2600 5400                         |0099: invoke-static {v4, v5}, org/apache/xmpp/XMPPSender.access$000:(Lorg/apache/xmpp/XMPPSender;Ljava/lang/Char
Sequence;)V // method@0026
001e94: 0704                                   |009c: move-object v4, v0
001e96: f444 0800                              |009d: +iget-object-quick v4, v4, [obj+0008]
001e9a: 1205                                   |009f: const/4 v5, #int 0 // #0
001e9c: f745 8800                              |00a0: +iput-object-quick v5, v4, [obj+0088]
001ea0: 0704                                   |00a2: move-object v4, v0
001ea2: f444 0800                              |00a3: +iget-object-quick v4, v4, [obj+0008]
001ea6: 7001 2800 0400                         |00a5: invoke-static {v4}, org/apache/xmpp/XMPPSender.access$200:(Lorg/apache/xmpp/XMPPSender;)V // method@0028
001eac: 34ff 6aff                              |00a8: goto/24 0012 // -0096
      exceptions    : 1
        0x0055 - 0x006c --> 0x006d (24 android/os/DeadObjectException)
      positions     : 17
        0x0000 line=148
        0x000a line=149
        0x0012 line=172
        0x0013 line=152
        0x0021 line=153
        0x002b line=154
        0x003b line=155
        0x003c line=158
        0x0043 line=159
        0x0053 line=160
        0x0054 line=164
        0x006c line=170
        0x006d line=165
        0x006f line=166
        0x008c line=167
        0x009c line=168
        0x00a2 line=169
      locals        : 4
        0x0001 - 0x00aa reg=0 this Lorg/apache/xmpp/XMPPSender$3;
        0x0002 - 0x00aa reg=1 v Landroid/view/View;
        0x0021 - 0x00aa reg=2 username Ljava/lang/String;
        0x006f - 0x00aa reg=3 ex Landroid/os/DeadObjectException;


# exit
exit

C:\android>notepad2

C:\android>mkdir junk2

C:\android>cd junk2

C:\android\junk2>..\tools\activityCreator.bat foo.Bar
Error: Package name must be composed of at least two Java identifiers

Activity Creator Script

Usage:
  activityCreator [--out outdir] [--ide intellij] your.package.name.ActivityName

Creates the structure of a minimal Android application.
The following will be created:
  - AndroidManifest.xml: The application manifest file.
  - build.xml: An Ant script to build/package the application.
  - res : The resource directory.
  - src : The source directory.
  - src/your/package/name/ActivityName.java the Activity java class. packageName is a fully qualified java Package in the format .... (with
at least two components).
  - bin : The output folder for the build script.

Options:
 --out : specifies where to create the files/folders.
 --ide intellij: creates project files for IntelliJ

For Eclipse support, please use the ADT plugin.


C:\android\junk2>..\tools\activityCreator.bat net.foo.Bar
package: net.foo
out_dir: C:\android\junk2
activity_name: Bar
Created directory C:\android\junk2\src\net\foo
Added file C:\android\junk2\src\net\foo\Bar.java
Created directory C:\android\junk2\bin
Created directory C:\android\junk2\res\values
Added file C:\android\junk2\res\values\strings.xml
Created directory C:\android\junk2\res\layout
Added file C:\android\junk2\res\layout\main.xml
Added file C:\android\junk2\AndroidManifest.xml
Added file C:\android\junk2\build.xml

C:\android\junk2>dir
 Volume in drive C is Preload
 Volume Serial Number is D886-7853

 Directory of C:\android\junk2

11/25/2007  02:56 PM              .
11/25/2007  02:56 PM              ..
11/25/2007  02:56 PM               430 AndroidManifest.xml
11/25/2007  02:56 PM              bin
11/25/2007  02:56 PM             6,063 build.xml
11/25/2007  02:56 PM              res
11/25/2007  02:56 PM              src
               2 File(s)          6,493 bytes
               5 Dir(s)  47,680,520,192 bytes free

C:\android\junk2>ant
Buildfile: build.xml

dirs:
    [mkdir] Created dir: C:\android\junk2\bin\classes

resource-src:
     [echo] Generating R.java...

aidl:

compile:
    [javac] Compiling 2 source files to C:\android\junk2\bin\classes

dex:

package-res:

package-res-no-assets:
     [echo] Packaging resources...

package-dex:
     [echo] Packaging dex...
      [zip] Building zip: C:\android\junk2\bin\Bar.apk.tmp
     [move] Moving 1 file to C:\android\junk2\bin

package:

BUILD SUCCESSFUL
Total time: 1 second
C:\android\junk2>adb install bin\Bar.apk
149 KB/s (0 bytes in 2385.000s)

C:\android\junk2>start emulator

C:\android\junk2>start ddms

C:\android\junk2>adb shell
# cd data/dalvik-cache
cd data/dalvik-cache
# ls *Bar*.dex
ls *Bar*.dex
-rw-rw-rw- app_15   app_15       2268 2007-11-25 14:56 data@app@Bar.apk@classes.dex
# dexdump -?
dexdump -?
unknown option -- ?dexdump: no file specified
dexdump: [-f] [-h] dexfile...

 -d : disassemble code sections
 -f : display summary information from file header
 -h : display file header details
 -C : decode (demangle) low-level symbol names
 -S : compute sizes only
# dexdump -d -f -h -C data@app@Bar.apk@classes.dex
dexdump -d -f -h -C data@app@Bar.apk@classes.dex
Processing 'data@app@Bar.apk@classes.dex'...
Loaded 'data@app@Bar.apk@classes.dex', DEX version '009'
DEX file header:
magic               : 'dex
009'
checksum            : 35e1a353
signature           : d7fe...3b79
file_size           : 1657
header_size         : 92
link_size           : 0
link_off            : 0 (0x000000)
string_ids_size     : 26
string_ids_off      : 92 (0x00005c)
string_objects_size : 0
class_ids_size      : 7
class_ids_off       : 300 (0x00012c)
field_ids_size      : 2
field_ids_off       : 328 (0x000148)
method_ids_size     : 10
method_ids_off      : 352 (0x000160)
class_defs_size     : 5
class_defs_off      : 472 (0x0001d8)

Class #0 header:
class_idx           : 5
access_flags        : 131073 (0x20001)
superclass_idx      : 0
interfaces_off      : 0 (0x000000)
sfields_off         : 0 (0x000000)
ifields_off         : 0 (0x000000)
dmeths_off          : 632 (0x000278)
vmeths_off          : 652 (0x00028c)

Class #0            -
  Class name        : 'net/foo/Bar'
  Access flags      : 0x20001 (PUBLIC OPTIMIZED)
  Superclass        : 'android/app/Activity'
  Interfaces        -
  Static fields     -
  Instance fields   -
  Direct methods    -
    #0              : (in net/foo/Bar)
      name          : ''
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      source_idx    : 4
      insns         : 6 16-bit code units
0004c8:                                        |[0004c8] net/foo/Bar.:()V
0004cc: 0720                                   |0000: move-object v0, v2
0004ce: 0701                                   |0001: move-object v1, v0
0004d0: 6f01 0000 0100                         |0002: invoke-direct {v1}, android/app/Activity.:()V // method@0000
0004d6: 0e00                                   |0005: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=6
      locals        : 1
        0x0001 - 0x0006 reg=0 this Lnet/foo/Bar;

  Virtual methods   -
    #0              : (in net/foo/Bar)
      name          : 'onCreate'
      type          : '(Landroid/os/Bundle;)V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 6
      ins           : 2
      outs          : 2
      source_idx    : 4
      insns         : 15 16-bit code units
0004d8:                                        |[0004d8] net/foo/Bar.onCreate:(Landroid/os/Bundle;)V
0004dc: 0740                                   |0000: move-object v0, v4
0004de: 0751                                   |0001: move-object v1, v5
0004e0: 0702                                   |0002: move-object v2, v0
0004e2: 0713                                   |0003: move-object v3, v1
0004e4: fa02 4c00 3200                         |0004: +invoke-super-quick {v2, v3}, [004c] // vtable #004c
0004ea: 0702                                   |0007: move-object v2, v0
0004ec: 1403 0000 027f                         |0008: const v3, #float 172799639452039063477494917836444794880.000000 // #7f020000
0004f2: f802 6100 3200                         |000b: +invoke-virtual-quick {v2, v3}, [0061] // vtable #0061
0004f8: 0e00                                   |000e: return-void
      exceptions    : (none)
      positions     : 3
        0x0000 line=12
        0x0007 line=13
        0x000e line=14
      locals        : 2
        0x0001 - 0x000f reg=0 this Lnet/foo/Bar;
        0x0002 - 0x000f reg=1 icicle Landroid/os/Bundle;


Class #1 header:
class_idx           : 4
access_flags        : 131089 (0x20011)
superclass_idx      : 3
interfaces_off      : 0 (0x000000)
sfields_off         : 0 (0x000000)
ifields_off         : 0 (0x000000)
dmeths_off          : 672 (0x0002a0)
vmeths_off          : 0 (0x000000)

Class #1            -
  Class name        : 'net/foo/R'
  Access flags      : 0x20011 (PUBLIC FINAL OPTIMIZED)
  Superclass        : 'java/lang/Object'
  Interfaces        -
  Static fields     -
  Instance fields   -
  Direct methods    -
    #0              : (in net/foo/R)
      name          : ''
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      source_idx    : 12
      insns         : 6 16-bit code units
0004fc:                                        |[0004fc] net/foo/R.:()V
000500: 0720                                   |0000: move-object v0, v2
000502: 0701                                   |0001: move-object v1, v0
000504: f001 0200 0100                         |0002: +invoke-direct-empty {v1}, java/lang/Object.:()V // method@0002
00050a: 0e00                                   |0005: return-void
      exceptions    : (none)
      positions     : 2
        0x0000 line=10
        0x0005 line=16
      locals        : 1
        0x0001 - 0x0006 reg=0 this Lnet/foo/R;

  Virtual methods   -

Class #2 header:
class_idx           : 6
access_flags        : 131089 (0x20011)
superclass_idx      : 3
interfaces_off      : 0 (0x000000)
sfields_off         : 0 (0x000000)
ifields_off         : 0 (0x000000)
dmeths_off          : 692 (0x0002b4)
vmeths_off          : 0 (0x000000)

Class #2            -
  Class name        : 'net/foo/R$attr'
  Access flags      : 0x20011 (PUBLIC FINAL OPTIMIZED)
  Superclass        : 'java/lang/Object'
  Interfaces        -
  Static fields     -
  Instance fields   -
  Direct methods    -
    #0              : (in net/foo/R$attr)
      name          : ''
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      source_idx    : 12
      insns         : 6 16-bit code units
00050c:                                        |[00050c] net/foo/R$attr.:()V
000510: 0720                                   |0000: move-object v0, v2
000512: 0701                                   |0001: move-object v1, v0
000514: f001 0200 0100                         |0002: +invoke-direct-empty {v1}, java/lang/Object.:()V // method@0002
00051a: 0e00                                   |0005: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=11
      locals        : 1
        0x0001 - 0x0006 reg=0 this Lnet/foo/R$attr;

  Virtual methods   -

Class #3 header:
class_idx           : 2
access_flags        : 131089 (0x20011)
superclass_idx      : 3
interfaces_off      : 0 (0x000000)
sfields_off         : 712 (0x0002c8)
ifields_off         : 0 (0x000000)
dmeths_off          : 736 (0x0002e0)
vmeths_off          : 0 (0x000000)

Class #3            -
  Class name        : 'net/foo/R$layout'
  Access flags      : 0x20011 (PUBLIC FINAL OPTIMIZED)
  Superclass        : 'java/lang/Object'
  Interfaces        -
  Static fields     -
    #0              : (in net/foo/R$layout)
      name          : 'main'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f020000
  Instance fields   -
  Direct methods    -
    #0              : (in net/foo/R$layout)
      name          : ''
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      source_idx    : 12
      insns         : 6 16-bit code units
00051c:                                        |[00051c] net/foo/R$layout.:()V
000520: 0720                                   |0000: move-object v0, v2
000522: 0701                                   |0001: move-object v1, v0
000524: f001 0200 0100                         |0002: +invoke-direct-empty {v1}, java/lang/Object.:()V // method@0002
00052a: 0e00                                   |0005: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=13
      locals        : 1
        0x0001 - 0x0006 reg=0 this Lnet/foo/R$layout;

  Virtual methods   -

Class #4 header:
class_idx           : 1
access_flags        : 131089 (0x20011)
superclass_idx      : 3
interfaces_off      : 0 (0x000000)
sfields_off         : 760 (0x0002f8)
ifields_off         : 0 (0x000000)
dmeths_off          : 784 (0x000310)
vmeths_off          : 0 (0x000000)

Class #4            -
  Class name        : 'net/foo/R$string'
  Access flags      : 0x20011 (PUBLIC FINAL OPTIMIZED)
  Superclass        : 'java/lang/Object'
  Interfaces        -
  Static fields     -
    #0              : (in net/foo/R$string)
      name          : 'app_name'
      type          : 'I'
      access        : 0x0019 (PUBLIC STATIC FINAL)
      constantValue : 0x7f030000
  Instance fields   -
  Direct methods    -
    #0              : (in net/foo/R$string)
      name          : ''
      type          : '()V'
      access        : 0x0001 (PUBLIC)
      code          -
      registers     : 3
      ins           : 1
      outs          : 1
      source_idx    : 12
      insns         : 6 16-bit code units
00052c:                                        |[00052c] net/foo/R$string.:()V
000530: 0720                                   |0000: move-object v0, v2
000532: 0701                                   |0001: move-object v1, v0
000534: f001 0200 0100                         |0002: +invoke-direct-empty {v1}, java/lang/Object.:()V // method@0002
00053a: 0e00                                   |0005: return-void
      exceptions    : (none)
      positions     : 1
        0x0000 line=16
      locals        : 1
        0x0001 - 0x0006 reg=0 this Lnet/foo/R$string;

  Virtual methods   -

#

Leave a Comment »

No comments yet.

RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: