IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> mtk手机log -> 正文阅读

[移动开发]mtk手机log

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不相同,那么您悲剧了,问题出在子线程中。

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:40:09  更:2022-07-21 21:42:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 4:55:04-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码