wayground logo

Free Printable Worksheets

NEW

Font size

S
M
L
XL
Worksheets

Android quiz

Total questions: 15

Worksheet time: 34mins

Name
Class
Date
1.

Как можно использовать CoroutineScope и SupervisorJob для создания отказоустойчивой иерархии coroutines, в которой исключения в одной coroutine не влияют на другие, даже при использовании разных dispatchers?

a)

Запуская дочерние coroutines в CoroutineScope, родительским элементом которой является SupervisorJob, можно изолировать исключения для отдельных coroutines. Даже если дочерняя coroutine, запущенная на другом dispatcher, выдает исключение, оно не распространится на родительскую

b)

Используя SupervisorJob в качестве родительской для всех coroutines в приложении, можно предотвратить сбой всего приложения из-за любого исключения.

c)

Используя withContext() с SupervisorJob в качестве элемента context, можно изолировать исключения для определенных блоков кода в coroutine.

d)

Используя блоки try-catch в каждой coroutine, можно обрабатывать исключения локально и не допускать их распространения на другие coroutines.

2.

Рассмотрите следующий фрагмент кода.

Что произойдет, если исключение будет выброшено внутри async block?

a)

Исключение будет выброшено немедленно при выполнении асинхронного блока.

b)

Исключение будет молчаливо проигнорировано.

c)

Исключение будет выброшено при вызове await().

d)

Исключение будет передано родительской coroutine.

3.

У вас есть функция performTask(), которую необходимо выполнить последовательно для списка. Вы хотите использовать coroutines для эффективности, но обеспечить последовательное выполнение. Какой подход является наиболее подходящим и почему?

a)

Используйте запуск в цикле, полагаясь на общее изменяемое состояние для синхронизации.

b)

Используйте async в цикле, ожидая каждый отложенный результат.

c)

Используйте пользовательский канал для организации последовательного выполнения.

d)

Используйте функцию withContext с однопоточным диспетчером.

4.

Рассмотрите следующий фрагмент кода.

Если для выполнения longRunningOperation() требуется больше 1 секунды, что происходит с coroutine и выполнением longRunningOperation()?


a)

coroutine отменяется, и longRunningOperation() немедленно завершается.

b)

coroutine отменяется, но longRunningOperation() продолжает выполняться в фоновом режиме.

c)

coroutine продолжает выполняться, но результат longRunningOperation() игнорируется.

d)

coroutine выдает исключение, и longRunningOperation() завершается.

5.

Какое из следующих утверждений о классах данных и стабильности в Jetpack Compose неверно?

a)
  1. Класс данных считается стабильным, если его публичные свойства неизменяемы (val) и его внутреннее состояние не может быть изменено после его создания. 

b)

Использование стабильных классов данных в компонуемых объектах может повысить производительность за счет сокращения ненужных рекомпозиций.

c)

Маркировка класса данных аннотацией @Stable гарантирует, что Compose всегда будет считать его стабильным, независимо от его свойств.

d)

Если класс данных имеет изменяемые свойства (var), он, как правило, не считается стабильным, и изменения этих свойств вызовут перекомпозиции.

6.

Какой из следующих методов в Jetpack Compose позволяет комбинировать два модификатора, применяя их последовательно?

a)

with()

b)

then()

c)

combine()

d)

and()

7.

Каково значение ComposeNode с точки зрения производительности?

a)

Он помогает повысить производительность, уменьшая количество выделений объектов.

b)

Он не влияет на производительность.

c)

Он ухудшает производительность, добавляя ненужные накладные расходы.

d)

Он используется для измерения производительности компонуемых объектов.

8.

Какова основная роль Applier в Compose?

a)

Это элемент пользовательского интерфейса, который отображает текст на экране.

b)

Это макет, который упорядочивает компонуемые элементы по вертикали или горизонтали.

c)

Он отвечает за применение изменений к дереву композиции и обновление пользовательского интерфейса.

d)

Это функция, используемая для создания анимаций в Compose.

9.

Как Applier взаимодействует с концепцией Slots в Compose?

a)

Applier используется для создания пользовательских слотов для макетов.

b)

Applier определяет слоты, которые дочерние компонуемые элементы могут занимать в макете.

c)

Applier не имеет отношения к слотам в Compose.

d)

Applier использует слоты для отслеживания позиций компонуемых элементов в дереве композиции.

10.

Как LaunchedEffect обрабатывает отмену coroutines?

a)

Он автоматически отменяет coroutine, когда компонуемый объект завершает композицию.

b)

Он требует от разработчика вручную отменить coroutine.

c)

Он не имеет отношения к отмене coroutine.

d)

Он выдает исключение, если coroutine не отменена вручную.

11.

Чем intrinsic measurements отличаются от стандартных измерений в Jetpack Compose?

a)

intrinsic measurements учитывают только размер родительского элемента, в то время как стандартные измерения учитывают размеры как родительского, так и дочернего элементов.

b)
  1. intrinsic measurements рассчитываются до этапа компоновки (layout) и определяют идеальный размер элемента на основе его содержимого, в то время как стандартные измерения происходят во время компоновки и зависят от ограничений.

c)

Стандартные измерения зависят от размера содержимого, а intrinsic measurements задают фиксированные размеры, независимо от содержимого.

d)

intrinsic measurements используются исключительно для элементов внутри Box, а стандартные измерения применяются ко всем компоновкам.

12.

Что делает DisposableEffect в Jetpack Compose?

a)

Позволяет управлять состоянием компонента.

b)

Выполняет побочные эффекты и очищает их при отмене или уничтожении компонента.

c)

Позволяет создавать анимации.

d)

Управляет жизненным циклом приложения.

13.

Как можно использовать derivedStateOf в Jetpack Compose?

a)

Для создания производного состояния, которое зависит от других состояний.

b)

Для управления анимациями.

c)

Для управления жизненным циклом компонентов.

d)

Для передачи данных между экранами.

14.

Какой отступ будет между нижней границей первого элемента (Text1) и верхней границей второго элемента (Text2)?

a)

0 dp

b)

2 dp

c)

4 dp

d)

8 dp

15.

Пусть дан виджет с

Modifier.clickable{println("Hello")}.padding(16dp)

потом переставили на

Modifier.padding(16dp).clickable{println("Hello")}

Где будет кликабельна кнопка в обоих случаях?

a)

В обоих случая кликабельна область с отступом в 16dp

b)

В первом случае кликабельна вся область, во втором с отступом в 16dp

c)

В обоих случая кликабельна вся область

d)

В первом случае кликабельна с отступом в 16dp, во втором вся область