Код: Выделить всё
:composeКод: Выделить всё
@Composable
fun MyComposable() {
Text("this runs fast in the compose module")
}
@Preview
@Composable
fun MyComposablePreview() {
MyComposable()
}
Код: Выделить всё
:appКод: Выделить всё
@Composable
fun MyComposableScreen() {
Text("this should run fast in the app module as well, but instead the entire app APK is being generated every time Run Preview is pressed")
}
@Preview
@Composable
fun MyComposableScreenPreview() {
MyComposableScreen()
}

для MyComposablePreview, то он запускает этот предварительный просмотр только самостоятельно, без какой-либо другой зависимости, просто отлично, это означает, что ничего другого, кроме этого предварительного просмотра, не будет выполнено.
Однако, если я сделаю то же самое в своем модуле :app с MyComposableScreenPreview, то он создаст весь APK-файл приложения вместе с самим экраном предварительного просмотра.
При каждом запуске всегда требуется столько же времени, сколько требуется для создания всего APK приложения. Это может занять несколько минут для каждого «Запустить предварительный просмотр» или дольше, если приложение больше. Запуск их в модуле :compose занимает максимум 2 секунды.
Это большая проблема, поскольку приложение также имеет много сложной логики перед его вводом (экран маршрутизация, этап входа в систему, этап настройки сервера и т. д.), что делает практичность предварительного просмотра создания, упомянутого выше, по большей части бесполезной, поскольку, если правильная настройка/конфигурация не существует, предварительный просмотр не отображается или перенаправляется на другой экран. .
Я пытался найти способ НЕ собирать весь APK при запуске предварительного просмотра компоновки в модуле :app, но пока ничего не нашел.
Есть ли какой-нибудь способ это сделать? Я настроил его так, чтобы он не создавал весь APK при запуске предварительного просмотра в модуле :app?
ПРИМЕЧАНИЕ. Просто не запускать предварительный просмотр в модуле :app будет не будет жизнеспособным решением, поскольку это уже было достигнуто (как я уже упоминал выше). Это требование позволяет мне запускать предварительный просмотр с логикой, которая существует только в модуле :app, а не в модуле :compose.
Подробнее здесь: https://stackoverflow.com/questions/793 ... apk-in-app
Мобильная версия