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怎么获取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)