UMCrash.smali
.class public Lcom/umeng/umcrash/UMCrash;
.super Ljava/lang/Object;
.source "UMCrash.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/umeng/umcrash/UMCrash$CrashClientImpl;
}
.end annotation
# static fields
.field public static final KEY_CALLBACK_PAGE_ACTION:Ljava/lang/String; = "um_action_log"
.field public static final KEY_CALLBACK_UMID:Ljava/lang/String; = "um_umid"
.field public static final KEY_HEADER_APPKEY:Ljava/lang/String; = "um_app_key"
.field public static final KEY_HEADER_CHANNEL:Ljava/lang/String; = "um_app_channel"
.field public static final KEY_HEADER_CRASH_VERSION:Ljava/lang/String; = "um_crash_sdk_version"
.field public static final KEY_HEADER_OS:Ljava/lang/String; = "um_os"
.field private static final TAG:Ljava/lang/String;
.field private static crashSdkVersion:Ljava/lang/String;
.field private static isDebug:Z
.field private static isEncrypt:Z
.field private static isZip:Z
.field private static mArrayList:Ljava/util/ArrayList;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/ArrayList",
"<",
"Ljava/lang/String;",
">;"
}
.end annotation
.end field
.field private static mContext:Landroid/content/Context;
.field private static pageArrayLock:Ljava/lang/Object;
# direct methods
.method static constructor <clinit>()V
.registers 2
.prologue
const/4 v1, 0x1
.line 27
const-class v0, Lcom/umeng/umcrash/UMCrash;
invoke-virtual {v0}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/umeng/umcrash/UMCrash;->TAG:Ljava/lang/String;
.line 30
sput-boolean v1, Lcom/umeng/umcrash/UMCrash;->isDebug:Z
.line 31
const/4 v0, 0x0
sput-boolean v0, Lcom/umeng/umcrash/UMCrash;->isEncrypt:Z
.line 32
sput-boolean v1, Lcom/umeng/umcrash/UMCrash;->isZip:Z
.line 51
const-string v0, "v0.0.4"
sput-object v0, Lcom/umeng/umcrash/UMCrash;->crashSdkVersion:Ljava/lang/String;
.line 52
new-instance v0, Ljava/lang/Object;
invoke-direct {v0}, Ljava/lang/Object;-><init>()V
sput-object v0, Lcom/umeng/umcrash/UMCrash;->pageArrayLock:Ljava/lang/Object;
.line 53
new-instance v0, Ljava/util/ArrayList;
const/16 v1, 0xa
invoke-direct {v0, v1}, Ljava/util/ArrayList;-><init>(I)V
sput-object v0, Lcom/umeng/umcrash/UMCrash;->mArrayList:Ljava/util/ArrayList;
return-void
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 25
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static synthetic access$000()Ljava/lang/Object;
.registers 1
.prologue
.line 25
sget-object v0, Lcom/umeng/umcrash/UMCrash;->pageArrayLock:Ljava/lang/Object;
return-object v0
.end method
.method static synthetic access$100()Ljava/util/ArrayList;
.registers 1
.prologue
.line 25
sget-object v0, Lcom/umeng/umcrash/UMCrash;->mArrayList:Ljava/util/ArrayList;
return-object v0
.end method
.method static synthetic access$200()Z
.registers 1
.prologue
.line 25
sget-boolean v0, Lcom/umeng/umcrash/UMCrash;->isDebug:Z
return v0
.end method
.method static synthetic access$300()Ljava/lang/String;
.registers 1
.prologue
.line 25
sget-object v0, Lcom/umeng/umcrash/UMCrash;->TAG:Ljava/lang/String;
return-object v0
.end method
.method static synthetic access$400()Landroid/content/Context;
.registers 1
.prologue
.line 25
sget-object v0, Lcom/umeng/umcrash/UMCrash;->mContext:Landroid/content/Context;
return-object v0
.end method
.method static synthetic access$500(Landroid/content/Context;)Ljava/lang/String;
.registers 2
.prologue
.line 25
invoke-static {p0}, Lcom/umeng/umcrash/UMCrash;->getUMID(Landroid/content/Context;)Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method public static generateCustomLog(Ljava/lang/String;Ljava/lang/String;)V
.registers 8
.prologue
.line 259
invoke-static {p0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_c
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_14
.line 260
:cond_c
sget-object v0, Lcom/umeng/umcrash/UMCrash;->TAG:Ljava/lang/String;
const-string v1, "generate custom log failed ! e is null or type is empty"
invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 299
:goto_13
return-void
.line 265
:cond_14
:try_start_14
new-instance v2, Lcom/uc/crashsdk/export/CustomLogInfo;
const/4 v0, 0x0
const-string v1, "exception"
invoke-direct {v2, v0, v1}, Lcom/uc/crashsdk/export/CustomLogInfo;-><init>(Ljava/lang/StringBuffer;Ljava/lang/String;)V
.line 267
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 268
const-string v1, "um_umid"
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 269
const-string v1, "um_action_log"
invoke-virtual {v0, v1}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 270
iput-object v0, v2, Lcom/uc/crashsdk/export/CustomLogInfo;->mCallbacks:Ljava/util/ArrayList;
.line 272
new-instance v0, Ljava/util/HashMap;
const/16 v1, 0x14
invoke-direct {v0, v1}, Ljava/util/HashMap;-><init>(I)V
.line 273
const-string v1, "k_ct"
const-string v3, "exception"
invoke-interface {v0, v1, v3}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 274
const-string v1, "k_ac"
invoke-interface {v0, v1, p1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 275
new-instance v3, Ljava/lang/StringBuffer;
invoke-direct {v3}, Ljava/lang/StringBuffer;-><init>()V
.line 276
invoke-interface {v0}, Ljava/util/Map;->entrySet()Ljava/util/Set;
move-result-object v0
invoke-interface {v0}, Ljava/util/Set;->iterator()Ljava/util/Iterator;
move-result-object v4
:goto_4d
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_7b
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/Map$Entry;
.line 277
invoke-interface {v0}, Ljava/util/Map$Entry;->getKey()Ljava/lang/Object;
move-result-object v1
check-cast v1, Ljava/lang/String;
invoke-virtual {v3, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
const-string v5, ":"
invoke-virtual {v1, v5}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v1
invoke-interface {v0}, Ljava/util/Map$Entry;->getValue()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/lang/String;
invoke-virtual {v1, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
const-string v1, "\n"
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
goto :goto_4d
.line 296
:catch_79
move-exception v0
goto :goto_13
.line 279
:cond_7b
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "Exception message:\nBack traces starts.\n"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "\n"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "Back traces ends."
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 283
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v1
if-nez v1, :cond_a9
.line 285
invoke-virtual {v3, v0}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
move-result-object v0
const-string v1, "\n"
invoke-virtual {v0, v1}, Ljava/lang/StringBuffer;->append(Ljava/lang/String;)Ljava/lang/StringBuffer;
.line 287
:cond_a9
iput-object v3, v2, Lcom/uc/crashsdk/export/CustomLogInfo;->mData:Ljava/lang/StringBuffer;
.line 290
invoke-static {}, Lcom/uc/crashsdk/export/CrashApi;->getInstance()Lcom/uc/crashsdk/export/CrashApi;
move-result-object v0
.line 291
if-nez v0, :cond_ba
.line 292
sget-object v0, Lcom/umeng/umcrash/UMCrash;->TAG:Ljava/lang/String;
const-string v1, "CrashApi is null, not init ."
invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
goto/16 :goto_13
.line 294
:cond_ba
invoke-virtual {v0, v2}, Lcom/uc/crashsdk/export/CrashApi;->generateCustomLog(Lcom/uc/crashsdk/export/CustomLogInfo;)Z
:try_end_bd
.catch Ljava/lang/Throwable; {:try_start_14 .. :try_end_bd} :catch_79
goto/16 :goto_13
.end method
.method public static generateCustomLog(Ljava/lang/Throwable;Ljava/lang/String;)V
.registers 5
.prologue
.line 234
if-eqz p0, :cond_8
invoke-static {p1}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_10
.line 235
:cond_8
sget-object v0, Lcom/umeng/umcrash/UMCrash;->TAG:Ljava/lang/String;
const-string v1, "generate custom log failed ! e is null or type is empty"
invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 256
:goto_f
return-void
.line 240
:cond_10
:try_start_10
new-instance v0, Lcom/umeng/umcrash/UMCustomLogInfoBuilder;
invoke-direct {v0, p1}, Lcom/umeng/umcrash/UMCustomLogInfoBuilder;-><init>(Ljava/lang/String;)V
.line 241
invoke-virtual {v0, p0}, Lcom/umeng/umcrash/UMCustomLogInfoBuilder;->stack(Ljava/lang/Throwable;)Lcom/umeng/umcrash/UMCustomLogInfoBuilder;
move-result-object v0
.line 242
invoke-virtual {v0}, Lcom/umeng/umcrash/UMCustomLogInfoBuilder;->build()Lcom/uc/crashsdk/export/CustomLogInfo;
move-result-object v0
.line 243
new-instance v1, Ljava/util/ArrayList;
invoke-direct {v1}, Ljava/util/ArrayList;-><init>()V
.line 244
const-string v2, "um_umid"
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 245
const-string v2, "um_action_log"
invoke-virtual {v1, v2}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 246
iput-object v1, v0, Lcom/uc/crashsdk/export/CustomLogInfo;->mCallbacks:Ljava/util/ArrayList;
.line 247
invoke-static {}, Lcom/uc/crashsdk/export/CrashApi;->getInstance()Lcom/uc/crashsdk/export/CrashApi;
move-result-object v1
.line 248
if-nez v1, :cond_3e
.line 249
sget-object v0, Lcom/umeng/umcrash/UMCrash;->TAG:Ljava/lang/String;
const-string v1, "CrashApi is null, not init ."
invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_f
.line 253
:catch_3c
move-exception v0
goto :goto_f
.line 251
:cond_3e
invoke-virtual {v1, v0}, Lcom/uc/crashsdk/export/CrashApi;->generateCustomLog(Lcom/uc/crashsdk/export/CustomLogInfo;)Z
:try_end_41
.catch Ljava/lang/Throwable; {:try_start_10 .. :try_end_41} :catch_3c
goto :goto_f
.end method
.method private static declared-synchronized getUMID(Landroid/content/Context;)Ljava/lang/String;
.registers 8
.prologue
const/4 v0, 0x0
.line 110
const-class v2, Lcom/umeng/umcrash/UMCrash;
monitor-enter v2
if-nez p0, :cond_8
.line 137
:cond_6
:goto_6
monitor-exit v2
return-object v0
.line 117
:cond_8
:try_start_8
const-string v1, "com.umeng.commonsdk.UMConfigure"
invoke-static {v1}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
:try_end_d
.catch Ljava/lang/ClassNotFoundException; {:try_start_8 .. :try_end_d} :catch_32
.catchall {:try_start_8 .. :try_end_d} :catchall_38
move-result-object v1
.line 120
:goto_e
if-eqz v1, :cond_6
.line 123
:try_start_10
const-string v3, "getUMIDString"
const/4 v4, 0x1
new-array v4, v4, [Ljava/lang/Class;
const/4 v5, 0x0
const-class v6, Landroid/content/Context;
aput-object v6, v4, v5
invoke-virtual {v1, v3, v4}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
:try_end_1d
.catch Ljava/lang/NoSuchMethodException; {:try_start_10 .. :try_end_1d} :catch_35
.catchall {:try_start_10 .. :try_end_1d} :catchall_38
move-result-object v1
.line 126
:goto_1e
if-eqz v1, :cond_6
.line 128
const/4 v3, 0x0
const/4 v4, 0x1
:try_start_22
new-array v4, v4, [Ljava/lang/Object;
const/4 v5, 0x0
aput-object p0, v4, v5
invoke-virtual {v1, v3, v4}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v1
.line 129
if-eqz v1, :cond_6
.line 130
invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
:try_end_30
.catch Ljava/lang/IllegalAccessException; {:try_start_22 .. :try_end_30} :catch_3d
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_22 .. :try_end_30} :catch_3b
.catchall {:try_start_22 .. :try_end_30} :catchall_38
move-result-object v0
goto :goto_6
.line 118
:catch_32
move-exception v1
move-object v1, v0
goto :goto_e
.line 124
:catch_35
move-exception v1
move-object v1, v0
goto :goto_1e
.line 110
:catchall_38
move-exception v0
monitor-exit v2
throw v0
.line 133
:catch_3b
move-exception v1
goto :goto_6
.line 132
:catch_3d
move-exception v1
goto :goto_6
.end method
.method public static init(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
.registers 7
.prologue
.line 156
if-eqz p0, :cond_4
if-nez p1, :cond_c
.line 157
:cond_4
sget-object v0, Lcom/umeng/umcrash/UMCrash;->TAG:Ljava/lang/String;
const-string v1, "context is null or appkey is null, init failed."
invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 224
:goto_b
return-void
.line 161
:cond_c
sput-object p0, Lcom/umeng/umcrash/UMCrash;->mContext:Landroid/content/Context;
.line 164
:try_start_e
new-instance v0, Landroid/os/Bundle;
invoke-direct {v0}, Landroid/os/Bundle;-><init>()V
.line 165
const-string v1, "mDebug"
sget-boolean v2, Lcom/umeng/umcrash/UMCrash;->isDebug:Z
invoke-virtual {v0, v1, v2}, Landroid/os/Bundle;->putBoolean(Ljava/lang/String;Z)V
.line 166
const-string v1, "mEncryptLog"
sget-boolean v2, Lcom/umeng/umcrash/UMCrash;->isEncrypt:Z
invoke-virtual {v0, v1, v2}, Landroid/os/Bundle;->putBoolean(Ljava/lang/String;Z)V
.line 167
const-string v1, "mZipLog"
sget-boolean v2, Lcom/umeng/umcrash/UMCrash;->isZip:Z
invoke-virtual {v0, v1, v2}, Landroid/os/Bundle;->putBoolean(Ljava/lang/String;Z)V
.line 168
sget-boolean v1, Lcom/umeng/umcrash/UMCrash;->isDebug:Z
new-instance v2, Lcom/umeng/umcrash/UMCrash$CrashClientImpl;
const/4 v3, 0x0
invoke-direct {v2, v3}, Lcom/umeng/umcrash/UMCrash$CrashClientImpl;-><init>(Lcom/umeng/umcrash/UMCrash$1;)V
invoke-static {p0, p1, v1, v0, v2}, Lcom/uc/crashsdk/export/CrashApi;->createInstanceEx(Landroid/content/Context;Ljava/lang/String;ZLandroid/os/Bundle;Lcom/uc/crashsdk/export/ICrashClient;)Lcom/uc/crashsdk/export/CrashApi;
move-result-object v0
.line 169
if-eqz v0, :cond_74
.line 170
const-string v1, "um_app_key"
invoke-virtual {v0, v1, p1}, Lcom/uc/crashsdk/export/CrashApi;->addHeaderInfo(Ljava/lang/String;Ljava/lang/String;)V
.line 171
const-string v1, "um_app_channel"
invoke-virtual {v0, v1, p2}, Lcom/uc/crashsdk/export/CrashApi;->addHeaderInfo(Ljava/lang/String;Ljava/lang/String;)V
.line 172
const-string v1, "um_os"
const-string v2, "android"
invoke-virtual {v0, v1, v2}, Lcom/uc/crashsdk/export/CrashApi;->addHeaderInfo(Ljava/lang/String;Ljava/lang/String;)V
.line 173
const-string v1, "um_crash_sdk_version"
sget-object v2, Lcom/umeng/umcrash/UMCrash;->crashSdkVersion:Ljava/lang/String;
invoke-virtual {v0, v1, v2}, Lcom/uc/crashsdk/export/CrashApi;->addHeaderInfo(Ljava/lang/String;Ljava/lang/String;)V
.line 175
instance-of v1, p0, Landroid/app/Application;
if-eqz v1, :cond_6c
.line 176
check-cast p0, Landroid/app/Application;
new-instance v1, Lcom/umeng/umcrash/UMCrash$1;
invoke-direct {v1}, Lcom/umeng/umcrash/UMCrash$1;-><init>()V
invoke-virtual {p0, v1}, Landroid/app/Application;->registerActivityLifecycleCallbacks(Landroid/app/Application$ActivityLifecycleCallbacks;)V
.line 213
const v1, 0x100011
.line 214
const-string v2, "um_umid"
invoke-virtual {v0, v2, v1}, Lcom/uc/crashsdk/export/CrashApi;->registerInfoCallback(Ljava/lang/String;I)I
.line 215
const-string v2, "um_action_log"
invoke-virtual {v0, v2, v1}, Lcom/uc/crashsdk/export/CrashApi;->registerInfoCallback(Ljava/lang/String;I)I
goto :goto_b
.line 222
:catch_6a
move-exception v0
goto :goto_b
.line 217
:cond_6c
sget-object v0, Lcom/umeng/umcrash/UMCrash;->TAG:Ljava/lang/String;
const-string v1, "context not instanceof application."
invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_b
.line 220
:cond_74
sget-object v0, Lcom/umeng/umcrash/UMCrash;->TAG:Ljava/lang/String;
const-string v1, "create CrashAPI is null."
invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
:try_end_7b
.catch Ljava/lang/Throwable; {:try_start_e .. :try_end_7b} :catch_6a
goto :goto_b
.end method
.method public static setDebug(Z)V
.registers 1
.prologue
.line 145
sput-boolean p0, Lcom/umeng/umcrash/UMCrash;->isDebug:Z
.line 146
return-void
.end method