web-dev-qa-db-ja.com

Android初回起動時のアプリケーション起動に時間がかかる

私のプロジェクトでは、multidexのサポートを必要とするライブラリを使用しました。私が行った調査に基づいて、アプリの起動中に遅延が発生することがわかりました。

Gradleでmultidex機能を有効にしました。 defaultConfig {multiDexEnabled true}

以前はKitKatデバイスでNoClassDefFound Exceptionを取得していたため、以下を追加しました。

Android:name = "Android.support.multidex.MultiDexApplication"としてアプリケーション名をマニフェストに追加しました

multiDexApplicationでアプリケーションクラスを拡張しました。

上記のいずれかで十分であることはわかっていますが、両方を書いたばかりです。

次のように、起動時間を最適化するさまざまな方法を試しました。

1.追加されたproductFlavors {dev {minSdkVersion 21} prod {minSdkVersion 14}}

  1. dexOptions {preDexLibraries false javaMaxHeapSize "4g"}

  2. ライブラリ全体をインポートするのではなく、必要なGoogle Playサービスのライブラリのみをインポートしました。

一部のデバイスでは実際には10秒以上、場合によってはそれ以上の時間がかかるため、期間を即興にする方法を教えていただけませんか。

またはmultidex以外に遅延を引き起こしている可能性のある他の理由はありますか?

前もって感謝します。

Build.gradleファイルの内容を追加しました:

 apply plugin: 'com.Android.application'
 apply plugin: 'com.google.gms.google-services'

 Android {
  compileSdkVersion 23
  buildToolsVersion "23.0.3"
  useLibrary 'org.Apache.http.legacy'

 defaultConfig {
    applicationId "com.example.app"
    minSdkVersion 17
    targetSdkVersion 23
    versionCode 3
    versionName "1.2"
    multiDexEnabled true
}

dexOptions {
    incremental true
    javaMaxHeapSize "10g"
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
    }
  }
}

  dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile files('libs/ormlite-Android-4.28.jar')
    compile files('libs/ormlite-core-4.28.jar')
    compile project(':volley')
    compile 'com.Android.support:cardview-v7:23.2.1'
    compile 'com.Android.support:appcompat-v7:23.1.0'
    compile 'com.google.code.gson:gson:2.3.1'
    compile 'com.squareup.picasso:picasso:2.5.2'
    compile 'com.github.siyamed:Android-shape-imageview:0.9.+@aar'
    compile 'com.viewpagerindicator:library:2.4.1@aar'
    compile 'com.Android.support:design:23.2.1'
    compile 'com.facebook.Android:facebook-Android-sdk:4.1.2'
    compile 'org.jsoup:jsoup:1.8.2'
    compile 'org.Twitter4j:Twitter4j:4.0.3'
    compile 'com.github.castorflex.smoothprogressbar:library-circular:1.1.0'
    compile 'com.orhanobut:dialogplus:1.11@aar'
    compile 'com.google.Android.gms:play-services-maps:8.3.0'
    compile 'co m.google.Android.gms:play-services-gcm:8.3.0'
    compile 'com.google.Android.gms:play-services-location:8.3.0'
    compile 'org.Java-websocket:Java-WebSocket:1.3.0'
    compile 'org.Apache.commons:commons-lang3:3.4'
    compile 'com.Android.support:multidex:1.0.1'
    compile 'com.Android.support:recyclerview-v7:23.1.1'
 }
18
shakunthalaMK

新しくリリースされたAndroid Studio 2.0または2.1。この問題に苦しんでいて、この解決策を見つけました。

Settings/Preferences(Mac) → Build, Execution, Deployment → Instant Run and uncheck Instant Run

enter image description here

これで問題が解決します。問題が解決した場合は、承認済みの回答としてマークしてください。

43
Anant Shah

Android studioのバージョン2.0および2.1には問題がありますが、答えは簡単です。環境設定/ビルド、実行、デプロイメント/インスタントランに移動する必要があります。

次に、右側の「Instant Run」をクリックすると、echa oneのチェックボックスが付いた4つのオプションが表示されます。最初と最後のチェックボックスをオフにする必要があります。最後に、[Apply、Ok]をクリックします。そして、それだけです。

それで問題が解決します

2
Leslie Morejon