Розробка адаптивних застосунків для Android завжди вимагала перевірки на різних екранах і в різних режимах, і здавалося, що без десятка запущених емуляторів тут не обійтися. Насправді ж є простіший шлях.

Android Studio давно пропонує Resizable Emulator для ручної перевірки макетів, але існує швидший спосіб — керувати форм-факторами прямо з командного рядка. Команди adb emu працюють у режимі fire-and-forget: вони виконуються миттєво й одразу повертають контроль до оболонки, з якої їх викликали.

Якщо одночасно запущено кілька емуляторів, можна звернутися до конкретного віртуального пристрою, вказавши його серійний номер:

adb -s  emu

Складання й розкладання

Для перевірки сценаріїв, специфічних для складних пристроїв, і різних конфігурацій макетів емульований пристрій можна складати й розкладати програмно.

adb emu fold

Якщо емулятор складного пристрою розкладений, цією командою можна перевести його у режим меншого екрана, увімкнувши віртуальний зовнішній дисплей. Щоб повернути пристрій у розкладений стан і активувати внутрішній екран, достатньо виконати:

adb emu unfold

Таким чином можна миттєво переконатися, що застосунок зберігає свій стан і макети відображаються коректно на різних розмірах екрана.

Обертання, обертання, обертання

Правильна обробка зміни орієнтації — одна з основ адаптивної розробки. Обертання пристрою можна викликати програмно, щоб перевірити, як застосунок реагує на зміни конфігурації, зокрема на відновлення стану. Наступна команда обертає пристрій на 90° за годинниковою стрілкою:

adb emu rotate

Симуляція поз через сенсори

Емулятор можна також перевести у конкретне фізичне положення, наприклад у режим «столика». Найпростіший спосіб — спочатку дізнатися кількість доступних позицій.

Для початку виводиться список усіх доступних сенсорів та їхній поточний статус:

adb emu posture

У відповідь система поверне перелік позицій, приблизно такий:

Usage: "posture " 1: closed 2: half-opened 3: opened …

Після цього можна активувати режим столика, використавши ідентифікатор напіврозкладеного положення:

adb emu posture 2

Варто зауважити: не всі пози підтримуються кожним віртуальним пристроєм. Стандартні шаблони AVD, такі як Pixel Fold або Resizable AVD, підтримують лише позиції 1, 2 і 3. Якщо спробувати встановити 4 або 5 на цих шаблонах, система поверне помилку KO: Failed to set posture.

А що з емулятором зі зміною розміру?

adb emu resize-display

Ця команда покаже список доступних попередніх налаштувань:

KO usage: "resize-display " 0: phone 1: unfolded 2: tablet

Далі, викликавши параметр resize-display з потрібним ідентифікатором, можна змінити розмір емулятора до бажаного:

adb emu resize-display 1

Спробуйте прямо зараз

На цьому все. Використання таких fire-and-forget команд у робочому процесі командного рядка суттєво економить час і ресурси порівняно з паралельним запуском кількох емуляторів.

Якщо ці консольні команди досі не використовувалися, варто відкрити термінал, запустити емулятор, звернутися до документації та розпочати експерименти вже сьогодні.

Джерело: Android Developers Blog