Android запускает больше времени при запуске приложения во время первого запуска

В моем проекте я использовал библиотеки, которые требуют поддержки multidex. Основываясь на проведенных исследованиях, я узнал, что это вызывает задержку при запуске приложения.

Я включил функцию multidex в gradle. defaultConfig {multiDexEnabled true}

Я использовал для получения NoClassDefFound Exception для устройств kitkat, поэтому добавил следующее:

Я добавил имя приложения в манифест как  android: name= "android.support.multidex.MultiDexApplication"

и расширил мой класс приложений с помощью MultiDexApplication.

Я знаю, что любой из приведенных выше достаточно, но я только что написал оба.

Я попробовал разные способы оптимизации продолжительности запуска, как показано ниже:

1.добавленный продуктFlavors {     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:[email protected]'
    compile 'com.viewpagerindicator:library:[email protected]'
    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:[email protected]'
    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'
 }

Ответы

Ответ 1

Есть странная проблема с недавно выпущенными Android Studio 2.0 или 2.1. Первое время запуска приложения занимает больше времени, чем обычно. Эта проблема возникает только в режиме отладки и не влияет на ваш выпущенный APK. Также я страдаю этой проблемой и нашел это решение.

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

введите описание изображения здесь

Это решит вашу проблему, и если она будет отмечена как принятый ответ.

Ответ 2

В версии 2.0 и 2.1 студии Android есть проблема, но ответ прост. Вы должны пойти в Предпочтения/сборка, выполнение, развертывание/мгновенный запуск.

Затем, когда вы нажмете "Instant Run" в правой части, появится 4 варианта с флажком для echa one, вы должны снять отметку с первой и последней. Наконец нажмите "Применить", "ОК". И это все.

Это решит проблему