| |
|
开发:
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 |
MTK1.手机进入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
? 暗码
暗码 *#*#3646633#*#* ? ?/ ? ?*#*#873733284#*#*
*#*#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文件,每一行都是以如下格式作为开头信息 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?选项,并指定下列某一受支持的输出格式。
启动 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 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |