2016-12-06 12 views
1

アプリケーションの起動時間に問題があります。私が(主な活動を開始して)私のアプリを起動すると、アプリが最終的に表示されるまで約3-4秒かかりました。私はonCreateメソッドからすべてを削除したので、単純なLinearLayoutを設定するsetContentView(R.layout.activity_main)のみが含まれています。 MainActivityには複雑なレイアウト構造や他の重いコードはありません。アプリケーションの起動時間が長くなる

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

ともTraceView:私は次の出力与える私はadbのシェルコマンドの両方を使用し起動時間をログに記録するため

enter image description here

を私がして本当に慣れていませんよ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' 
} 

誰でも知っていますか?

EDIT: 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; 
    } 
} 
} 
+0

アプリケーションマニフェストファイル –

+0

を共有してください。コードが不足しているようです。あなたは何のためにこれらの依存関係のすべてを持っていますか? – zombie

+0

あなたのアプリ(スプラッシュ画面)の画像を使用している場合は、そのサイズと解像度を確認してください – zombie

答えて

0

は、あなたのカスタムアプリケーションのクラスと最初のアクティビティを投稿してもらえますか?また、リリースモードで実行時間を確認してください。たとえば、デバッグモードが長くなることがあります。 InstantRun

+0

私の質問が更新されましたが、私はカスタムアプリケーションクラスを使用しません。 – RyuZz

+0

さて、リリース版をビルドして起動時間を確認してみてください。恐らくそれについて心配する必要はありません –

+0

リリースバージョンでは同じ起動時刻です:/ – RyuZz

0

考えられる理由:

  1. Multidexを使用するには、起動時間が増加します。

  2. データを消去してアプリを起動すると、ARTランタイムの が最初にアプリをコンパイルするので、時間がかかります。

+0

私はmultidexを使用せず、再構築ははるかに高い(約5秒)。 – RyuZz

+0

Google Playストアから新しくアプリをインストールした後の起動時間はあまり高くありません。インストール時には、ARTコンパイル時のアカウントもあるためです。 –

関連する問題