当ANR 发生时,查看系统生成的traces 文件有助于我们定位ANR 产生的原因,那么我们该如何从手机中导出traces 文件呢?可以使用下面的方式
1 老版本Android 系统导出traces
针对Android 10 以下系统使用上面的命令可以导出traces 文件到运行该命令的当前目录下,如果导出到指定目录,只需在命令后面加上路径和文件名即可,例
但是,这个命令在Android 10 及以上是不能导出traces 的,是因为以前ANR 一直放在traces文件中,多次出现有覆盖的问题,高版本系统做了优化,会根据时间戳分别生成一个文件,打包导出。
这个时候,如果运行上面命令,会发现并不能找到tracestxt,如果我们使用 adb shell 进入到设备的 /data/anr 目录,会发现有一些以时间戳命名的文件,它们其实就是traces 文件,
该命令会导出一个zip 压缩包到当前目录(修改路径见上面示例),这个压缩包中包括了一些bug 信息,而traces 文件则包含在压缩包的 FS/data/anr 路径下
3 找到目标traces
我们首先打开压缩包最外层目录下的 bugreport-txt
搜索 anr in 关键字,然后在搜索到的结果匹配我们应用的application id,然后向上滑动,找到 Dumping to /data/anr/filename 这一行,其中filename 就是traces 文件名。
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (d:\atxt) do (
set /a num+=1
echo %%a |findstr "traceroute" >nul 2>nul&&set var=!num!&&call :loop "!var!"
)
pause&exit
:loop
for /f "delims=" %%b in (d:\atxt) do (
set /a m+=1
if !m! geq %~1 (
set "str=%%b"&set "str=!str:traceroute=!"&echo !str!
)
)>>btx
尝试使用USBoot这款软件来恢复闪存。
此软件为绿色软件,解压后即可使用。它的作用是让闪存成为引导盘,但是在一些情况下,可以让被病毒破坏的闪存恢复正常。
首先插入闪存,启动USBoot软件;在列表中选择闪存,在下方“点击此处选择工作模式”处,选择需要模式。选择ZIP模式,启动即可
以上就是关于导出ANR traces 文件(解决无权限、Permission denied)全部的内容,包括:导出ANR traces 文件(解决无权限、Permission denied)、·bat读取txt文档提取指定内容,然后输出、我的U盘里面老有edpTrace.txt这样的文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)