Почему приложение запускается с 40 секундной задержкой?
В моем SplashActivity
я использовал retrofit
а также eventbus
,
Я должен ждать начала запроса на модернизацию или, возможно, начать APP
не менее 40 секунд.
до этого просто показывает белую страницу.
в каждую секунду я получаю две серии журналов:
01-04 09:36:08.104 5217-5217/? W/dex2oat: Unexpected CPU variant for X86 using defaults: x86
01-04 09:36:08.104 5217-5217/? W/dex2oat: Mismatch between dex2oat instruction set features (ISA: X86 Feature string: smp,-ssse3,-sse4.1,-sse4.2,-avx,-avx2,-lock_add,-popcnt) and those of dex2oat executable (ISA: X86 Feature string: smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2,-lock_add,-popcnt) for the command line:
01-04 09:36:08.104 5217-5217/? W/dex2oat: /system/bin/dex2oat --runtime-arg -classpath --runtime-arg & --debuggable --instruction-set=x86 --instruction-set-features=smp,ssse3,-sse4.1,-sse4.2,-avx,-avx2,-lock_add,-popcnt --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=x86 --instruction-set-features=default --dex-file=/data/data/com.idek_2.titrefarsi/files/instant-run/dex/slice-com.android.support-cardview-v7-25.0.1_1baeb40f31cb26daebad20328eaaeda07318001c-classes.dex --oat-fd=35 --oat-location=/data/user/0/com.idek_2.titrefarsi/cache/slice-com.android.support-cardview-v7-25.0.1_1baeb40f31cb26daebad20328eaaeda07318001c-classes.dex --compiler-filter=speed
01-04 09:36:08.106 5217-5217/? I/dex2oat: /system/bin/dex2oat --debuggable --dex-file=/data/data/com.idek_2.titrefarsi/files/instant-run/dex/slice-com.android.support-cardview-v7-25.0.1_1baeb40f31cb26daebad20328eaaeda07318001c-classes.dex --oat-fd=35 --oat-location=/data/user/0/com.idek_2.titrefarsi/cache/slice-com.android.support-cardview-v7-25.0.1_1baeb40f31cb26daebad20328eaaeda07318001c-classes.dex --compiler-filter=speed
01-04 09:36:08.618 5217-5217/? I/dex2oat: dex2oat took 514.000ms (threads: 2) arena alloc=259KB (266112B) java alloc=86KB (88464B) native alloc=830KB (850408B) free=1729KB (1771032B)
что я должен делать?
Благодарю.
1 ответ
Отключить мгновенный запуск, а также отключить развертывание при мгновенном запуске из Файл -> Настройки
В частности, Mismatch between dex2oat instruction set features
предупреждение - которое может вызывать задержку, может быть результатом того факта, что работающий эмулятор был настроен для работы с ABI (например, x86, x86_64), для которого собственные библиотеки недоступны внутри связанного APK.
Например, возможно, что эмулятор запускает один x86_64
CPU/ABI и что APK включает только собственные библиотеки для x86
и возможно) armeabi-v7a
.
Проверить ABI эмулятора легко с помощью Android Studio:
(здесь эмулятор x86
).
Проверить, какие варианты нативных библиотек включены, также легко с помощью Android Studio. Откройте файл APK, дважды нажав на него в дереве файлов проекта, или перетащите его снаружи. Затем разверните часть дерева содержимого lib:
(Здесь вы видите, что были включены все распространенные ABI, а именно x86_64
, x86
а также armeabi-v7a
).
Итак, чтобы попытаться решить эту проблему (у меня это сработало), вы можете попробовать либо воссоздать правильный AVD, либо пересмотреть свое приложение. splits
конфигурация. Это типичная конфигурация для стандартного одноадресного APK:
android {
// ...
splits {
abi {
reset()
enable false
universalApk false
include 'armeabi-v7a', 'x86', 'x86_64'
}
}
}
Вы можете контролировать содержание APK в этом отношении в include
часть. Однако имейте в виду, что без разделения APK его общий размер увеличивается.
Если у вас более сложная конфигурация разделения APK, вы все равно можете получить этот результат, но лучше сначала обратитесь к официальной документации.