Задержка запуска приложения Android, даже если multiDex отключен, TraceView показывает Dalvic.system.DexFile, запускаемый при запуске
Я занимался этим несколько дней и нигде не нашел решения. Первоначально время запуска было довольно долгим из-за процесса мультидексирования. Мне удалось избавиться от лишних библиотек сервисов Google, которые я не использую, и получить достаточно маленький код (ниже 2^16 методов), чтобы не было необходимости использовать multidex. Однако, когда я запускаю и смотрю на трассировку, я все еще вижу изображение ниже, которое показывает, что dalvic.system.dexfile запускается в главном потоке и запускается сначала около 3 секунд. Я также подключил свой gradle, показав отключенную опцию multidex. Любая идея, что вызывает dalvic.system.DexFile и как избавиться от него, если это возможно?
РЕДАКТИРОВАТЬ: после дальнейшего расследования, я думаю, что "Instant Run" может быть причиной. Пока не уверен! Было бы неплохо, если бы кто-то смог это подтвердить. Будет ли запуск в режиме мгновенного запуска вызывать какую-либо инициализацию при запуске приложения, которая может вызвать задержку? и будет ли это связано с 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'
...}