簡體   English   中英

應用程序啟動時間長

[英]Application Launch-Time to long

我對應用程序啟動時有問題。 如果我啟動我的應用程序(啟動主要活動),則需要大約3-4秒才能最終顯示應用程序。 我從onCreate方法中刪除了所有內容,因此它只包含setContentView(R.layout.activity_main),它設置了一個簡單的LinearLayout。 MainActivity中沒有復雜的布局結構或其他重型代碼。

為了記錄啟動時間,我使用了adb shell命令,它給出了以下輸出:

12-06 11:40:06.395 918 939 I am_activity_launch_time: [0,78089240, de.package.package/.MainActivity,3724,3724]

還有TraceView:

在此輸入圖像描述

我對TraceView並不熟悉,所以我對輸出知之甚少,但“bindApplication”部分需要很長時間。 我還在gradle文件中導入了一些我需要的應用程序庫,可能會影響啟動時間:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 25
    buildToolsVersion "25.0.0"

    repositories {
        mavenCentral()
        jcenter()
    }

    defaultConfig {
        applicationId "de.watado.watado"
        minSdkVersion 16
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}
dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:25.0.1'
    compile 'com.android.support:support-v4:25.0.1'
    compile 'com.squareup.retrofit2:retrofit:2.1.0'
    compile 'com.github.bumptech.glide:glide:3.7.0'
    compile 'com.balysv:material-ripple:1.0.2'
    compile 'com.google.android.gms:play-services-location:9.8.0'
    compile 'com.google.android.gms:play-services-maps:9.8.0'
    compile 'com.google.maps.android:android-maps-utils:0.4.4'
    compile 'com.crystal:crystalrangeseekbar:1.1.1'
    compile 'com.android.support:cardview-v7:25.0.1'
}

有誰知道為什么我的應用程序需要如此長時間才能顯示?

編輯:MainActivity

public class MainActivity extends FragmentActivity implements View.OnClickListener,
                                                          ViewPager.OnPageChangeListener{

private TextView tvHome, tvCat, tvSearch, tvLike;
private int currentPos = 0;
private ViewPager pager;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}

@Override
public void onClick(View view) {
    switch (view.getId()){
        case R.id.textView_home:
            changeButtonState(-1);
            break;
        case R.id.textView_categories:
            changeButtonState(0);
            break;
        case R.id.textView_search:
            changeButtonState(1);
            break;
        case R.id.textView_like:
            changeButtonState(2);
            break;
    }
}
}

您可以發布自定義應用程序類和第一個活動嗎? 另外,請在發布模式下檢查運行時間 - 由於例如InstantRun,調試模式可能需要更長時間

可能的原因:

  1. 使用Multidex增加啟動時間。

  2. 如果您清除數據並啟動應用程序,則需要更長時間,因為ART運行時將首先編譯應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM