Android手机Log

PS: 很实用的Log信息,忘记在哪里摘录的人,感谢原作者~~

log 文件分为实时打印的,还有状态信息的两种

实时打印的有:
logcat main,logcat radio, logcat events, tcpdump,还有高通平台的还会有 QXDM 日志

状态信息的有:
adb shell dmesg, adb shell dumpstate, adb shell dumpsys, adb bugreport

抓取方法:
adb logcat -b main -v time > app.log 打印应用程序的log
adb logcat -b radio -v time > radio.log 打印射频相关的log,SIM STK 也会在里面,modem相关的 ATcommand 等
adb logcat -b events -v time > event.log 打印系统事件的日志,比如触屏事件

状态信息:
adb shell bugreport > bugreport.log 里面包含了 dmesg,dumpstate 和 dumpsys.
adb shell dmsg > ldmesg_kernel.log 是 kernel 的 log
adb shell dumpstate 是系统状态信息,包括当前的内存信息/CPU信息/logcat缓存/kernel缓存等等。
adb shell dumpsys 这个是关于系统service的信息都在这里面
adb shell dumpsys memoinfo system 查看 system 这个 process 的内存信息

/////////////////////////////////

查看手机各类服务的项目:
adb shell service list;

查看应用的内存使用情况:
adb shell dumpsys meminfo packagenameor pid

查看servicecs使用细节
adb shell dumpsys activity services

查看activity使用细节
adb shell dumpsys activity

扫描二维码关注公众号,回复: 3559374 查看本文章

dumpsys命令可以显示手机中所有应用程序的信息,并且也会给出现在手机的状态。
直接执行adb shell dumpsys会显示以下所有信息。

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

dumpsys的参数可以跟以上信息的名字。例如:

adb shell dumpsys activity 显示activity相关的信息
adb shell dumpsys statusbar 显示状态栏相关的信息
adb shell dumpsys meminfo packagenameor pid 使用程序的包名或者进程id显示内存信息

可以通过这个命令实现很多有用的小应用,比如内存信息相关的,状态栏的通知都是哪个应用谈出来的等等。
我通过这个命令写了一个小应用”找出状态栏广告的主人“。普通通知很容易辨认是哪个应用的,广告就不好辨认了。
其实应用就相当于一条shell命令:

adb shell dumpsys statusbar | grep notification=Notification

////////////////////////////

该命令用于打印出当前系统信息,默认打印出设备中所有service的信息,可以在命令后面加指定的service name.

有两种方法可以查看service list:

  1. adb shell dumpsys
    输出信息的开始部分就是所有运行的service,如下:

Currently running services:
SurfaceFlinger:
accessibility:
account:
activity:
alarm:
appwidget:
audio:
backup:
battery:
batteryinfo:
clipboard:
connectivity:
content:
cpuinfo:
device_policy:
devicestoragemonitor:
diskstats:
dropbox:
entropy:
hardware:
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:
sensorservice:
simphonebook:
statusbar:
telephony.registry:
throttle:
uimode:
usagestats:
vibrator:
wallpaper:
wifi:
window:

  1. adb shell service list

输出结果如下:
Found 49 services:
0 phone: [com.android.internal.telephony.ITelephony]
1 iphonesubinfo: [com.android.internal.telephony.IPhoneSubInfo]
2 simphonebook: [com.android.internal.telephony.IIccPhoneBook]
3 isms: [com.android.internal.telephony.ISms]
4 diskstats: []
5 appwidget: [com.android.internal.appwidget.IAppWidgetService]
6 backup: [android.app.backup.IBackupManager]
7 uimode: [android.app.IUiModeManager]
8 audio: [android.media.IAudioService]
9 wallpaper: [android.app.IWallpaperManager]
10 dropbox: [com.android.internal.os.IDropBoxManagerService]
11 search: [android.app.ISearchManager]
12 location: [android.location.ILocationManager]
13 devicestoragemonitor: []
14 notification: [android.app.INotificationManager]
15 mount: [IMountService]
16 accessibility: [android.view.accessibility.IAccessibilityManager]
17 throttle: [android.net.IThrottleManager]
18 connectivity: [android.net.IConnectivityManager]
19 wifi: [android.net.wifi.IWifiManager]
20 network_management: [android.os.INetworkManagementService]
21 netstat: [android.os.INetStatService]
22 input_method: [com.android.internal.view.IInputMethodManager]
23 clipboard: [android.text.IClipboard]
24 statusbar: [com.android.internal.statusbar.IStatusBarService]
25 device_policy: [android.app.admin.IDevicePolicyManager]
26 window: [android.view.IWindowManager]
27 alarm: [android.app.IAlarmManager]
28 vibrator: [android.os.IVibratorService]
29 hardware: [android.os.IHardwareService]
30 battery: []
31 content: [android.content.IContentService]
32 account: [android.accounts.IAccountManager]
33 permission: [android.os.IPermissionController]
34 cpuinfo: []
35 meminfo: []
36 activity: [android.app.IActivityManager]
37 package: [android.content.pm.IPackageManager]
38 telephony.registry: [com.android.internal.telephony.ITelephonyRegistry]
39 usagestats: [com.android.internal.app.IUsageStats]
40 batteryinfo: [com.android.internal.app.IBatteryStats]
41 power: [android.os.IPowerManager]
42 entropy: []
43 sensorservice: [android.gui.SensorServer]
44 SurfaceFlinger: [android.ui.ISurfaceComposer]
45 media.audio_policy: [android.media.IAudioPolicyService]
46 media.camera: [android.hardware.ICameraService]
47 media.player: [android.media.IMediaPlayerService]
48 media.audio_flinger: [android.media.IAudioFlinger]

查询到运行的system service后,就可以在dumpsys后面加上service的名字,查看指定的service信息。

adb shell dumpsys activity
adb shell dumpsys cpuinfo
adb shell dumpsys battery
adb shell dumpsys window(最后部分可以看到分辨率的信息)

有些service能够接收额外的参数,我们可以使用-h查看帮助信息。

adb shell dumpsys package -h
adb shell dumpsys activity -h

/////////////////////////////////////////////

一、adb启动activity:
adbshell am start -n {包(package)名}/{包名}.{活动(activity)名称}
如:启动浏览器

am start -n com.android.browser/com.android.browser.BrowserActivity

二、adb启动service:
adbshell am startservice -n {包(package)名}/{包名}.{服务(service)名称}
如:启动自己应用中一个service

am startservice -n com.android.traffic/com.android.traffic.maniservice

三、adb发送broadcast:
adbshell am broadcast -a <广播动作>
如:发送一个网络变化的广播

am broadcast -a android.net.conn.CONNECTIVITY_CHANGE

猜你喜欢

转载自blog.csdn.net/haonanren2bu2/article/details/49309331