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

时间:2016-05-18 10:12:53

标签: android android-studio android-5.0-lollipop android-multidex

在我的项目中,我使用了需要multidex支持的库。根据我所做的研究,我发现在应用程序启动时会导致延迟。

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

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

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

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

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

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

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

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

  2. 我只导入了必需的google play服务库,而不是导入完整的库。

  3. 你能否建议我采用一种方法来改善持续时间,因为它实际上需要超过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'
     }
    

2 个答案:

答案 0 :(得分:43)

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

[{
    "_id" : ObjectId("57496afadc964de30a8084a1"),
    "name" : "MongoDB: The Definitive Guide",
    "tags" : [ "IT", "SQL" ]
},{
    "_id" : ObjectId("57496afadc964de30a8084a2"),
    "name" : "MongoDB Applied Design Patterns",
    "tags" : [ "SQL", "MongoDB" ]
}]

enter image description here

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

答案 1 :(得分:2)

Android studio的2.0和2.1版存在问题,但答案很简单。你必须去 首选项/构建,执行,部署/即时运行。

然后当您单击右侧的“即时运行”时,将出现4个选项,其中包含echa one的复选框,您必须取消选中第一个和最后一个。 最后单击Apply,Ok。 这就是全部。

这将解决问题