web-dev-qa-db-fra.com

Android prend plus de temps au démarrage de l'application lors du premier lancement)

Dans mon projet, j'ai utilisé des bibliothèques qui nécessitent un support multidex. Sur la base des recherches que j'ai faites, j'ai appris que cela entraînait un retard lors du démarrage de l'application.

J'ai activé la fonction multidex dans gradle. defaultConfig {multiDexEnabled true}

J'avais l'habitude d'obtenir l'exception NoClassDefFound pour les appareils KitKat, j'ai donc ajouté ce qui suit:

J'ai ajouté le nom de l'application dans le manifeste sous Android: name = "Android.support.multidex.MultiDexApplication"

et étendu ma classe d'application avec MultiDexApplication.

Je sais que tout ce qui précède est suffisant mais je viens d'écrire les deux.

J'ai essayé différentes façons d'optimiser la durée de démarrage comme suit:

1. ajout de productFlavors {dev {minSdkVersion 21} prod {minSdkVersion 14}}

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

  2. J'ai importé uniquement les bibliothèques du service google play requises au lieu d'importer la bibliothèque complète.

Pouvez-vous s'il vous plaît me suggérer une approche pour improviser la durée car cela prend en fait plus de 10 secondes et parfois même plus que cela dans certains appareils?

Ou y a-t-il une autre raison qui pourrait causer le retard en dehors du multidex?

Merci d'avance.

J'ai ajouté le contenu de mon fichier 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

Il y a un étrange problème avec la nouvelle version Android Studio 2.0 ou 2.1. La première fois que vous lancez l'application prend plus de temps que d'habitude. Ce problème se produit uniquement en mode débogage et n'a aucun effet sur votre APK publié. De plus, je souffrait de ce problème et a trouvé cette solution.

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

enter image description here

Cela résoudra votre problème et si c'est le cas, veuillez marquer comme réponse acceptée.

43
Anant Shah

Il y a un problème dans les versions 2.0 et 2.1 de Android studio, mais la réponse est simple. Vous devez aller dans Préférences/Build, Execution, Deployment/Instant Run.

Ensuite, lorsque vous cliquez sur "Instant Run" dans le côté droit apparaîtra 4 options avec une case à cocher pour echa one, vous devez décocher la première et la dernière. Enfin, cliquez sur Appliquer, OK. Et c'est tout.

Cela résoudra le problème

2
Leslie Morejon