안드로이드 앱은 비활성화(disabled)될 수 있다. 이렇게 비활성화 된 앱은 동작이 예상과 다르다. 대표적으로, 브로드캐스트를 받을 수 없다. 문제 해결을 위해서 누가 비활성화 한 것인지 확인할 필요가 있을 수 있다. 이 때, adb shell을 이용하면 된다.
>adb shell dumpsys package [패키지이름]
위의 명령어를 이용하면 단말에 설치된 패키지 정보가 나온다. 여기에서 User 0:의 ‘enable’ 파라미터 부분을 확인하면 된다.
먼저 활성화(enabled)된 앱은 다음과 같이 나온다.
User 0: installed=true hidden=false stopped=false notLaunched=false enabled=0
비활성화 된 앱은 ‘enabled’의 값이 바뀌고 그 아래에 비활성화한 앱 정보가 남는다.
enabled 파라미터에 쓰이는 상수 값은 PackageManager에 등록되어 있다. 간단히 정리하자면,
- 0 : default
- 1 : enabled explictily
- 2 : disabled explictily
- 3 : disabled by user
- …
그 밖에
사용자는 Settings > Application Manager > 특정 앱 > 비활성화 버튼을 통해 비활성화 할 수 있다.
User 0: installed=true hidden=false stopped=false notLaunched=false enabled=3 lastDisabledCaller: com.sec.android.app.launcher
위의 경우는 사용자가 런쳐(com.sec.android.app.launcher)를 통해 내 앱을 비활성화 했다.
참고