[HOWTO] Poke into the dex file
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 (0x000c2
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 (0x000c8
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 (0x000cb
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 (0x000d7
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 (0x000e8
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 (0x000eb
dmeths_off : 3780 (0x000ec4)
vmeths_off : 3800 (0x000ed
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 (0x000f0
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 (0x00014
method_ids_size : 10
method_ids_off : 352 (0x000160)
class_defs_size : 5
class_defs_off : 472 (0x0001d
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 (0x00027
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 (0x0002c
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 (0x0002f
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 -
#
About this entry
You’re currently reading “[HOWTO] Poke into the dex file,” an entry on Show me the code! - By Davanum Srinivas
- Published:
- 11.25.07 / 3pm
- Category:
- Uncategorized
- Tags:
No comments
Jump to comment form | comments rss [?] | trackback uri [?]