Розробка адаптивних застосунків для 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

