Android在首次启动时需要更多时间启动应用程序

sha*_*aMK 18 android android-studio android-5.0-lollipop android-multidex

在我的项目中,我使用了需要multidex支持的库.根据我的研究,我发现它会导致应用启动时出现延迟.

我在gradle中启用了multidex功能.defaultConfig {multiDexEnabled true}

我曾经为kitkat设备获取NoClassDefFound Exception,所以我添加了以下内容:

我在清单中添加了应用程序名称为android:name ="android.support.multidex.MultiDexApplication"

并使用MultiDexApplication扩展了我的应用程序类.

我知道上面的任何一个都足够但我刚刚写了两个.

我尝试了不同的方法来优化启动的持续时间,如下所示:

1.added productFlavors {dev {minSdkVersion 21} prod {minSdkVersion 14}}

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

  2. 我只导入了必需的谷歌播放服务的库,而不是导入完整的库.

你能否建议我一种即兴创作的方法,因为它实际上需要超过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'
 }
Run Code Online (Sandbox Code Playgroud)

Ana*_*hah 43

新发布的Android Studio 2.0或2.1存在一个奇怪的问题.第一次启动应用程序需要比平时更长的时间.此问题仅在调试模式下发生,不会对您发布的APK产生影响.我也遇到了这个问题并找到了解决方案.

Settings/Preferences(Mac) ? Build, Execution, Deployment ? Instant Run and uncheck Instant Run
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

这将解决您的问题,如果是,请标记为已接受的答案.