如何有效的抓取logcat,提高debug效率
如何有效利用早晨提高效率 #生活知识# #生活指南# #时间管理指南#
logcat
目录 CRT工具在抓log的一些使用 新建按钮设置自动保存MTK logcat出现的条件 1.如何抓取有效的log logcat -c的重要性以及时间戳和标志位的重要性设置时间戳ANR时拿到trace文件 2.android 系统中一些常用的命令 linux 命令(cp,mv,cd,chmod,rm,cat)adb(挂载命令)adb 命令与串口命令的关系adb shell kill PIDNumber 死你想杀死的后台进程来模拟某种 bug 的复现条件。adb shell ps 查看当前终端中的进程信息安装 应用list user(受限模式)分离数据板子上对应的位置key对应板子上的位置如何进入recovery 模式如何在工厂菜单里面进行本地OTA升级dumpsys命令 3.一些提高效率的命令 挂载remountam(打开应用)input text当前界面截图模拟按键 inputevent(附件键值,getevent) 4.MTK cli封装的一些命令 hbbtv下抓log无声问题抓取log升级以及读取6m60的版本号的命令串口替换panel.bin等的方法命令调节pcm和dolby给TV设置一个系统中本身就带的panel初始化功放命令 一.CRT工具在抓log的一些使用 1.新建按钮如下图将command window 和Button Bar勾选,即下方会出现按钮行以及命令输入行 1



有时候发现在串口输入 logcat,出现logcat打印太少,或者没有logcat的现象,这个时候执行以下命令。(此种机制是因为mtk的log要先检测在data目录下时候有tkui.print这个文件,如果有,log命令才会生效并且打印)
su touch /data/tkui.print sync;sync;sync reboot 1234 二.如何抓取有效的log logcat -c以及logcat使用的时机。
我们在复现问题以及抓log的时候,大多都是开始先输入一个logcat,然后再复现问题,问题复现到了之后,再去保存logcat。此时如果经过很长时间才复现到问题现象。则会发现logcat文件已经很大了。这种抓log有以下几点缺点:
logcat多达几M,占服务器内存开发人员只有倒着看。复现到立即暂停logcat,可能有好多logcat还没有刷出来,导致分析不到问题点必现问题还好说,开发人员可以自己抓log,但是对于随机问题,复现一次不容易,故此时logcat很重要。推荐比较好的有效的抓取logcat的几种方式
1.复现问题之前输入"logcat -c" 先将之前即将要刷出现无用的logcat清除。然后重新保存一份新的logcat。再输入logcat开始复现。依次类推,直到复现到问题。(每次抓log切记,让logcat多跑一会,大概一分钟。再关闭logcat,上传系统)
2.为了方便测试人员,不用去重复的保存logcat。可以采用这种方式:复现之前打开logcat保存文件,然后输入"logcat -c"清除之前无用的logcat。然后输入logcat,让logcat刷起来,接着开始复现。等到复现到问题之后快速在命令行敲出几个标志的字符,可以多敲几次(可以随便起,例如test等到问题现象完毕,然后让logcat多刷一会。即可以将logcat上传到系统,然后上传后请在问题上说明刚刚敲击的关键词是什么。这样做的作用是:让开发人员很好的定位问题出现对应的logcat的位置。从而更高效的解决问题。
3.logcat中请按照上面的方法,加上时间戳。这样也可以让开发人员更好的定位问题的所在
4.出现ANR时
什么是ANRANR,是“Application Not Responding”的缩写,即“应用程序无响应”。
什么情况下才会产生ANR
主线程对输入事件在5秒内没有处理完毕主线程在执行BroadcastReceiver的onReceive函数时10秒内没有执行完毕主线程在执行Service的各个生命周期函数时20秒内没有执行完毕当ANR出现后需要抓取的log
1.串口logcat 2.traces.txt文件(cp /data/anr/traces.txt /storge/U盘名/) 1234 三.android 系统中一些常用的命令 1.linux 命令(cp,mv,cd,chmod,rm,cat,find,mkdir) cp 复制命令
cp 路径A下的某个文件C 路径B(将文件c拷贝到B路径下) eg: cp -rf 路径A 路径B(将A路径下的所有文件拷贝到B路径下) eg: 1234 2. adb(挂载命令) 3. adb 命令与串口命令的关系
串口命令加上"adb shell",即为adb命令
adb shell kill PIDNumber 死你想杀死的后台进程来模拟某种 bug 的复现条件。 adb shell ps 查看当前终端中的进程信息 安装 应用adb install -r LiveTV.apk adb uninstall LiveTV.apk pm install -r LiveTV.apk 123 Android 多用户模式(Android TV受限模式)
pm list users(列出所有用户) pm remove-user 10(在主用户模式下删除10这个用户) am switch-user 10(切换到10这个用户) 1234 分离数据对应的位置 key对应的位置 如何进入recovery 模式
串口输入 reboot recovery(进入后也可以OTA升级) 1 如何在工厂菜单里面进行本地OTA升级
setenforce 0(关掉selinux) 将OTA包拷到U盘下,将U盘插入TV 进入工厂菜单点击OTA菜单按钮 123 三.一些提高效率的命令 挂载remount
mount -o rw,remount /system(挂载system分区) mount -o rw,remount /perm(挂载perm分区) 12 快速打开一个app
am start -n 应用包名/应用Activity名 am start -n com.android.tv.settings/.MainSettings(打开主页settings) am start -n com.google.android.tvlauncher/com.google.android.tvlauncher.MainActivity(打开home主页) am start -n com.google.android.youtube.tv/com.google.android.apps.youtube.tv.cobalt.activity.MainActivity(打开youtube) 1234 input text(快速输入账号密码)
input text rd120170907(如何rd1的密码) 1 查看当前界面属于那一个应用
dumpsys window|grep mFocusedWindow 1
这个命令可以从显示出来的包名以及类名,查看是属于那一个app。从而可以确认是我们的应用还是谷歌或者第三方的应用
截图命令screencap -p /storge/u盘名 1
目前好像只能截主页的图
模拟按键 inputevent(附件键值,getevent)input keyevent 178 (模拟按下键值为178的键,附件为各键对应的键值) 1 四.MTK cli封装的一些命令 hbbtv下抓log
对于hbbtv里面的bug,直接logcat录的log是看不出什么的。必须在复现前输入以下命令:
su echo 7 > /proc/sys/kernel/printk touch /data/tkui.print sync ttyman 按“tap”进入mw cli mw.oh.el 1 重启系统后输入 su echo 7 > /proc/sys/kernel/printk logcat -c 开始复制问题,复制到问题后在 输入logcat。 12345678910111213 无声问题抓取logcat
一般无声音直接在串口logcat也是无用的。所以如果随机出现无声还是请及时联系开发
升级以及读取6m60的版本号的命令su setenforce 0 echo 7 > /proc/sys/kernel/printk ttyman b.scm 0 pmx.vb1.6m60.slupg 后面接文件路径(升级6m60) pmx.vb1.6m60.slver(读取6m60版本号) 1234567 串口替换panel.bin等的方法
连接串口,当打印出来后回车并输入su,再回车; 输入cat /proc/partinfo,找到panel对应的分区号,一般panel为31。 U盘拷贝入要替换的panel.bin,将U盘插到TV上, 使用如下命令替换: 输入 setenforce 0 然后回车 输入 dd if=/storage/0000-0000/panel.bin of=/dev/mmcblk0p31 然后reboot重启 注意:0000-0000为U盘名称,要替换成你自己的,31也好替换成你需要的 1234 命令调节pcm和dolby
su echo 7 > /proc/sys/kernel/printk cli b.scm 0 aud.io.spdif.iecs 2 1 12345 给TV设置一个系统中本身就带的panel
su echo 7 > /proc/sys/kernel/printk cli b.scm 0 pmx.l(展示所有可选择的panel) pmx.s.p 211(一般根据屏选择对应的编好) 123456 初始化功放命令
su echo 7 > /proc/sys/kernel/printk cli b.scm 0 aud.io.adac.ai 12345
网址:如何有效的抓取logcat,提高debug效率 https://www.yuejiaxmz.com/news/view/254225
相关内容
Tasker 的新「杀手锏」功能:Logcat Entry如何提高学习效率 有哪些高效学习方法
如何提高工作效率,提高工作效率的方法
如何提高自己的学习生活效率?
如何提高学习效率:提升学习效果的有效方法
如何提高高效的工作和生活效率
【 “高效学习法:如何提高学习效率并取得更好的成果“】
如何提高学习效率 怎么提高学习效率
如何提高学习效率 有哪些方法
如何有效的提升学习效率