1、 进入拨号界面输入:##2846579## 2、依次选择ProjectMenu---后台设置----LOG设置---LOG开关 点击打开, 然后在LOG级别选VERBOSE 3、 重新启动手机
主要看是高通还是MTK了。不过大致相当,只是log文件名称不一样而已
手机的android log(包含 main_log、events_log、kernel_log),mainlog记录手机android上层app以及framework相关活动的log,比如你写的app打印的log,就在这里面;eventslog则主要是ActivityManager、powerManager等相关的log;Kernellog则主要是驱动相关的log。
Modem log,主要是通话相关的,比如信号强弱、连接那个网络等等
还有网络相关的netlog,看网络链接情况,抓取网络包等等
主要是以上这三个,其它还有data/anr 目录下的traces/tombstones等等,分析死机、重启还是很重要的。
看应用申请什么权限,就看mainlog就行,但是不一定有,因为一般手机log不会放开。
你可以在终端里键入命令查看其申请了什么权限: adb shell dumpsys package <包名>,或者反编译其apk,查看其AndroidManifestxml文件。
控制台,还是在Eclipse上的Logcat视图?1、如果是控制台,可以在控制台输入:adb logcat -s ":I"2、如果是在Eclipse上的Logcat视图,可以选择filter的级别为“info”-------------------------------------------------------------更多疑问解答,尽在@安卓互助平台 新浪微博
两种情景抓取log:
1、adbshell 能够工作通过adb获取一些信息,如adb bugreport > D:\bugreporttxt。一些Android framework dead lock可能导致bugreport hang。因此需要先获取一些简单log,如dmesg和logcat log。再进行adb bugreport *** 作。获取dmesg log之后,通过sysrq 接口获取更多信息。
kernel/Documentation/sysrqtxt显示 stack for all active CPUecho l >/proc/sysrq-trigger
显示hold lock echo d > /proc/sysrq-trigger
显示 hrtimerecho q > /proc/sysrq-trigger
disk sleep(uninterruptable sleep)时显示tasks,如阻塞在mutex或者hardware
register access。echo w > /proc/sysrq-trigger
进行以上trigger后,再次获取dmesg log以防止覆盖。
通过以下trigger获取crash dump
不同平台拥有不同sysfs进入downloade mode的方式,并使能downloadmode可能是以下一项:
echo 1>/sys/module/restart/parameters/download_mode
echo 1>/sys/module/msm_restart/parameters/download_modeecho 1 >/sys/module/msm_poweroff/parameters/download_mode
如果 *** 作adb bugreport没有block,最后triggercrash。echo c> /proc/sysrq-trigger
2、没有枚举adb port或者adb shell不能正常工作
我们需要trigger dump,通过长按power key或者RESET_IN pin(通常连接到powerkey + volume-产生),
需要确保s2-type 配置为1 (warm reset),而不是 7 (hard reset)
pon_1 is forpower key, pon_3 is for RESET_IN pin以8894为例,kernel/arch/arm64/boot/dts/qcom/msm-pm8994dtsiqcom,pon_1 {undefined
qcom,pon-type = ;
qcom,pull-up = ;
Linux,code = ;
qcom,support-reset = ;
qcom,s1-timer = ;
qcom,s2-timer = ;
qcom,s2-type = ;};
qcom,pon_3 {undefined
qcom,pull-up = ;
qcom,s1-timer = ;
qcom,s2-timer = ;
qcom,s2-type = ;
qcom,use-bark;};
如果仍然不工作,pull down PS_HOLDin 200ms。
读取日志需要的权限
<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--------");
}
}
}
以上就是关于华为手机如何获取logcat日志全部的内容,包括:华为手机如何获取logcat日志、如何抓取kernel,mobile,modem的log-MTK软件、如何获取Android 的系统日志logcat等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)