oppo手机抓取的log在哪里

oppo手机抓取的log在哪里,第1张

oppo手机抓取的log,先#800#,在d出的界面选择第一项“Oppo Logkit”,再选取第一项“常规log日志信息抓取”,点击最下面一排按钮最左右的“保存log”,返回到上一界面选择QXDM log抓取,再选择打开Device_Log,运行一段时间后选择关闭Device_Log问题出现后在进入“常规log日志信息抓取”点击暂停log,再点击转存log,进入文件管理OPPOlog就是所在的log。

1、logcat

(四类log buffer是main,radio,system,events)

adb wait-for-device logcat

adb logcat -v time > logcattxt //默认是-b main -b system

adb logcat -v time -b main //main log

adb logcat -v time -b radio //radio log

adb logcat -v time -b system //system log

adb shell dmesg //kernel log

adb logcat -v time -b events

2、anr log

adb pull /data/anr

3、tombstone log

adb pull /data/tombstones

4、core log

adb pull /data/log/core

5、开机log

adb shell dmesg > dmesgtxt

6、logcatch

adb pull /data/logcatch

7、qxdm log

adb pull /sdcard/logs

8、 hprof log

在分析app 时,我们通常需要分析app 的java heap 资料,如分析java 的memory leak, 追查heap

中相关变量情况等。

在android 中抓取app 的hprof *** 作方式有下面几种:

第一种方式: 使用am 命令

adb shell am dumpheap {Process} file

如 adb shell am dumpheap comandroidphone /data/anr/phonehprof

adb pull /data/anr/phonehprof

第二种方式: 使用DDMS 命令

在DDMS 中选择对应的process, 然后在Devices 按钮栏中选择Dump Hprof file, 保存即可

第三种方式: 通过代码的方式

在androidosDebug 这个class 中有定义相关的抓取hprof 的method

如: public static void dumpHprofData(String fileName) throws IOException;

这样即可在代码中直接将这个process 的hprof 保存到相对应的文件中,注意这个只能抓取当时的

process

如果想抓其他的process 的hprof, 那么就必须通过AMS 帮忙了。

可以先获取IActivityManager 接口,然后调用它的dumpheap 方法。具体的代码,大家可以参考

frameworks/base/cmds/am/src/com/android/commands/am/amjava 中的调用代码

抓取回hprof 后,就可以用hprof-conv 命令将DVM 格式的hprof 转换成标准的java 命令的hprof

hprof-conv inhprof outhprof

然后使用如MAT 之类的工具进行具体的分析

9、bugreport

adb bugreport > bugreporttxt

10、kernel log(只有从当前时间起的很少的log)

cat proc/kmsg > kmsgtxt

11、其他

adb shell dumpstate //各类信息,比如进程信息,内存信息,进程是否异常,kernnel的log等

adb shell dumpcrash

adb shell dumpsys //查询所有service的状态

1 用户把设备连接到电脑上,打开xcode-window-organizer,选中Devices-当前连接设备-Device Log,就可以查看所有当前设备的crash log,这个时候打开每一份crash的时候,发现这些文件的部分地址都会被转换成,类名,方法名和行号等。设备上的日志只用刚刚查看过都会被同步到organizer种,在LIBRARY下的Device Log可以查看

2 如果你的应用已经上架,那么开发者可以通过iTunes Connect(Manage Your Applications - View Details - Crash Reports)获取用户的crash日志。不过这并不是100%有效的,而且大多数开发者并不依赖于此,因为这需要用户设备同意上传相关信息,详情可参见iOS: Providing Apple with diagnostics and usage information摘要。

读取日志需要的权限

1

<uses-permission android:name="androidpermissionREAD_LOGS"/>

主要代码

package mtfzgh;

import javaioBufferedReader;

import javaioInputStreamReader;

import javautilArrayList;

public class MyLog

{

public static class MLog //静态类

{

public static void getLog()

{

Systemoutprintln("--------func start--------"); // 方法启动

try

{

ArrayList<String> cmdLine=new ArrayList<String>(); //设置命令 logcat -d 读取日志

cmdLineadd("logcat");

cmdLineadd("-d");

ArrayList<String> clearLog=new ArrayList<String>(); //设置命令 logcat -c 清除日志

clearLogadd("logcat");

clearLogadd("-c");

Process process=RuntimegetRuntime()exec(cmdLinetoArray(new String[cmdLinesize()])); //捕获日志

BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(processgetInputStream())); //将捕获内容转换为BufferedReader

// RuntimerunFinalizersOnExit(true);

String str=null;

while((str=bufferedReaderreadLine())!=null) //开始读取日志,每次读取一行

{

RuntimegetRuntime()exec(clearLogtoArray(new String[clearLogsize()])); //清理日志这里至关重要,不清理的话,任何 *** 作都将产生新的日志,代码进入死循环,直到bufferreader满

Systemoutprintln(str); //输出,在logcat中查看效果,也可以是其他 *** 作,比如发送给服务器

}

if(str==null)

{

Systemoutprintln("-- is null --");

}

}

catch(Exception e)

{

eprintStackTrace();

}

Systemoutprintln("--------func end--------");

}

}

}

以上就是关于oppo手机抓取的log在哪里全部的内容,包括:oppo手机抓取的log在哪里、如何通过qxdm带关键字抓取log、ios crash log怎么获取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10040992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存