Android ADB 셸 “dumpsys”도구 란 무엇이고 그 이점은 무엇입니까? 자세한 설명과

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

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



답변

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에 대해 자세히 알아 보려면 모든 명령을 테스트하십시오. 행복한 덤핑!


답변

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

답변

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

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

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

adb shell dumpsys -l

답변

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

dumpsys | grep myapp | grep "Application Error" 

또는

adb shell dumpsys | grep myapp | grep Error

또는 도움이되는 것 … 등

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