InitExecutor.smali
.class public Lorg/acdd/dexopt/InitExecutor;
.super Ljava/lang/Object;
.source "InitExecutor.java"
# static fields
.field private static ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field static defaultInstruction:Ljava/lang/String;
.field static isART:Z
.field static final log:Lorg/acdd/log/Logger;
.field private static sDexOptLoaded:Z
# direct methods
.method static constructor <clinit>()V
.registers 4
.prologue
const/4 v0, 0x1
const/4 v1, 0x0
.line 44
sput-boolean v1, Lorg/acdd/dexopt/InitExecutor;->isART:Z
.line 45
new-instance v2, Ljava/util/HashMap;
invoke-direct {v2}, Ljava/util/HashMap;-><init>()V
sput-object v2, Lorg/acdd/dexopt/InitExecutor;->ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
.line 51
const-string v2, "java.vm.version"
invoke-static {v2}, Ljava/lang/System;->getProperty(Ljava/lang/String;)Ljava/lang/String;
move-result-object v2
.line 52
invoke-virtual {v2, v1}, Ljava/lang/String;->charAt(I)C
move-result v2
invoke-static {v2}, Ljava/lang/Character;->getNumericValue(C)I
move-result v2
const/4 v3, 0x2
if-lt v2, v3, :cond_82
:goto_1c
sput-boolean v0, Lorg/acdd/dexopt/InitExecutor;->isART:Z
.line 55
sget-object v0, Lorg/acdd/dexopt/InitExecutor;->ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
const-string v2, "armeabi"
const-string v3, "arm"
invoke-interface {v0, v2, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 56
sget-object v0, Lorg/acdd/dexopt/InitExecutor;->ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
const-string v2, "armeabi-v7a"
const-string v3, "arm"
invoke-interface {v0, v2, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 57
sget-object v0, Lorg/acdd/dexopt/InitExecutor;->ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
const-string v2, "mips"
const-string v3, "mips"
invoke-interface {v0, v2, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 58
sget-object v0, Lorg/acdd/dexopt/InitExecutor;->ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
const-string v2, "mips64"
const-string v3, "mips64"
invoke-interface {v0, v2, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 59
sget-object v0, Lorg/acdd/dexopt/InitExecutor;->ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
const-string v2, "x86"
const-string v3, "x86"
invoke-interface {v0, v2, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 60
sget-object v0, Lorg/acdd/dexopt/InitExecutor;->ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
const-string v2, "x86_64"
const-string v3, "x86_64"
invoke-interface {v0, v2, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 61
sget-object v0, Lorg/acdd/dexopt/InitExecutor;->ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
const-string v2, "arm64-v8a"
const-string v3, "arm64"
invoke-interface {v0, v2, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 62
sget-object v0, Lorg/acdd/dexopt/InitExecutor;->ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
sget-object v2, Landroid/os/Build;->CPU_ABI:Ljava/lang/String;
invoke-interface {v0, v2}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
sput-object v0, Lorg/acdd/dexopt/InitExecutor;->defaultInstruction:Ljava/lang/String;
.line 63
invoke-static {}, Lorg/acdd/log/LoggerFactory;->getInstance()Lorg/acdd/log/Logger;
move-result-object v0
sput-object v0, Lorg/acdd/dexopt/InitExecutor;->log:Lorg/acdd/log/Logger;
.line 64
sget-object v0, Lorg/acdd/dexopt/InitExecutor;->ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
invoke-interface {v0}, Ljava/util/Map;->clear()V
.line 65
const/4 v0, 0x0
sput-object v0, Lorg/acdd/dexopt/InitExecutor;->ABI_TO_INSTRUCTION_SET_MAP:Ljava/util/Map;
.line 66
sput-boolean v1, Lorg/acdd/dexopt/InitExecutor;->sDexOptLoaded:Z
.line 68
:try_start_79
const-string v0, "dexopt"
invoke-static {v0}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
.line 69
const/4 v0, 0x1
sput-boolean v0, Lorg/acdd/dexopt/InitExecutor;->sDexOptLoaded:Z
:try_end_81
.catch Ljava/lang/UnsatisfiedLinkError; {:try_start_79 .. :try_end_81} :catch_84
.line 73
:goto_81
return-void
:cond_82
move v0, v1
.line 52
goto :goto_1c
.line 70
:catch_84
move-exception v0
.line 71
invoke-virtual {v0}, Ljava/lang/UnsatisfiedLinkError;->printStackTrace()V
goto :goto_81
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 41
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method private static native dexopt(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)V
.end method
.method public static optDexFile(Ljava/lang/String;Ljava/lang/String;)Z
.registers 6
.prologue
const/4 v0, 0x1
const/4 v1, 0x0
.line 87
:try_start_2
sget-boolean v2, Lorg/acdd/dexopt/InitExecutor;->sDexOptLoaded:Z
if-eqz v2, :cond_24
.line 88
sget-boolean v2, Lorg/acdd/dexopt/InitExecutor;->isART:Z
if-eqz v2, :cond_15
sget-boolean v2, Lorg/acdd/framework/ACDDConfig;->optART:Z
if-eqz v2, :cond_15
.line 89
const/4 v2, 0x1
sget-object v3, Lorg/acdd/dexopt/InitExecutor;->defaultInstruction:Ljava/lang/String;
invoke-static {p0, p1, v2, v3}, Lorg/acdd/dexopt/InitExecutor;->dexopt(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)V
.line 99
:goto_14
return v0
.line 91
:cond_15
const/4 v2, 0x0
const-string v3, ""
invoke-static {p0, p1, v2, v3}, Lorg/acdd/dexopt/InitExecutor;->dexopt(Ljava/lang/String;Ljava/lang/String;ZLjava/lang/String;)V
:try_end_1b
.catch Ljava/lang/Throwable; {:try_start_2 .. :try_end_1b} :catch_1c
goto :goto_14
.line 96
:catch_1c
move-exception v0
.line 97
sget-object v2, Lorg/acdd/dexopt/InitExecutor;->log:Lorg/acdd/log/Logger;
const-string v3, "Exception while try to call native dexopt >>>"
invoke-interface {v2, v3, v0}, Lorg/acdd/log/Logger;->error(Ljava/lang/String;Ljava/lang/Throwable;)V
:cond_24
move v0, v1
.line 99
goto :goto_14
.end method