mirror of
https://github.com/revanced/smali.git
synced 2025-06-13 12:37:37 +02:00
moved the examples
git-svn-id: https://smali.googlecode.com/svn/trunk@79 55b6fa8a-2a1e-11de-a435-ffa8d773f76a
This commit is contained in:
6
examples/AnnotationValues/10.smali
Normal file
6
examples/AnnotationValues/10.smali
Normal file
@ -0,0 +1,6 @@
|
||||
.class public L10;
|
||||
.super Ljava/lang/Object;
|
||||
|
||||
.method public static 11()V
|
||||
return-void
|
||||
.end method
|
67
examples/AnnotationValues/AnnotationWithValues.smali
Normal file
67
examples/AnnotationValues/AnnotationWithValues.smali
Normal file
@ -0,0 +1,67 @@
|
||||
.class public abstract interface annotation LAnnotationWithValues;
|
||||
.super Ljava/lang/Object;
|
||||
.implements Ljava/lang/annotation/Annotation;
|
||||
|
||||
.method public abstract booleanValue()Z
|
||||
.end method
|
||||
|
||||
.method public abstract byteValue()B
|
||||
.end method
|
||||
|
||||
.method public abstract charValue()C
|
||||
.end method
|
||||
|
||||
.method public abstract shortValue()S
|
||||
.end method
|
||||
|
||||
.method public abstract intValue()I
|
||||
.end method
|
||||
|
||||
.method public abstract longValue()J
|
||||
.end method
|
||||
|
||||
.method public abstract floatValue()F
|
||||
.end method
|
||||
|
||||
.method public abstract doubleValue()D
|
||||
.end method
|
||||
|
||||
.method public abstract stringValue()Ljava/lang/String;
|
||||
.end method
|
||||
|
||||
.method public abstract subAnnotationValue()LSubAnnotation;
|
||||
.end method
|
||||
|
||||
.method public abstract typeValue()Ljava/lang/Class;
|
||||
.end method
|
||||
|
||||
.method public abstract methodValue()Ljava/lang/reflect/Method;
|
||||
.end method
|
||||
|
||||
;dalvik doesn't seem to like field values
|
||||
;.method public abstract fieldValue()Ljava/lang/reflect/Field;
|
||||
;.end method
|
||||
|
||||
.method public abstract enumValue()LEnum;
|
||||
.end method
|
||||
|
||||
.annotation system Ldalvik/annotation/AnnotationDefault;
|
||||
value = .subannotation LAnnotationWithValues;
|
||||
booleanValue = false
|
||||
byteValue = 1t
|
||||
charValue = '2'
|
||||
shortValue = 3s
|
||||
intValue = 4
|
||||
longValue = 5l
|
||||
floatValue = 6.0f
|
||||
doubleValue = 7.0
|
||||
stringValue = "8"
|
||||
subAnnotationValue = .subannotation LSubAnnotation;
|
||||
stringValue = "9"
|
||||
.end subannotation
|
||||
typeValue = L10;
|
||||
methodValue = L10;->11()V
|
||||
enumValue = .enum LEnum;->12:LEnum;
|
||||
.end subannotation
|
||||
.end annotation
|
||||
|
52
examples/AnnotationValues/Enum.smali
Normal file
52
examples/AnnotationValues/Enum.smali
Normal file
@ -0,0 +1,52 @@
|
||||
.class public final enum LEnum;
|
||||
.super Ljava/lang/Enum;
|
||||
|
||||
.field private static final synthetic $VALUES:[LEnum;
|
||||
|
||||
.field public static final enum 12:LEnum;
|
||||
|
||||
.method static constructor <clinit>()V
|
||||
.registers 4
|
||||
|
||||
const/4 v3, 1
|
||||
const/4 v2, 0
|
||||
new-instance v0, LEnum;
|
||||
const-string v1, "12"
|
||||
invoke-direct {v0, v1, v2}, LEnum;-><init>(Ljava/lang/String;I)V
|
||||
sput-object v0, LEnum;->12:LEnum;
|
||||
|
||||
const/4 v0, 1
|
||||
new-array v0, v0, [LEnum;
|
||||
sget-object v1, LEnum;->12:LEnum;
|
||||
aput-object v1, v0, v2
|
||||
|
||||
sput-object v0, LEnum;->$VALUES:[LEnum;
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method private constructor <init>(Ljava/lang/String;I)V
|
||||
.registers 3
|
||||
|
||||
invoke-direct {v0, v1, v2}, Ljava/lang/Enum;-><init>(Ljava/lang/String;I)V
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.method public static valueOf(Ljava/lang/String;)LEnum;
|
||||
.registers 2
|
||||
|
||||
const-class v0, LEnum;
|
||||
invoke-static {v0, v1}, Ljava/lang/Enum;->valueOf(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Enum;
|
||||
move-result-object v1
|
||||
check-cast v1, LEnum;
|
||||
return-object v1
|
||||
.end method
|
||||
|
||||
.method public static values()[LEnum;
|
||||
.registers 1
|
||||
|
||||
sget-object v0, LEnum;->$VALUES:[LEnum;
|
||||
invoke-virtual {v0}, [LEnum;->clone()Ljava/lang/Object;
|
||||
move-result-object v0
|
||||
check-cast v0, [LEnum;
|
||||
return-object v0
|
||||
.end method
|
25
examples/AnnotationValues/Main.smali
Normal file
25
examples/AnnotationValues/Main.smali
Normal file
@ -0,0 +1,25 @@
|
||||
.class public LMain;
|
||||
.super Ljava/lang/Object;
|
||||
|
||||
;expected output:
|
||||
;@AnnotationWithValues(booleanValue=false, byteValue=1, charValue=2, doubleValue=7.0, enumValue=12, floatValue=6.0, intValue=4, longValue=5, methodValue=public static void 10.11(), shortValue=3, stringValue=8, subAnnotationValue=@SubAnnotation(stringValue=9), typeValue=class 10)
|
||||
|
||||
|
||||
.method public static main([Ljava/lang/String;)V
|
||||
.registers 3
|
||||
|
||||
sget-object v0, Ljava/lang/System;->out:Ljava/io/PrintStream;
|
||||
|
||||
const-class v1, LMain;
|
||||
const-class v2, LAnnotationWithValues;
|
||||
|
||||
invoke-virtual {v1, v2}, Ljava/lang/Class;->getAnnotation(Ljava/lang/Class;)Ljava/lang/annotation/Annotation;
|
||||
move-result-object v1
|
||||
|
||||
invoke-virtual {v0, v1}, Ljava/io/PrintStream;->println(Ljava/lang/Object;)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
.annotation runtime LAnnotationWithValues;
|
||||
.end annotation
|
6
examples/AnnotationValues/SubAnnotation.smali
Normal file
6
examples/AnnotationValues/SubAnnotation.smali
Normal file
@ -0,0 +1,6 @@
|
||||
.class public abstract interface annotation LSubAnnotation;
|
||||
.super Ljava/lang/Object;
|
||||
.implements Ljava/lang/annotation/Annotation;
|
||||
|
||||
.method public abstract stringValue()Ljava/lang/String;
|
||||
.end method
|
Reference in New Issue
Block a user