当前位置:   article > 正文

mtk手机log_debug logger

debug logger

MTK

1.手机进入setting-about phone-build number 点到developer

2.进入拨号页面,输入*#*#873733284#*#*

3.右划进入log and debugging 选择debugloggerui,将除了第一个全部都关闭,只留下一个mobilelog,然后点击录制,在录制之前,记得把以前录制的log删除掉,在进行录制

4.adb pull data/debuglogger

(pull log需要完整路径:adb pull  /storage/emulated/0/debuglogger)

5.抓取的log存储在执行所在目录下。

logcat抓log(实时log)

adb logcat -G 30M;adb logcat -c ;adb logcat>~Downloads/test.txt

adb logcat -G 30M && adb logcat -c && adb logcat | grep -iE "ASD"抓实时log的命令

清空日志缓存信息 : 使用 adb logcat -c 命令, 可以将之前的日志信息清空, 重新开始输出日志信息;

将缓存日志输出 : 使用 adb logcat -d 命令, 输出命令, 之后推出命令, 不会进行阻塞;

输出最近的日志 : 使用adb logcat -t 5 命令, 可以输出最近的5行日志, 并且不会阻塞;

实时log

开log的暗码*#*#873733284#*#*

3.右划进入log and debugging 选择debugloggerui,将除了第一个全部都关闭,只留下一个mobilelog,然后点击录制,在录制之前,记得把以前录制的log删除掉,在进行录制

adb pull data/debuglogger/mobilelog ~/android/work/log/668

adb logcat -c

adb logcat -G 32M

adb logcat > ~/hjy/log/open_camera.log


 

 


暗码

  • 获取安卓log

暗码 *#*#3646633#*#*    /    *#*#873733284#*#*

  • 单测功能:
    *#*#8#*#*
  • FTM/工厂测试模式:
    *#*#2486#*#*
  • Device Info/硬件检测:

*#*#0661#*#*

  • 查看刷机版本 

*#*#86436#*#*


 

Log 关键字

            点击拍照                                      onSnapClick

           确认拍照模式                                    takePicture

           hal submitRequest(2是拍照流)   captureIntent:2

           notify shutter(通知快门)               onCaptureStarted

           尝试保存缩略图                           image save try to create thumbnail

           开始更新缩略图                           postUpdateThumbnail

           缩略图显示完成                           CAM_PreviewSaveRequest: image save finished

           APP 从hal收到所有yuv/raw             Data ready and all of the images are available

           拍照时间回滚                                     jpegCallback

           to shot可进行下一次拍照               reset Status to Idle

           算法后处理开始                           algo process start

           各后处理算法耗时                           costTime|process time:                   

           算法后处理结束,开始打包jpeg         algo process finished

           raw2yuv完成(超夜)                           onYuvAvailable

           开始转JPEG                                        jpeg process start                       

           jpeg打包完成                                     onJpegAvailable

           jpeg保存完成                                       saved image finished

       connect call                                 相机apk调用framwork API到hal,发起实际连接关键字

       poweron                                       sensor上电中会告知sensor拍照和预览的图片大小,app会下发预览指令surfacetexture

       sensorPowerOnCountInc            上电中间会有Hal层确认sensor id的打印

       configure                                     上电完成进行configure配置(配置中用SensorSettingPolicy查看sensor的信息)

       first frame                                    第一帧到达

       captureIntent:1                             预览流请求  

       onsnapclick                                  拍照(下面步骤同上)


Main log

通过adb logcat输出的main log文件,每一行都是以如下格式作为开头信息

格式:timestamp PID TID log-level log-tag

Event log输出格式

通过adb logcat输出的event log文件,每一行都是以如下格式作为开头信息
格式:timestamp PID TID log-level log-tag tag-values


V—Verbose(啰嗦,最低级别,开发调试中的一些详细信息,仅在开发中使用,不可在发布产品中输出,不是很常见,包含诸如方法名,变量值之类的信息)

D—Debug(调试,用于调试的信息,可以在发布产品中关闭,比较常见,开发中经常选择输出此种级别的日志,有时在beta版应用中出现)

I—Info(信息,该等级日志显示运行状态信息,可在产品出现问题时提供帮助,从该级别开始的日志通常包含完整意义的英语语句和调试信息,是最常见的日志级别)

W—Warning(警告,运行出现异常即将发生错误或表明已发生非致命性错误,该级别日志通常显示出执行过程中的意外情况,例如将try-catch语句块中的异常打印堆栈轨迹之后可输出此种级别日志)

E—Error(错误,已经出现可影响运行的错误,比如应用crash时输出的日志)

F—Fatal(严重错误,比error级别更高,目前我只在android系统内核发出的日志中看到此种级别。在Android6.0以前表明开发者认为绝对不应该出现的错误,在此以后一般开发场景下绝不应该输出此种级别的日志)

S—Silent(寂静,最高级别,没有一条日志会属于这个级别,仅仅作为关闭logcat输出的过滤器参数)

示例中日志等级显示为W,表示警告级别。


除标记和优先级外,日志消息还包含许多元数据字段。您可以修改消息的输出格式,以便它们显示特定的元数据字段。为此,您可以使用 -v 选项,并指定下列某一受支持的输出格式。

  • brief:显示优先级、标记以及发出消息的进程的 PID。
  • long:显示所有元数据字段,并使用空白行分隔消息。
  • process:仅显示 PID。
  • raw:显示不包含其他元数据字段的原始日志消息。
  • tag:仅显示优先级和标记。
  • thread::旧版格式,显示优先级、PID 以及发出消息的线程的 TID。
  • threadtime(默认值):显示日期、调用时间、优先级、标记、PID 以及发出消息的线程的 TID。
  • time:显示日期、调用时间、优先级、标记以及发出消息的进程的 PID。

启动 Logcat 时,您可以使用 -v 选项指定所需的输出格式:

[adb] logcat [-v <format>]


 

Crash 分为3种:未捕获异常、ANR(app未响应)、闪退(NDK)

未捕获的异常:将输入控制台

ANR:在data/anr生成一个traces.txt文件,存:异常的堆栈和线程信息

应用闪退:NDK引发错误。

一、 log文件的产生(Fatal/ANR)

1.      程序异常退出(fatal)

2.      程序强制关闭(fatal)

3.      程序无响应(Application No Response--ANR)

4.      native层:Tombstone crash

5.      Kernel层:kernel panic

出现情况有一下两种:

1.       界面操作按钮的点击等待时间超过5s

2.       HandleMessage回调函数执行超过10s,BroadcasterReciver里的onRecive()方法超过10s

二、 log文件包含内容

1. 系统基本信息,包括内存,cpu,进程队列,虚拟内存,垃圾回收等信息

2. 事件信息,即主要分析的信息

3.虚拟机信息,包括进程的、线程的跟踪信息

三、 观看log文件的步骤

1.如果是ANR问题,搜索ANR IN定位到关键事件信息

2.如果是Force closed或其他异常信息,搜索fatal exception,定位到关键事件信息

3. 定位到关键事件信息后,如果信息不明确,在去搜索应用程序包的虚拟机信息,查看具体的进程和线程跟踪日志来定位到代码。

是让我们确认问题到底发生在那个线程中,是主线程还是子线程,这个的判断依据是:如果PID和TID相同,恭喜你问题出在父亲这边,看样子问题还比较好办。如果PID和TID不相同,那么您悲剧了,问题出在子线程中。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/266460
推荐阅读
相关标签
  

闽ICP备14008679号