Android ADB 셸 "dumpsys"도구 란 무엇이고 그 이점은 무엇입니까?


140

dumpsys모든 명령에 대한 자세한 설명과 함께 ADB 셸 명령 의 전체 목록을 찾고 있습니다.

이 정보는 어디서 찾을 수 있습니까?

답변:


247

Dumpsys 란 무엇이며 그 장점은 무엇입니까

dumpsys 는 장치에서 실행되며 시스템 서비스 상태에 대한 흥미로운 정보를 덤프하는 Android 도구입니다.

명백한 이점 :

  1. 간단한 문자열 표현으로 시스템 정보를 쉽게 얻을 수 있습니다.
  2. 덤프 된 CPU, RAM, 배터리, 스토리지 통계를 예쁜 차트로 사용할 수있어 애플리케이션이 전체 장치에 어떤 영향을 미치는지 확인할 수 있습니다!

dumpsys shell 명령에서 검색 할 수있는 정보와 사용 방법

dumpsys를 실행하면 많은 시스템 정보가 표시됩니다. 그러나이 큰 덤프의 개별 부분 만 사용할 수 있습니다.

dumpsys의 "하위 명령"을 모두 보려면 :

dumpsys | grep "DUMP OF SERVICE"

산출:

DUMP OF SERVICE SurfaceFlinger:
DUMP OF SERVICE accessibility:
DUMP OF SERVICE account:
DUMP OF SERVICE activity:
DUMP OF SERVICE alarm:
DUMP OF SERVICE appwidget:
DUMP OF SERVICE audio:
DUMP OF SERVICE backup:
DUMP OF SERVICE battery:
DUMP OF SERVICE batteryinfo:
DUMP OF SERVICE clipboard:
DUMP OF SERVICE connectivity:
DUMP OF SERVICE content:
DUMP OF SERVICE cpuinfo:
DUMP OF SERVICE device_policy:
DUMP OF SERVICE devicestoragemonitor:
DUMP OF SERVICE diskstats:
DUMP OF SERVICE dropbox:
DUMP OF SERVICE entropy:
DUMP OF SERVICE hardware:
DUMP OF SERVICE input_method:
DUMP OF SERVICE iphonesubinfo:
DUMP OF SERVICE isms:
DUMP OF SERVICE location:
DUMP OF SERVICE media.audio_flinger:
DUMP OF SERVICE media.audio_policy:
DUMP OF SERVICE media.player:
DUMP OF SERVICE meminfo:
DUMP OF SERVICE mount:
DUMP OF SERVICE netstat:
DUMP OF SERVICE network_management:
DUMP OF SERVICE notification:
DUMP OF SERVICE package:
DUMP OF SERVICE permission:
DUMP OF SERVICE phone:
DUMP OF SERVICE power:
DUMP OF SERVICE reboot:
DUMP OF SERVICE screenshot:
DUMP OF SERVICE search:
DUMP OF SERVICE sensor:
DUMP OF SERVICE simphonebook:
DUMP OF SERVICE statusbar:
DUMP OF SERVICE telephony.registry:
DUMP OF SERVICE throttle:
DUMP OF SERVICE usagestats:
DUMP OF SERVICE vibrator:
DUMP OF SERVICE wallpaper:
DUMP OF SERVICE wifi:
DUMP OF SERVICE window:

일부 덤핑 예제 및 출력

1) 가능한 모든 배터리 통계 얻기 :

$~ adb shell dumpsys battery

당신은 출력을 얻을 것이다 :

Current Battery Service state:
AC powered: false
AC capacity: 500000
USB powered: true
status: 5
health: 2
present: true
level: 100
scale: 100
voltage:4201
temperature: 271 <---------- Battery temperature! %)
technology: Li-poly <---------- Battery technology! %)

2) WiFi 정보 얻기

~$ adb shell dumpsys wifi

산출:

Wi-Fi is enabled
Stay-awake conditions: 3

Internal state:
interface tiwlan0 runState=Running
SSID: XXXXXXX BSSID: xx:xx:xx:xx:xx:xx, MAC: xx:xx:xx:xx:xx:xx, Supplicant state: COMPLETED, RSSI: -60, Link speed: 54, Net ID: 2, security: 0, idStr: null
ipaddr 192.168.1.xxx gateway 192.168.x.x netmask 255.255.255.0 dns1 192.168.x.x dns2 8.8.8.8 DHCP server 192.168.x.x lease 604800 seconds
haveIpAddress=true, obtainingIpAddress=false, scanModeActive=false
lastSignalLevel=2, explicitlyDisabled=false

Latest scan results:

Locks acquired: 28 full, 0 scan
Locks released: 28 full, 0 scan

Locks held:

3) CPU 정보 얻기

~$ adb shell dumpsys cpuinfo

산출:

Load: 0.08 / 0.4 / 0.64
CPU usage from 42816ms to 34683ms ago:
system_server: 1% = 1% user + 0% kernel / faults: 16 minor
kdebuglog.sh: 0% = 0% user + 0% kernel / faults: 160 minor
tiwlan_wq: 0% = 0% user + 0% kernel
usb_mass_storag: 0% = 0% user + 0% kernel
pvr_workqueue: 0% = 0% user + 0% kernel
+sleep: 0% = 0% user + 0% kernel
+sleep: 0% = 0% user + 0% kernel
TOTAL: 6% = 1% user + 3% kernel + 0% irq

4) 메모리 사용량 정보 얻기

~$ adb shell dumpsys meminfo 'your apps package name'

산출:

** MEMINFO in pid 5527 [com.sec.android.widgetapp.weatherclock] **
                    native   dalvik    other    total
            size:     2868     5767      N/A     8635
       allocated:     2861     2891      N/A     5752
            free:        6     2876      N/A     2882
           (Pss):      532       80     2479     3091
  (shared dirty):      932     2004     6060     8996
    (priv dirty):      512       36     1872     2420

 Objects
           Views:        0        ViewRoots:        0
     AppContexts:        0       Activities:        0
          Assets:        3    AssetManagers:        3
   Local Binders:        2    Proxy Binders:        8
Death Recipients:        0
 OpenSSL Sockets:        0


 SQL
               heap:        0         MEMORY_USED:        0
 PAGECACHE_OVERFLOW:        0         MALLOC_SIZE:        0

모든 프로세스에 대한 정보를 보려면 ~$ adb shell dumpsys meminfo

여기에 이미지 설명을 입력하십시오

dumpsys 는 궁극적으로 유연하고 유용한 도구입니다!

이 도구를 사용하려면 Android 매니페스트에 자동으로 권한을 추가하는 것을 잊지 마십시오 android.permission.DUMP

dumpsys에 대해 자세히 알아 보려면 모든 명령을 테스트하십시오. 행복한 덤핑!


5
이 문서가 어딘가 또는 자신의 실험에서 나온 것입니까?
brianestey

10
adb shell dumpsys activity broadcasts는 모든 방송을 보여줍니다
joecks

Kitkat (제 생각에는)으로 시작하면 "batteryinfo"가 "batterystats"로 바뀌었고 출력과 사용법도 다르게 보입니다.
안드로이드 개발자

1
dumpsys는 매우 강력합니다. 일반적으로 얻을 수 없었던 핵심 Android 서비스의 개인 가치를보고합니다.
Kevin Mark

1
불행히도 Java 프로그램에서 사용하려면 루트 또는 시스템 레벨 권한이 필요합니다.
umesh

60

dumpsysservice 의 소스 코드를 보면 다음을 실행하여 사용 가능한 서비스 목록을 얻을 수 있습니다.

adb shell service -l

그런 다음 특정 정보를 얻기 위해 dumpsys에 관심있는 서비스 이름을 제공 할 수 있습니다. 예를 들어 (모든 서비스가 덤프 정보를 제공하지는 않습니다) :

adb shell dumpsys activity
adb shell dumpsys cpuinfo
adb shell dumpsys battery

코드와 K_Anas의 답변에서 볼 수 있듯이 서비스 이름없이 dumpsys를 호출하면 모든 서비스에 대한 정보를 하나의 큰 덤프로 덤프합니다.

adb shell dumpsys

일부 서비스는 인수를 제공 한 경우 일반적으로 설명 할 내용에 대한 추가 인수를받을 수 있습니다 -h. 예를 들면 다음과 같습니다.

adb shell dumpsys activity -h
adb shell dumpsys window -h
adb shell dumpsys meminfo -h
adb shell dumpsys package -h
adb shell dumpsys batteryinfo -h

13

dumpsys 에 대한 공식 안드로이드 정보에 따르면 :

dumpsys 도구는 장치에서 실행되며 시스템 서비스의 상태에 대한 정보를 제공합니다.

사용 가능한 서비스 목록을 얻으려면

adb shell dumpsys -l

1
이것이 다운 피트 된 이유를 알 수 없습니다. 유용한 링크입니다. 사용 가능한 서비스 목록은 -lLollipop에서만 작동하지만 Jelly Bean에서는 작동하지 않습니다.
starfry

1
이 답변에는 실제 문서에 대한 실제 포인터가 있습니다. 나는 이것이 OP가 찾고 있었던 것이라고 믿는다
Robert R Evans

3 년 전의 답변 과 비교했을 때 새로운 정보가 없기 때문에 하향 조정되었을 가능성이 높습니다 .
topher217

0

앱이 충돌하고 프로세스가 여전히 활성 상태 인 경우 dumpsys 를 사용 하여 catch합니다. 내가 사용한 상황은 원격 컴퓨터 응용 프로그램이 충돌했는지 여부를 찾는 것입니다.

dumpsys | grep myapp | grep "Application Error" 

또는

adb shell dumpsys | grep myapp | grep Error

또는 도움이되는 것 ... 등

앱이 실행되고 있지 않으면 결과적으로 아무것도 얻지 못합니다. 응용 프로그램이 중지되면 메시지가 안드로이드에 의해 화면에 표시되고 프로세스가 여전히 활성화되어 있으며 " ps "명령 또는 다른 것을 통해 확인 하면 프로세스 상태에 오류 또는 충돌 의미가 표시되지 않습니다. 그러나 버튼을 클릭하여 메시지를 닫으면 프로세스 목록에서 앱 프로세스가 정리됩니다. 따라서 응용 프로그램에서 코드없이 충돌 상태를 잡는 것은 찾기가 어렵습니다. 하지만 dumpsys는 당신을 도와줍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.