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

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