AppStartTaskDispatcher.smali

.class public Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
.super Ljava/lang/Object;
.source "AppStartTaskDispatcher.java"


# static fields
.field private static final WAITING_TIME:I = 0x2710

.field private static volatile sAppStartTaskDispatcher:Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;


# instance fields
.field private isShowLog:Z

.field private mAllTaskWaitTimeOut:J

.field private mContext:Landroid/content/Context;

.field private mCountDownLatch:Ljava/util/concurrent/CountDownLatch;

.field private mFinishTime:J

.field private mNeedWaitCount:Ljava/util/concurrent/atomic/AtomicInteger;

.field private mSortMainThreadTaskList:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lcom/wxy/appstartfaster/d/a;",
            ">;"
        }
    .end annotation
.end field

.field private mSortTaskList:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lcom/wxy/appstartfaster/d/a;",
            ">;"
        }
    .end annotation
.end field

.field private mSortThreadPoolTaskList:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lcom/wxy/appstartfaster/d/a;",
            ">;"
        }
    .end annotation
.end field

.field private mStartTaskList:Ljava/util/List;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/List<",
            "Lcom/wxy/appstartfaster/d/a;",
            ">;"
        }
    .end annotation
.end field

.field private mStartTime:J

.field private mTaskChildHashMap:Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/HashMap<",
            "Ljava/lang/Class<",
            "+",
            "Lcom/wxy/appstartfaster/d/a;",
            ">;",
            "Ljava/util/List<",
            "Ljava/lang/Class<",
            "+",
            "Lcom/wxy/appstartfaster/d/a;",
            ">;>;>;"
        }
    .end annotation
.end field

.field private mTaskHashMap:Ljava/util/HashMap;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/HashMap<",
            "Ljava/lang/Class<",
            "+",
            "Lcom/wxy/appstartfaster/d/a;",
            ">;",
            "Lcom/wxy/appstartfaster/d/a;",
            ">;"
        }
    .end annotation
.end field


# direct methods
.method private constructor <init>()V
    .registers 2

    .line 1
    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    .line 2
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mTaskHashMap:Ljava/util/HashMap;

    .line 3
    new-instance v0, Ljava/util/HashMap;

    invoke-direct {v0}, Ljava/util/HashMap;-><init>()V

    iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mTaskChildHashMap:Ljava/util/HashMap;

    .line 4
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mStartTaskList:Ljava/util/List;

    .line 5
    new-instance v0, Ljava/util/concurrent/atomic/AtomicInteger;

    invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicInteger;-><init>()V

    iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mNeedWaitCount:Ljava/util/concurrent/atomic/AtomicInteger;

    .line 6
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortMainThreadTaskList:Ljava/util/List;

    .line 7
    new-instance v0, Ljava/util/ArrayList;

    invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V

    iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortThreadPoolTaskList:Ljava/util/List;

    return-void
.end method

.method private dispatchAppStartTask()V
    .registers 5

    .line 1
    iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortThreadPoolTaskList:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :cond_6
    :goto_6
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_25

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/wxy/appstartfaster/d/a;

    .line 2
    invoke-virtual {v1}, Lcom/wxy/appstartfaster/d/a;->isRunOnMainThread()Z

    move-result v2

    if-nez v2, :cond_6

    .line 3
    invoke-virtual {v1}, Lcom/wxy/appstartfaster/d/a;->runOnExecutor()Ljava/util/concurrent/Executor;

    move-result-object v2

    new-instance v3, Lcom/sandboxol/center/appstart/AppStartTaskRunnable;

    invoke-direct {v3, v1, p0}, Lcom/sandboxol/center/appstart/AppStartTaskRunnable;-><init>(Lcom/wxy/appstartfaster/d/a;Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;)V

    invoke-interface {v2, v3}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V

    goto :goto_6

    .line 4
    :cond_25
    iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortMainThreadTaskList:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :cond_2b
    :goto_2b
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_46

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/wxy/appstartfaster/d/a;

    .line 5
    invoke-virtual {v1}, Lcom/wxy/appstartfaster/d/a;->isRunOnMainThread()Z

    move-result v2

    if-eqz v2, :cond_2b

    .line 6
    new-instance v2, Lcom/sandboxol/center/appstart/AppStartTaskRunnable;

    invoke-direct {v2, v1, p0}, Lcom/sandboxol/center/appstart/AppStartTaskRunnable;-><init>(Lcom/wxy/appstartfaster/d/a;Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;)V

    invoke-virtual {v2}, Lcom/sandboxol/center/appstart/AppStartTaskRunnable;->run()V

    goto :goto_2b

    :cond_46
    return-void
.end method

.method public static getInstance()Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
    .registers 2

    .line 1
    sget-object v0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->sAppStartTaskDispatcher:Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;

    if-nez v0, :cond_17

    .line 2
    const-class v0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;

    monitor-enter v0

    .line 3
    :try_start_7
    sget-object v1, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->sAppStartTaskDispatcher:Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;

    if-nez v1, :cond_12

    .line 4
    new-instance v1, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;

    invoke-direct {v1}, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;-><init>()V

    sput-object v1, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->sAppStartTaskDispatcher:Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;

    .line 5
    :cond_12
    monitor-exit v0

    goto :goto_17

    :catchall_14
    move-exception v1

    monitor-exit v0
    :try_end_16
    .catchall {:try_start_7 .. :try_end_16} :catchall_14

    throw v1

    .line 6
    :cond_17
    :goto_17
    sget-object v0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->sAppStartTaskDispatcher:Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;

    return-object v0
.end method

.method private ifNeedWait(Lcom/wxy/appstartfaster/d/a;)Z
    .registers 3

    .line 1
    invoke-virtual {p1}, Lcom/wxy/appstartfaster/d/a;->isRunOnMainThread()Z

    move-result v0

    if-nez v0, :cond_e

    invoke-virtual {p1}, Lcom/wxy/appstartfaster/d/a;->needWait()Z

    move-result p1

    if-eqz p1, :cond_e

    const/4 p1, 0x1

    goto :goto_f

    :cond_e
    const/4 p1, 0x0

    :goto_f
    return p1
.end method

.method private initRealSortTask()V
    .registers 4

    .line 1
    iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortTaskList:Ljava/util/List;

    invoke-interface {v0}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object v0

    :goto_6
    invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z

    move-result v1

    if-eqz v1, :cond_24

    invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Lcom/wxy/appstartfaster/d/a;

    .line 2
    invoke-virtual {v1}, Lcom/wxy/appstartfaster/d/a;->isRunOnMainThread()Z

    move-result v2

    if-eqz v2, :cond_1e

    .line 3
    iget-object v2, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortMainThreadTaskList:Ljava/util/List;

    invoke-interface {v2, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    goto :goto_6

    .line 4
    :cond_1e
    iget-object v2, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortThreadPoolTaskList:Ljava/util/List;

    invoke-interface {v2, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    goto :goto_6

    :cond_24
    return-void
.end method

.method private printSortTask()V
    .registers 5

    .line 1
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v1, "\u5f53\u524d\u6240\u6709\u4efb\u52a1\u6392\u597d\u7684\u987a\u5e8f\u4e3a\uff1a"

    .line 2
    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    const/4 v1, 0x0

    .line 3
    :goto_c
    iget-object v2, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortTaskList:Ljava/util/List;

    invoke-interface {v2}, Ljava/util/List;->size()I

    move-result v2

    if-ge v1, v2, :cond_35

    .line 4
    iget-object v2, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortTaskList:Ljava/util/List;

    invoke-interface {v2, v1}, Ljava/util/List;->get(I)Ljava/lang/Object;

    move-result-object v2

    check-cast v2, Lcom/wxy/appstartfaster/d/a;

    invoke-virtual {v2}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v2

    invoke-virtual {v2}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;

    move-result-object v2

    if-nez v1, :cond_2a

    .line 5
    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    goto :goto_32

    :cond_2a
    const-string v3, "---\uff1e"

    .line 6
    invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    .line 7
    invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    :goto_32
    add-int/lit8 v1, v1, 0x1

    goto :goto_c

    .line 8
    :cond_35
    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Lcom/sandboxol/center/appstart/AppStartTaskLogUtil;->showLog(Ljava/lang/String;)V

    return-void
.end method


# virtual methods
.method public addAppStartTask(Lcom/wxy/appstartfaster/d/a;)Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
    .registers 3

    if-eqz p1, :cond_13

    .line 1
    iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mStartTaskList:Ljava/util/List;

    invoke-interface {v0, p1}, Ljava/util/List;->add(Ljava/lang/Object;)Z

    .line 2
    invoke-direct {p0, p1}, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->ifNeedWait(Lcom/wxy/appstartfaster/d/a;)Z

    move-result p1

    if-eqz p1, :cond_12

    .line 3
    iget-object p1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mNeedWaitCount:Ljava/util/concurrent/atomic/AtomicInteger;

    invoke-virtual {p1}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndIncrement()I

    :cond_12
    return-object p0

    .line 4
    :cond_13
    new-instance p1, Ljava/lang/RuntimeException;

    const-string v0, "addAppStartTask() \u4f20\u5165\u7684appStartTask\u4e3anull"

    invoke-direct {p1, v0}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw p1
.end method

.method public await()V
    .registers 6

    .line 1
    :try_start_0
    iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mCountDownLatch:Ljava/util/concurrent/CountDownLatch;

    if-eqz v0, :cond_3a

    .line 2
    iget-wide v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mAllTaskWaitTimeOut:J

    const-wide/16 v2, 0x0

    cmp-long v4, v0, v2

    if-nez v4, :cond_10

    const-wide/16 v0, 0x2710

    .line 3
    iput-wide v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mAllTaskWaitTimeOut:J

    .line 4
    :cond_10
    iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mCountDownLatch:Ljava/util/concurrent/CountDownLatch;

    iget-wide v1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mAllTaskWaitTimeOut:J

    sget-object v3, Ljava/util/concurrent/TimeUnit;->MILLISECONDS:Ljava/util/concurrent/TimeUnit;

    invoke-virtual {v0, v1, v2, v3}, Ljava/util/concurrent/CountDownLatch;->await(JLjava/util/concurrent/TimeUnit;)Z

    .line 5
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v0

    iget-wide v2, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mStartTime:J

    sub-long/2addr v0, v2

    iput-wide v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mFinishTime:J

    .line 6
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v1, "\u542f\u52a8\u8017\u65f6\uff1a"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    iget-wide v1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mFinishTime:J

    invoke-virtual {v0, v1, v2}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Lcom/sandboxol/center/appstart/AppStartTaskLogUtil;->showLog(Ljava/lang/String;)V

    goto :goto_47

    .line 7
    :cond_3a
    new-instance v0, Ljava/lang/RuntimeException;

    const-string/jumbo v1, "\u5728\u8c03\u7528await()\u4e4b\u524d\uff0c\u5fc5\u987b\u5148\u8c03\u7528start()"

    invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v0
    :try_end_43
    .catch Ljava/lang/InterruptedException; {:try_start_0 .. :try_end_43} :catch_43

    :catch_43
    move-exception v0

    .line 8
    invoke-virtual {v0}, Ljava/lang/InterruptedException;->printStackTrace()V

    :goto_47
    return-void
.end method

.method public isShowLog()Z
    .registers 2

    .line 1
    iget-boolean v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->isShowLog:Z

    return v0
.end method

.method public markAppStartTaskFinish(Lcom/wxy/appstartfaster/d/a;)V
    .registers 4

    .line 1
    new-instance v0, Ljava/lang/StringBuilder;

    invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V

    const-string/jumbo v1, "\u4efb\u52a1\u5b8c\u6210\u4e86\uff1a"

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object v1

    invoke-virtual {v1}, Ljava/lang/Class;->getSimpleName()Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;

    invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;

    move-result-object v0

    invoke-static {v0}, Lcom/sandboxol/center/appstart/AppStartTaskLogUtil;->showLog(Ljava/lang/String;)V

    .line 2
    invoke-direct {p0, p1}, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->ifNeedWait(Lcom/wxy/appstartfaster/d/a;)Z

    move-result p1

    if-eqz p1, :cond_2d

    .line 3
    iget-object p1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mCountDownLatch:Ljava/util/concurrent/CountDownLatch;

    invoke-virtual {p1}, Ljava/util/concurrent/CountDownLatch;->countDown()V

    .line 4
    iget-object p1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mNeedWaitCount:Ljava/util/concurrent/atomic/AtomicInteger;

    invoke-virtual {p1}, Ljava/util/concurrent/atomic/AtomicInteger;->getAndDecrement()I

    :cond_2d
    return-void
.end method

.method public setAllTaskWaitTimeOut(J)Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
    .registers 3

    .line 1
    iput-wide p1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mAllTaskWaitTimeOut:J

    return-object p0
.end method

.method public setContext(Landroid/content/Context;)Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
    .registers 2

    .line 1
    iput-object p1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mContext:Landroid/content/Context;

    return-object p0
.end method

.method public setNotifyChildren(Lcom/wxy/appstartfaster/d/a;)V
    .registers 4

    .line 1
    iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mTaskChildHashMap:Ljava/util/HashMap;

    invoke-virtual {p1}, Ljava/lang/Object;->getClass()Ljava/lang/Class;

    move-result-object p1

    invoke-virtual {v0, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object p1

    check-cast p1, Ljava/util/List;

    if-eqz p1, :cond_30

    .line 2
    invoke-interface {p1}, Ljava/util/List;->size()I

    move-result v0

    if-lez v0, :cond_30

    .line 3
    invoke-interface {p1}, Ljava/util/List;->iterator()Ljava/util/Iterator;

    move-result-object p1

    :goto_18
    invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z

    move-result v0

    if-eqz v0, :cond_30

    invoke-interface {p1}, Ljava/util/Iterator;->next()Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/lang/Class;

    .line 4
    iget-object v1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mTaskHashMap:Ljava/util/HashMap;

    invoke-virtual {v1, v0}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Lcom/wxy/appstartfaster/d/a;

    invoke-virtual {v0}, Lcom/wxy/appstartfaster/d/a;->Notify()V

    goto :goto_18

    :cond_30
    return-void
.end method

.method public setShowLog(Z)Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
    .registers 2

    .line 1
    iput-boolean p1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->isShowLog:Z

    return-object p0
.end method

.method public start()Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;
    .registers 4

    .line 1
    iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mContext:Landroid/content/Context;

    if-eqz v0, :cond_3f

    .line 2
    invoke-static {}, Landroid/os/Looper;->getMainLooper()Landroid/os/Looper;

    move-result-object v0

    invoke-static {}, Landroid/os/Looper;->myLooper()Landroid/os/Looper;

    move-result-object v1

    if-ne v0, v1, :cond_37

    .line 3
    invoke-static {}, Ljava/lang/System;->currentTimeMillis()J

    move-result-wide v0

    iput-wide v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mStartTime:J

    .line 4
    iget-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mStartTaskList:Ljava/util/List;

    iget-object v1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mTaskHashMap:Ljava/util/HashMap;

    iget-object v2, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mTaskChildHashMap:Ljava/util/HashMap;

    invoke-static {v0, v1, v2}, Lcom/wxy/appstartfaster/e/a;->a(Ljava/util/List;Ljava/util/HashMap;Ljava/util/HashMap;)Ljava/util/List;

    move-result-object v0

    iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mSortTaskList:Ljava/util/List;

    .line 5
    invoke-direct {p0}, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->initRealSortTask()V

    .line 6
    invoke-direct {p0}, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->printSortTask()V

    .line 7
    new-instance v0, Ljava/util/concurrent/CountDownLatch;

    iget-object v1, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mNeedWaitCount:Ljava/util/concurrent/atomic/AtomicInteger;

    invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicInteger;->get()I

    move-result v1

    invoke-direct {v0, v1}, Ljava/util/concurrent/CountDownLatch;-><init>(I)V

    iput-object v0, p0, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->mCountDownLatch:Ljava/util/concurrent/CountDownLatch;

    .line 8
    invoke-direct {p0}, Lcom/sandboxol/center/appstart/AppStartTaskDispatcher;->dispatchAppStartTask()V

    return-object p0

    .line 9
    :cond_37
    new-instance v0, Ljava/lang/RuntimeException;

    const-string v1, "start\u65b9\u6cd5\u5fc5\u987b\u5728\u4e3b\u7ebf\u7a0b\u8c03\u7528"

    invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v0

    .line 10
    :cond_3f
    new-instance v0, Ljava/lang/RuntimeException;

    const-string v1, "context\u4e3anull\uff0c\u8c03\u7528start()\u65b9\u6cd5\u524d\u5fc5\u987b\u8c03\u7528setContext()\u65b9\u6cd5"

    invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V

    throw v0
.end method