adb로 Android System UI 테스트하기

jshme·2021년 7월 31일
1
설정 > 개발자옵션시스템 UI 데모 모드

안드로이드에서는 배터리 상태, 알림 아이콘, 시간 등 상태바와 관련된 제어를 강제로 설정할 수 있는 데모 모드 가 존재한다. 설정 > 개발자 옵션을 통해서도 데모 모드를 사용할 수 있지만 adb를 이용해 shell 명령어로도 시작할 수 있다. adb를 이용해 데모 모드를 이용하는 방법에 대해 알아보자.

1. 데모모드 활성화하기

데모 모드는 시스템 설정으로 인해 보호되어 있으므로, 아래 명령어를 통해 데모 모드를 실행하고자 하는 디바이스를 활성화시켜야 한다.
adb shell settings put global sysui_demo_allowed 1

2. 사용할 수 있는 커맨드 리스트

  • aosp의 DemoMode를 사용할 수 있는 커맨드가 나열되어 있는데, 총 9가지의 상태바 기능을 핸들링 할 수 있다.
public interface DemoMode {
...
    public static final String COMMAND_ENTER = "enter";
    public static final String COMMAND_EXIT = "exit";
    public static final String COMMAND_CLOCK = "clock";
    public static final String COMMAND_BATTERY = "battery";
    public static final String COMMAND_NETWORK = "network";
    public static final String COMMAND_BARS = "bars";
    public static final String COMMAND_STATUS = "status";
    public static final String COMMAND_NOTIFICATIONS = "notifications";
    public static final String COMMAND_VOLUME = "volume";
}
  • broadcast intent 기반으로 규약이 정해져있기 때문에, adb shell am broadcast com.android.systemui.demo (action) 를 이용해서 커멘트를 실행시킬 수 있다.
CommandSubcommandArgumentDescription
enter데모 모드로 들어갈 수 있는 커맨드
exit데모 모드를 나가고, 시스템 구동 상태로 되돌린다.
battery화면에 보이고 있는 배터리를 제어
level배터리 percent를 조절하는 요소 (0-100)
plugged충전 상태를 설정 (true, false)
powersave절전모드 설정(true)
networkRSSI(신호 강도)를 제어
airplane비행기모드 설정(show 입력 시 보임)
wifiwifi 설정
levelwifi의 신호강도 설정 (null 혹은 1-4)
mobile셀룰러 데이터 설정(show 입력 시 보임)
datatype1x, 3g, 4g, e, g, h, lte, roam 설정 가능
level셀룰러 데이터의 신호강도 설정 (null 혹은 1-4)
carriornetworkchangemobile 신호 세기 아이콘을 통신사 디자인으로 변경
simssim 의 숫자 설정
bars상태바의 스타일 설정 (opaque, traslucent)
mode상태바의 스타일 설정하는 extra(option: opaque, translucent, semi-transparent)
status시스템 상태 아이콘 제어
volume볼륨 상태 제어(option: silent, vibrate)
bluetooth블루투스 상태 제어(option: connected, disconnected)

그 외, location alarm sync tty eri speakerphone notifications clock 옵션 등이 있다. 자세한 옵션은 이 곳을 확인하면 된다.

3. 데모모드 테스트 예제

  • 아래와 같이 입력하여 데모 모드로 진입
    adb shell am broadcast -a com.android.systemui.demo -e command enter

  • 15:00 로 시간 설정
    adb shell am broadcast -a com.android.systemui.demo -e command clock -e hhmm 1500

시간 변경 전 (현재 시각 12:28)변경 후 (15:00)


  • 충전이 필요한 배터리 0% 설정
    adb shell am broadcast -a com.android.systemui.demo -e command battery -e level 0 -e plugged false
변경 전 74%변경 후 0%


  • 데모모드 종료
    adb shell am broadcast -a com.android.systemui.demo -e command exit

그 외, 아래와 같은 명령어도 자주 쓰일 수 있다.

  • 왼쪽 상단 알람 아이콘 Visibility 핸들링
    adb shell am broadcast -a com.android.systemui.demo -e command notifications -e visible false

  • 셀룰러모드 및 신호강도 설정
    adb shell am broadcast -a com.android.systemui.demo -e command network -e mobile show -e datatype none -e level 4

  • wifi모드 및 신호강도 설정
    adb shell am broadcast -a com.android.systemui.demo -e command network -e wifi show -e level 4

profile
android developer @bucketplace

0개의 댓글