Slide 32
Slide 32 text
$ $ANDROID_HOME/build-tools/28.0.2/dexdump -d classes.dex
Class #0 -
Class descriptor : 'LJava8$Consumer;'
Access flags : 0x0600 (INTERFACE ABSTRACT)
Superclass : 'Ljava/lang/Object;'
Interfaces -
Static fields -
Instance fields -
Direct methods -
Virtual methods -
#0 : (in LJava8$Consumer;)
name : 'accept'
type : '(Ljava/lang/Object;)V'
access : 0x0401 (PUBLIC ABSTRACT)
code : (none)
source_file_idx : 14 (Lambda.java)
Class #1 -
Class descriptor : 'LJava8;'
Access flags : 0x0000 ()
Superclass : 'Ljava/lang/Object;'
Interfaces -
Static fields -
Instance fields -
Direct methods -
#0 : (in LJava8;)
name : ''
type : '()V'
access : 0x10000 (CONSTRUCTOR)
code -
registers : 1
ins : 1
outs : 1
insns size : 4 16-bit code units
000288: |[000288] Java8.:()V
000298: 7010 0900 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0009
00029e: 0e00 |0003: return-void
catches : (none)
positions :
0x0000 line=1
locals :
0x0000 - 0x0004 reg=0 this LJava8;
#1 : (in LJava8;)
name : 'lambda$main$0'
type : '(Ljava/lang/String;)V'
access : 0x1008 (STATIC SYNTHETIC)
code -
registers : 2
ins : 1
outs : 2
insns size : 6 16-bit code units
0002a0: |[0002a0] Java8.lambda$main$0:(Ljava/lang/String;)V
0002b0: 6200 0100 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0001
0002b4: 6e20 0800 1000 |0002: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0008
0002ba: 0e00 |0005: return-void
catches : (none)
positions :
0x0000 line=7
locals :
#2 : (in LJava8;)
name : 'load'
type : '(LJava8$Consumer;)V'
access : 0x0009 (PUBLIC STATIC)
code -
registers : 2
ins : 1
outs : 2
insns size : 6 16-bit code units
0002bc: |[0002bc] Java8.load:(LJava8$Consumer;)V
0002cc: 1a00 0800 |0000: const-string v0, "Hello!" // string@0008
0002d0: 7220 0300 0100 |0002: invoke-interface {v1, v0}, LJava8$Consumer;.accept:(Ljava/lang/Object;)V // method@0003
0002d6: 0e00 |0005: return-void
catches : (none)
positions :
0x0002 line=13
locals :
#3 : (in LJava8;)
name : 'main'
type : '([Ljava/lang/String;)V'
access : 0x0089 (PUBLIC STATIC VARARGS)
code -
registers : 1
ins : 1
outs : 1
insns size : 6 16-bit code units
0002d8: |[0002d8] Java8.main:([Ljava/lang/String;)V
0002e8: 6200 0000 |0000: sget-object v0, L-$$Lambda$Java8$ZLMFZvUeLmahhYBQbdt-2RNqTMA;.INSTANCE:L-$$Lambda$Java8$ZLMFZvUeLmahhYBQbdt-2RNqTMA; // field@0000
0002ec: 7110 0600 0000 |0002: invoke-static {v0}, LJava8;.load:(LJava8$Consumer;)V // method@0006
0002f2: 0e00 |0005: return-void
catches : (none)
positions :
0x0000 line=7
locals :
Virtual methods -
source_file_idx : 14 (Lambda.java)
Class #2 -
Class descriptor : 'L-$$Lambda$Java8$ZLMFZvUeLmahhYBQbdt-2RNqTMA;'
Access flags : 0x1011 (PUBLIC FINAL SYNTHETIC)
Superclass : 'Ljava/lang/Object;'
Interfaces -
#0 : 'LJava8$Consumer;'
Static fields -
#0 : (in L-$$Lambda$Java8$ZLMFZvUeLmahhYBQbdt-2RNqTMA;)
name : 'INSTANCE'
type : 'L-$$Lambda$Java8$ZLMFZvUeLmahhYBQbdt-2RNqTMA;'
access : 0x1019 (PUBLIC STATIC FINAL SYNTHETIC)
Instance fields -
Direct methods -
#0 : (in L-$$Lambda$Java8$ZLMFZvUeLmahhYBQbdt-2RNqTMA;)
name : ''
type : '()V'
access : 0x11008 (STATIC SYNTHETIC CONSTRUCTOR)
code -
registers : 1
ins : 0
outs : 1
insns size : 8 16-bit code units
000234: |[000234] -..Lambda.Java8.ZLMFZvUeLmahhYBQbdt-2RNqTMA.:()V
000244: 2200 0000 |0000: new-instance v0, L-$$Lambda$Java8$ZLMFZvUeLmahhYBQbdt-2RNqTMA; // type@0000
000248: 7010 0100 0000 |0002: invoke-direct {v0}, L-$$Lambda$Java8$ZLMFZvUeLmahhYBQbdt-2RNqTMA;.:()V // method@0001
00024e: 6900 0000 |0005: sput-object v0, L-$$Lambda$Java8$ZLMFZvUeLmahhYBQbdt-2RNqTMA;.INSTANCE:L-$$Lambda$Java8$ZLMFZvUeLmahhYBQbdt-2RNqTMA; // field@0000
000252: 0e00 |0007: return-void
catches : (none)
positions :
locals :
#1 : (in L-$$Lambda$Java8$ZLMFZvUeLmahhYBQbdt-2RNqTMA;)
name : ''
type : '()V'
access : 0x11002 (PRIVATE SYNTHETIC CONSTRUCTOR)
code -
registers : 1
ins : 1
outs : 1
insns size : 4 16-bit code units
000254: |[000254] -..Lambda.Java8.ZLMFZvUeLmahhYBQbdt-2RNqTMA.:()V
000264: 7010 0900 0000 |0000: invoke-direct {v0}, Ljava/lang/Object;.:()V // method@0009
00026a: 0e00 |0003: return-void
catches : (none)
positions :
locals :
Virtual methods -
#0 : (in L-$$Lambda$Java8$ZLMFZvUeLmahhYBQbdt-2RNqTMA;)
name : 'accept'
type : '(Ljava/lang/Object;)V'
access : 0x0011 (PUBLIC FINAL)
code -
registers : 2
ins : 2
outs : 1
insns size : 6 16-bit code units
00026c: |[00026c] -..Lambda.Java8.ZLMFZvUeLmahhYBQbdt-2RNqTMA.accept:(Ljava/lang/Object;)V
00027c: 1f01 0900 |0000: check-cast v1, Ljava/lang/String; // type@0009
000280: 7110 0500 0100 |0002: invoke-static {v1}, LJava8;.lambda$main$0:(Ljava/lang/String;)V // method@0005
000286: 0e00 |0005: return-void
catches : (none)
positions :
locals :
source_file_idx : 28 (lambda)
+ /Users/jakew/Library/Android/sdk/build-tools/28.0.2/dexdump -d r8.dex
Processing 'r8.dex'...
Opened 'r8.dex', DEX version '035'
Class #0 -
Class descriptor : 'LJava8;'
Access flags : 0x0000 ()
Superclass : 'Ljava/lang/Object;'
Interfaces -
Static fields -
Instance fields -
Direct methods -
#0 : (in LJava8;)
name : 'lambda$main$0'
type : '(Ljava/lang/String;)V'
access : 0x1008 (STATIC SYNTHETIC)
code -
registers : 2
ins : 1
outs : 2
insns size : 6 16-bit code units
000120: |[000120] Java8.lambda$main$0:(Ljava/lang/String;)V
000130: 6200 0000 |0000: sget-object v0, Ljava/lang/System;.out:Ljava/io/PrintStream; // field@0000
000134: 6e20 0200 1000 |0002: invoke-virtual {v0, v1}, Ljava/io/PrintStream;.println:(Ljava/lang/String;)V // method@0002
00013a: 0e00 |0005: return-void
catches : (none)
positions :
0x0000 line=1
locals :
#1 : (in LJava8;)
name : 'main'
type : '([Ljava/lang/String;)V'
access : 0x0089 (PUBLIC STATIC VARARGS)
code -
registers : 1
ins : 1
outs : 1
insns size : 8 16-bit code units
00013c: |[00013c] Java8.main:([Ljava/lang/String;)V
00014c: 1a00 0100 |0000: const-string v0, "Hello!" // string@0001
000150: 1f00 0300 |0002: check-cast v0, Ljava/lang/String; // type@0003
000154: 7110 0000 0000 |0004: invoke-static {v0}, LJava8;.lambda$main$0:(Ljava/lang/String;)V // method@0000
00015a: 0e00 |0007: return-void
catches : (none)
positions :
locals :
Virtual methods -
source_file_idx : 0 ()