Код: Выделить всё
: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
Мобильная версия