4 ответов:
что такое dumpsys и в чем его польза
dumpsys это android инструмент, который работает на устройстве и сбрасывает интересную информацию о состоянии системных служб.
очевидные преимущества:
- возможность легко получить системную информацию в простом строковом представлении.
- возможность использовать сброшенный процессор, оперативную память, аккумулятор, статистику хранения для a довольно графики, которые позволят вам проверьте, как работает ваше приложение влияет на общее устройство!
какую информацию мы можем получить из команды оболочки dumpsys и как мы можем ее использовать
если вы запустите 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) Получение информации о процессоре
~$ 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% irq4)получения памяти информация об использовании
~$ 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. Счастливого демпинга!
глядя на исходный код dumpsys и сервис, вы можете получить список доступных услуг, выполнив это:
adb shell service listзатем вы можете указать имя службы, которое вас интересует в dumpsys, чтобы получить конкретную информацию. Например (обратите внимание, что не все службы предоставляют информацию дампа):
adb shell dumpsys activity adb shell dumpsys cpuinfo adb shell dumpsys batteryкак вы можете видеть в коде (и в ответе K_Anas), если вы вызываете dumpsys без имени службы, он будет сбрасывать информацию все услуги в одной большой свалке:
adb shell dumpsysнекоторые службы могут получить дополнительные аргументы о том, что показать, что обычно объясняется, если вы предоставили
по данным официальная информация для Android о dumpsys:
на dumpsys инструмент работает на устройстве и предоставляет информацию о состояние системных служб.
для получения списка доступных услуг использовать
adb shell dumpsys -l
Я использую dumpsys чтобы поймать, если приложение разбилось и процесс все еще активен. ситуация я использовал его, чтобы найти о удаленной машине приложение разбился или нет.
dumpsys | grep myapp | grep "Application Error"или
adb shell dumpsys | grep myapp | grep Errorили все, что помогает...и т. д.
если приложение не запущено, вы ничего не получите в результате. Когда приложение остановлено messsage отображается на экране android, процесс по-прежнему активен, и если вы проверяете через " ps" команда или что-то еще, вы увидите состояние процесса не показывает никаких ошибок или сбоев. Но когда вы нажимаете кнопку, чтобы закрыть сообщение, процесс приложения будет очищен от списка процессов. поэтому поймать состояние сбоя без какого-либо кода в приложении трудно найти. но dumpsys поможет вам.

Comments