오늘은 지난 ADB를 사용하는 방법에 대한 글에 이어서,

자주 사용하는 ADB명령어에 관해 정리해 보았습니다.

 

참고로 지난 글은 아래 링크를 참조해 주세요.

ADB(Android Debug Bridge)를 사용하는 방법

1. 자주 사용하는 ADB 명령어들

1-1. 앱 데이터 삭제

adb shell pm clear <패키지 이름>

 

1-2. 앱 삭제

adb uninstall <packagename> 

앱 데이터 삭제나 앱 삭제는 테스트를 위해서 자주 사용하는 명령어 인데요.

이렇게 삭제 함에도 불구하고, 안드로이드에서는 Cloud로 백업을 해서

SharedPreference값을 재설치해도 복원해서 사용하므로 데이터 값이 제거되지 않는 경우가 있습니다.

이럴 경우에는 Manifest에서 다음과 같이,

allowBackup을 false로 설정해 주시면 삭제후 재 설치때 기존의 값이 사라진 것을 확인 할 수 있습니다.

 

 

1-3. 앱 설치

 

앱을 설치할 때는 아래 명령어를 사용할 수 있는데요.

-r옵션을 사용하면 기존의 데이터를 삭제하지 않고 재설치를 하게 해 줍니다.

adb install 설치파일이름.apk
adb install -r 설치파일이름.apk

 

1-4. 안드로이드 시스템에 등록된 알람 리스트 확인

안드로이드 시스템에 등록된 알람리스트는 아래 명령어로 확인할 수 있는데요.

자신의 패키지 명에 대해서만 필터링해 보고자 하면, grep명령어를 아래와 같이 사용할 수 있습니다.

(개인적으로는 패키지명 끝과 "}"를 붙여서 필터링하는 것이 편해서 그렇게 하였습니다.)

 

grep명령어의 -A는 찾고자 하는 문자열이 포함된 줄에서 이후 몇 줄까지를 찾고자 하는 옵션인데요.

"-A 5"하면 해당 문자열 이후 5줄을 출력해 주라고 하는 것입니다.

이와 반대되는 개념으로는 "-B"가 있습니다.

adb shell dumpsys alarm
adb shell dumpsys alarm | grep -A 5 <패키지 명 혹은 식별자>

 

1-5. 접속된 Device확인

adb devices

 

1-6. Activity 확인

Activity나 service등에 관한 정보도 아래 명령어를 통해서 얻을 수 있습니다.

adb shell dumpsys activity | grep <패키지 명>

 

1-7. WAKE LOCK확인

 

adb shell dumpsys power를 사용하면 전원관리와 관련된 정보를 얻을 수 있는데요.

그 중에서도 WAKE_LOCK에 대한 정보를 얻기 위해서, WAKE키워드를 이용해 아래와 같이 확인할 수 있습니다.

adb shell dumpsys power | grep -A 5 WAKE

 

 

1-8. 등록된 JobScheduler 확인

등록되어져 있는 background task를 확인할 수 있습니다.

adb shell dumpsys jobscheduler | grep <패키지 명>

 

1-9. 잠자기 및 대기 모드 테스트

A. 잠자기 모드와 해제에 대한 명령어

잠자기 모드는 아래 명령어를 사용하면 되구요.

adb shell dumpsys deviceidle force-idle

 

 

잠자기 모드의 해제는 다음 명령어를 사용하면 되구요.

adb shell dumpsys deviceidle unforce

기기를 활성화해서 활성화된 상태에서의 테스트는 아래 명령어를 이용하면 됩니다.

adb shell dumpsys battery reset

 

B. 대기모드와 해제에 대한 명령어

먼저 대기모드는 아래 명령어를 사용하면 되구요.

adb shell dumpsys battery unplug
adb shell am set-inactive <패키지 명> true

 

이에 대한 해제는 다음과 같이 해주면 됩니다.

adb shell am set-inactive <packageName> false
adb shell am get-inactive <packageName>

잠자기나 대기에 대한 구글문서는 아래를 참조하시면 됩니다.

https://developer.android.com/training/monitoring-device-state/doze-standby

 

1-10. 특정 패키지의 PID확인

adb shell pidof <패키지 명>

 

1-11. pid에 따른 logcat 필터링

adb logcat --pid=<패키지명>

 

pid나 grep같은 것은 linux에 대해서 조금 알고 있어야 이해하기 쉽긴 하겠지만,

모르고 있어도 위 정도의 간단한 사용은 가능할 것 같습니다.

 

2. 정리

이상으로 자주 사용하는 ADB명령어에 대해서 정리해 보았습니다.

추가적으로 유용한 ADB관련 명령어들은 이 글을 통해서 업데이트 하도록 하겠습니다

 

+ Recent posts