Android has an interesting command called dumpsys to dump some system information. Even described on adb manual I think that some points should be reinforced. In order to get the complete status just run (will produce a large output):
adb shell dumpsys
Also you can apply filters to running services:
1 SurfaceFlinger 2 accessibility 3 account 4 activity 5 alarm 6 appwidget 7 audio 8 backup 9 battery 10 batteryinfo 11 bluetooth 12 bluetooth_a2dp 13 clipboard 14 connectivity 15 content 16 cpuinfo 17 device_policy | 18 devicestoragemonitor 19 diskstats 20 dropbox 21 entropy 22 ethernet 23 hardware 24 input_method 25 iphonesubinfo 26 isms 27 keybar 28 location 29 media.audio_flinger 30 media.audio_policy 31 media.camera 32 media.player 33 meminfo 34 mount 35 netstat | 36 network_management 37 notification 38 package 39 permission 40 phone 41 power 42 search 43 sensorservice 44 simphonebook 45 statusbar 46 telephony.registry 47 throttle 48 uimode 49 usagestats 50 vibrator 51 wallpaper 52 wifi 53 window |
Some examples:
adb shell dumpsys wifi
adb shell dumpsys cpuinfo
I suggest you try other items on the list above and be creative using all the power of Unix pipes. Example, to get all memory allocated by each process you can do something like:
adb shell dumpsys meminfo | grep "allocated:" | awk '{total = total + $5}END{print total}'
adb shell dumpsys activity>d:\123.txt 还可以使用管道命令:adb shell dumpsys activity|moreadb shell dumpsys activity|find "Running activities"
可以查看任务栈信息:
Running activities (most recent first):
TaskRecord{4079cc08 #14 A android.task.music}
Run #4: HistoryRecord{40723730 com.android.music/.TrackBrowserActivity}
Run #3: HistoryRecord{406dc9e0 com.android.music/.AlbumBrowserActivity}
TaskRecord{406c1708 #2 A com.android.launcher}
Run #2: HistoryRecord{406bff78 com.android.launcher/com.android.launcher2.Launcher}
TaskRecord{40777cd0 #11 A android.task.mms}
Run #1: HistoryRecord{406d0470 com.android.mms/.ui.ComposeMessageActivity}
Run #0: HistoryRecord{406cf898 com.android.mms/.ui.ConversationList}
这个命令对看Android源代码也会有很大的帮助,因为可以看出当前手机屏幕的Activity的名称。
dumpsys简单介绍:该命令用户打印出当前系统信息,默认打印出所有service信息,可以在命令后面加入activity参数,只打印出activity相关的信息。
可跟参数有以下这些:
SurfaceFlinger, accessibility, account,activity, alarm, appwidget, audio, backup, battery, batteryinfo,bluetooth, bluetooth_a2dp, clipboard, connectivity, content,cpuinfo, device_policy, devicestoragemonitor, diskstats, dropbox,entropy, hardware, hdmi, input_method, iphonesubinfo, isms,location, media.audio_flinger, media.audio_policy, media.camera,media.player, meminfo, mount, netstat, network_management,notification, package, permission, phone, power, search, sensor,simphonebook, statusbar, telephony.registry, throttle, uimode,usagestats, vibrator, wallpaper, wifi, window |
adb shell dumpsys activity | |
adb shell dumpsysactivity>activity.txt | “>activity.txt”是使用管道将信息打印的activity.txt中,再使用文本编辑器打开帮助我们更好的搜索和分析。 |
dumpsys的参数可以跟以上信息的名字。例如:
adb shell dumpsys activity
显示activity相关的信息
adb shell dumpsys statusbar
显示状态栏相关的信息
adb shell dumpsys meminfo $package_name or $pid
使用程序的包名或者进程id显示内存信息
可以通过这个命令实现很多有用的小应用,比如内存信息相关的,状态栏的通知都是哪个应用谈出来的等等。
我通过这个命令写了一个小应用”找出状态栏广告的主人“。普通通知很容易辨认是哪个应用的,广告就不好辨认了。
其实应用就相当于一条shell命令:
adb shell dumpsys statusbar | grep notification=Notification
这条命令可以找出状态栏通知的包名,进而找到是哪个应用。
这个点子来自:http://www.maxhis.info/archives/731
只是我把它做成了手机上应用。需要注意的是这个应用需要root权限才能执行!
还有很多可以做的,找住对你有用的吧!