2

我已经为此工作了几天,但在任何地方都没有找到任何解决方案。由于多索引过程,最初启动时间很长。我设法摆脱了我没有使用的额外谷歌服务库,并使代码足够小(低于 2^16 方法参考)而不需要多 dex。但是,当我运行并查看 traceview 时,我仍然看到下图显示 dalvic.system.dexfile 在主线程中启动并首先运行约 3 秒。我附加了我的 gradle 以及显示禁用了多 dex 选项。知道是什么导致 dalvic.system.DexFile 启动以及如果可能的话如何摆脱它?

编辑:经过进一步调查,我认为“即时运行”可能是原因。还不确定!如果有人能证实这一点,那当然很好。运行即时运行会在应用启动时导致任何可能导致延迟的初始化吗?那会与dexfile有关吗?

编辑:我对 Instant Run 的效果做了一些搜索,发现了这个. 似乎即时运行确实会影响启动时间,经过一些没有即时运行的运行后,我的问题似乎得到了解决。

在此处输入图像描述

    apply plugin: 'com.android.application'

android {
    compileSdkVersion 24
    buildToolsVersion "24.0.0"

    defaultConfig {
        applicationId "com.example.main.projectone"
        minSdkVersion 18
        targetSdkVersion 24
        versionCode 1
        versionName "1.0"
        multiDexEnabled false
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'

...}
4

0 回答 0