a.smali
.class public final Lsg/bigo/mobile/android/vmsaver/a;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field private static a:Z = false
# direct methods
.method static constructor <clinit>()V
.registers 0
return-void
.end method
.method public constructor <init>()V
.registers 1
.line 9
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static a(Landroid/content/Context;)V
.registers 4
.line 17
sget-boolean v0, Lsg/bigo/mobile/android/vmsaver/a;->a:Z
if-nez v0, :cond_57
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x15
if-lt v0, v1, :cond_57
sget-object v0, Landroid/os/Build;->SUPPORTED_64_BIT_ABIS:[Ljava/lang/String;
array-length v0, v0
if-lez v0, :cond_10
goto :goto_57
:cond_10
const/4 v0, 0x1
:try_start_11
const-string v1, "vm_saver"
.line 21
invoke-static {v1}, Ljava/lang/System;->loadLibrary(Ljava/lang/String;)V
.line 22
sput-boolean v0, Lsg/bigo/mobile/android/vmsaver/a;->a:Z
:try_end_18
.catchall {:try_start_11 .. :try_end_18} :catchall_19
goto :goto_37
.line 25
:catchall_19
:try_start_19
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object p0
invoke-virtual {p0}, Ljava/io/File;->getParent()Ljava/lang/String;
move-result-object p0
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "/lib/libvm_saver.so"
invoke-virtual {v1, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {p0}, Ljava/lang/System;->load(Ljava/lang/String;)V
.line 26
sput-boolean v0, Lsg/bigo/mobile/android/vmsaver/a;->a:Z
:try_end_37
.catchall {:try_start_19 .. :try_end_37} :catchall_57
.line 33
:goto_37
invoke-static {}, Lsg/bigo/mobile/android/vmsaver/VMSaverBridge;->a()Lsg/bigo/mobile/android/vmsaver/VMSaverBridge;
move-result-object p0
invoke-virtual {p0}, Lsg/bigo/mobile/android/vmsaver/VMSaverBridge;->enableThreadStack()V
.line 36
sget p0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v0, 0x1a
if-ge p0, v0, :cond_57
.line 38
invoke-static {}, Lsg/bigo/mobile/android/vmsaver/VMSaverBridge;->a()Lsg/bigo/mobile/android/vmsaver/VMSaverBridge;
move-result-object p0
invoke-static {}, Lsg/bigo/mobile/android/vmsaver/a;->a()Z
move-result v0
invoke-static {}, Ljava/lang/Runtime;->getRuntime()Ljava/lang/Runtime;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Runtime;->maxMemory()J
move-result-wide v1
invoke-virtual {p0, v0, v1, v2}, Lsg/bigo/mobile/android/vmsaver/VMSaverBridge;->enableRemoveHeap(ZJ)V
:catchall_57
:cond_57
:goto_57
return-void
.end method
.method private static a()Z
.registers 6
const/4 v0, 0x1
:try_start_1
const-string v1, "dalvik.system.VMRuntime"
.line 46
invoke-static {v1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v1
const-string v2, "getRuntime"
const/4 v3, 0x0
new-array v4, v3, [Ljava/lang/Class;
.line 47
invoke-virtual {v1, v2, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v2
const-string v4, "isCheckJniEnabled"
new-array v5, v3, [Ljava/lang/Class;
.line 48
invoke-virtual {v1, v4, v5}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v1
.line 49
invoke-virtual {v2, v0}, Ljava/lang/reflect/Method;->setAccessible(Z)V
.line 50
invoke-virtual {v1, v0}, Ljava/lang/reflect/Method;->setAccessible(Z)V
const/4 v4, 0x0
new-array v5, v3, [Ljava/lang/Object;
.line 51
invoke-virtual {v2, v4, v5}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
new-array v3, v3, [Ljava/lang/Object;
.line 52
invoke-virtual {v1, v2, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/Boolean;
invoke-virtual {v1}, Ljava/lang/Boolean;->booleanValue()Z
move-result v0
:try_end_31
.catch Ljava/lang/Exception; {:try_start_1 .. :try_end_31} :catch_32
goto :goto_42
:catch_32
move-exception v1
.line 54
invoke-static {v1}, Ljava/lang/String;->valueOf(Ljava/lang/Object;)Ljava/lang/String;
move-result-object v1
const-string v2, "isCheckJniEnabled failed "
invoke-virtual {v2, v1}, Ljava/lang/String;->concat(Ljava/lang/String;)Ljava/lang/String;
move-result-object v1
const-string v2, "vm_saver"
invoke-static {v2, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:goto_42
return v0
.end method