安卓调试及抓log方法

安卓调试及抓log方法

抓log

  • logcat使用

    Android对日志分为mian的日志、system的日志、event的日志,kernel的日志,Radio的日志:[adb] logcat [] … [] …

    -b 指定要查看的日志缓冲区,可以是system,events ,radio,main。默认值是system和main

    -c 清除屏幕上的日志.

    • 抓取上层的日志:

      adb logcat-b system -b main -b events -b radio –v time >1.txt

    • 抓取crash

      logcat crash

    • 抓取system_server log

      logcat main | grep system_server

    • SELinux权限问题

      logcat | grep denied //查看被拒绝的服务

  • adb 使用

    抓取kernel的日志:

 adb shell cat /proc/kmsg > .\kmsg.log	#读取log,但日志缓冲区读取的数据会不在被保留
 dmesg                     #不刷新缓冲区读取log
 cat /proc/kmsg | tee -i kmsg.log   #抓kernel log 保存到kmsg.log同时显示

抓取ANR的日志:

adb pull /data/anr/traces.txt D:\anr\ 
adb shell logcat -v time -f /dev/kmsg |
adb shell cat /proc/kmsg | tee kernel_logcat.txt

关闭所有seneor

 echo 0 > /persist/sensors/sensors_settings
  • 只读文件系统解决
    mount -o remount  /  重新挂载根分区

    mount -o remount, rw / 以读写的模式重新挂载 根分区

    mount -o remount, nosuid /  以不含suid的模式重新挂载根分区

    mount -o remount, system/ 重新挂载system分区
  • 如果需要push文件,需要
    adb remount

    adb push ……
  • 读取sensors info,上层通过uevent事件获取sensors信息
    sns_regedit_ssi -r

    getenvent event0   
  • 读取sensor信息

    dumpsys sensorservice ,查看sensor使用情况

  • 获取事件信息

    getevent

  • 重启systemserver
    adb shell kill -9 system_server

  • SElinux权限

    • ps -Z
    • ls -Z
  • service manger列表

    • dumpsys -l
  • 查询OOM_ADJ

    • dumpsys activity
  • 查看ADJ

    • cat sys/module/lowmemorykiller/parameters/adj
    • cat sys/module/lowmemorykiller/parameters/minfree
  • 内存使用情况

    • cat /proc/meminfo
  • 虚拟内存查看

    • cat /proc/pid/smaps
  • DOZE

    • 强制进入Doze模式
      dumpsys deviceidle force-idle
    • 启用Doze模式
      dumpsys deviceidle enable
    • 关闭Doze模式
      dumpsys deviceidle disable
    • 查看Doze模式白名单
      dumpsys deviceidle whitelist
  • jobschdule

  • 查看所有

    adb shell dumpsys jobscheduler

  • 挂后台log

    logcat -b kernel -f /sdcard/kernel.log -n 1024 -r 5 &

    logcat -b all -f /sdcard/all.log &

    logcat -b

  • 亮屏时间统计log

    • 高通平台电源键按下是绑定在PMIC上

      drivers/platform/msm/qpnp-power-on.c
      .....
      qpnp_pon_input_dispatch(struct qpnp_pon *pon,u32 pon_type){
         ....
         pr_debug("PMIC input: code=%d, sts=0x%hhx\n", cfg->key_code, pon_rt_sts);
         ....
      }
      
    • 关键log

      • PMIC input --> kernel log 电源键按下
      • PowerManagerService: Waking up from sleep (uid 10020)… --> main log 框架唤醒
      • DisplayPowerController: Blocking screen on until initial contents have been drawn. --> system log 绘制界面
      • power_screen_broadcast_send: 1 --> events log 发送亮屏广播
      • power_screen_broadcast_done: [1,206,1] --> events lof 亮屏广播发送完成
      • mdss_dsi_panel_bklt_dcs: level=255 --> kernel log 背光点亮
  • sm命令

    usage: sm list-disks [adoptable]
     sm list-volumes [public|private|emulated|all]
     sm has-adoptable
     sm get-primary-storage-uuid
     sm set-force-adoptable [on|off|default]
     sm set-virtual-disk [true|false]
     sm partition DISK [public|private|mixed] [ratio]
     sm mount VOLUME
     sm unmount VOLUME
     sm format VOLUME
     sm benchmark VOLUME
     sm idle-maint [run|abort]
     sm fstrim
    
     sm forget [UUID|all]
    
     sm set-emulate-fbe [true|false]
    

你可能感兴趣的:(Linux,Android)