精华内容
下载资源
问答
  • android log分析
    千次阅读
    2021-05-28 01:09:55

    1 log文件分类简介

    实时打印 的主要有: logcat main , logcat radio , logcat events ,tcpdump ,还有高通平台的还会有 QXDM 日志

    状态信息 的有: adb shell cat /proc/kmsg , adb shell dmesg , adb shell dumpstate , adb shell dumpsys , adb bugreport ,工程模式等

    2 LOG抓取详解

    l 实时打印

    adb logcat -b main -v time>app.log 打印应用程序的 log

    adb logcat -b radio -v time> radio.log 打印射频相关的 log , SIM STK 也会在里面, modem 相关的 ATcommand 等,当然跟 QXDM 差的很远了。

    adb logcat -b events -v time 打印系统事件的日志,比如触屏事件。。。

    tcpdump 是很有用的,对于 TCP/IP 协议相关的都可以使用这个来抓, adb shell tcpdump -s 10000 -w /sdcard/capture.pcap ,比如抓 mms 下载的时候的 UA profile, browser 上网的时候,使用 proxy 的 APN 下载, streaming 的相关内容包括 UA profile 等。

    取消

    评论

    更多相关内容
  • android log 分析

    2014-07-10 14:13:23
    安卓开发之常见死机问题--log分析,一般在平时一般在平时工作中,基本上很多代码可以在eclipse+ndk进行调试,但如果需要用到具体的硬件设备,如媒体播放设备无法模拟的情况下,只能上硬件(盒子或手机)上进行调试。...
  • Android Log分析

    千次下载 热门讨论 2011-11-12 10:26:24
    android log的详细分析 希望对大家有帮助
  • 通过一个例子,深入解析一下log分析方法以及Handler对象,Android多线程及MediaPlayer状态分析
  • Android log分析

    千次阅读 2012-05-30 15:06:16
     在android开发中我们常常遇到很多异常情况,除了经常程序编译时语法错误及配置问题之外,还有一些逻辑上、数据上、操作上面的问题,使得程序不能按开发者设计正确运行,这种情况下,最常见的方法就是使用log显示...

    作者:陈旭

           在android开发中我们常常遇到很多异常情况,除了经常程序编译时语法错误及配置问题之外,还有一些逻辑上、数据上、操作上面的问题,使得程序不能按开发者设计正确运行,这种情况下,最常见的方法就是使用log显示输出需要验证的信息,以便追查问题。


    而我们在使用logcat查看log信息时,也发现log中系统自动打印出很多log信息,下面我们就来做一个简要的log分析。

    一、Log产生的时机

    1.      程序异常退出——uncausedexception

    2.      程序强制关闭——forceclosed

    3.      程序无响应——applicationno response

    4.      手动生成


    二、Log基本信息

    以Android2.1为例,android系统中有三大类log信息,每类信息对应一个设备文件:

    #defineLOGGER_LOG_MAIN “log/main”

    #defineLOGGER_LOG_RADIO “log/radio”

    #defineLOGGER_LOG_EVENTS “log/events”

     

    不同类型的log信息使用不同的设备,同时存在两种用户态方式共系统使用LOG体系:Liblog(libcutils 库已包括了liblog)或者bionic libc库、Jni。

    内核实现了每个LOG文件驱动,位于drivers/staging/android/logger.c中。

    当拿到一个LOG文件,要分成多段来看。LOG文件主要由三大块组成:

    1.      系统基本信息:包括内存,CPU,进程队列,虚拟内存,垃圾回收等信息。

    2.      时间信息:包括具体的时间点,对应的调用程序以及所做的具体动作,这块信息使我们平时调试和测试时主要关注的信息。

    3.      虚拟机信息:包括进程、线程的跟踪信息,如果需要跟踪线程和进程的情况则需要参考这部分信息。

    三、Logcat

    Logcat位于system/core/logcat/logcat.cpp中,其主要作用是提取保存在内核的log信息显示出来。


    展开全文
  • 如何分析和研究Log文件 ,如何看日志信息及举例。
  • Android-Log-Analyzer 一个简单的python脚本来分析Android日志 设置: 下载py脚本后,修改key_words对应你的app app_marker_name = 全部或部分您的应用名称 - "com.example" key_word_agent = "您的代理日志中...
  • android-log power 各包电量分析
  • 1. [Android实例] 【Sundy系列】网上绝无仅有的Log分析教程及例子!  http://www.eoeandroid.com/thread-55761-1-1.html 2. 同事总结的ppt https://skydrive.live.com/redir?resid=6C8CF3BF78BE0A95!179...

    1. [Android实例] 【Sundy系列】网上绝无仅有的Log分析教程及例子!

         http://www.eoeandroid.com/thread-55761-1-1.html


    2.  同事总结的ppt

    https://skydrive.live.com/redir?resid=6C8CF3BF78BE0A95!179&authkey=!APFlmuLIsBmmuPA

    展开全文
  • Android Log系统介绍 (基于Android N). 从调用 Log.d("xxx", "test") 到你从logcat中看到它的输出, 这中间都发生了什么? native代码中的"ALOG/ALOGD/ALOGE"等的"宏函数"log都打到哪里去了? 什么是 kernel log? 请看...
  • 本篇文章是对Android中的Log进行了详细的分析介绍,需要的朋友参考下
  • private static final boolean IS_DEBUG_BUILD = Build.TYPE.equals("eng") || Build.TYPE....分析异常时往往需要关注的重要目录: /data/anr/traces.txt /data/tombstones/tombstone_X /data/system/dropbox/ ...

    private static final boolean IS_DEBUG_BUILD =  Build.TYPE.equals("eng") || Build.TYPE.equals("userdebug");


    分析异常时往往需要关注的重要目录:

    /data/anr/traces.txt
    /data/tombstones/tombstone_X
    /data/system/dropbox/

    Log.i("LogTag","------------", new Exception()); 人为抛出异常  打印运行堆栈,此命令适用于源码编译中,但在APP中使用就会报错,APP中可以这样使用:

    Log.i("LogTag","------------",“ ---”+new Exception());

    Thread.currentThread().dumpStack(); //方法1

    Log.d(TAG,"Gityuan", new RuntimeException("Gityuan")); //方法2

    new RuntimeException("Gityuan").printStackTrace(); //方法3


    MTK的mtkloger:

    进入应用暗码 : *#*#3646633#*#*
    log的保存路径   /storage/emulated/0/mtklog

    如部分平板系统预装拨号盘如何打开MTKlog

    adb shell am start -n com.mediatek.mtklogger/com.mediatek.mtklogger.MainActivity

     

    mtklog 的分类:MDLog、Mobile Log、Network Log,可能出现的aee_exp log

    MD log:medom 相关底层的log

    Mobile Log:主要是Android log 和kernel log

    Network log:网络相关log

    aee_exp log :crash ANR 重启相关的log输出

    对应log文件名称为:

    crash_log :崩溃日志,主要输出 程序崩溃造成的crash log

    events_log:事件日志,主要输出记录各个activity周期及事件

    kernel_log:底层驱动,按键,低内存相关log

    sys_log:系统日志,Exception定位点

    radio_log:输出通话,网络状态变化

    main_log:详尽输出每一步的log

    参考原文 :  https://blog.csdn.net/weixin_33473519/article/details/53434800?utm_source=blogxgwz
     


    https://rayleeya.iteye.com/blog/1955652    此文对android的anr问题有详细说明

    ANR,是“Application Not Responding”的缩写,即“应用程序无响应”。在Android中,ActivityManagerService(简称AMS)和WindowManagerService(简称WMS)会监测应用程序的响应时间,如果应用程序主线程(即UI线程)在超时时间内对输入事件没有处理完毕,或者对特定操作没有执行完毕,就会出现ANR。对于输入事件没有处理完毕产生的ANR,Android会显示一个对话框,提示用户当前应用程序没有响应,用户可以选择继续等待或者关闭这个应用程序(也就是杀掉这个应用程序的进程)。

    1:关键字搜索:

    FATAL,leaked, block,Pid id XXX,crash,DALVIK THREADS, OOM,unfinished died

    查找应用包名--快速定位ANR

     The application may be doing too much work on its main thread.

    AndroidRuntime(xxxx): Shutting down VM

    线程的状态是native则表示当前正在执行jni,

    聪明的你肯定已经知道,之所以trace信息会输出到“/data/anr/traces.txt”文件中,就是系统属性“dalvik.vm.stack-trace-file”设置的。你可以通过在设备的shell中使用setprop和getprop对系统属性进行设置和读取:

    getprop  dalvik.vm.stack-trace-file

    setprop dalvik.vm.stack-trace-file /tmp/stack-traces.txt

     


    此 Dialog的java位置:

    frameworks\base\services\core\java\com\android\server\am\AppNotRespondingDialog.java

     

    alps\frameworks\base\services\core\java\com\android\server\am\AppErrors.java ::appNotResponding()

     此处发送Handler message为  SHOW_NOT_RESPONDING_UI_MSG
     // Set the app's notResponding state, and look up the errorReportReceiver
                makeAppNotRespondingLocked(app,
                        activity != null ? activity.shortComponentName : null,
                        annotation != null ? "ANR " + annotation : "ANR",
                        info.toString());
    
                // Bring up the infamous App Not Responding dialog
                Message msg = Message.obtain();
                msg.what = ActivityManagerService.SHOW_NOT_RESPONDING_UI_MSG;
                msg.obj = new AppNotRespondingDialog.Data(app, activity, aboveSystem);
    
                mService.mUiHandler.sendMessage(msg);

    接着会在ActivityManagerService.java类中接收此Message并对应处理

      alps\frameworks\base\services\core\java\com\android\server\am\ActivityManagerService.java
    
      final class UiHandler extends Handler {
            public UiHandler() {
                super(com.android.server.UiThread.get().getLooper(), null, true);
            }
    
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what) {
                case SHOW_ERROR_UI_MSG: {
                    mAppErrors.handleShowAppErrorUi(msg);
                    ensureBootCompleted();
                } break;
                case SHOW_NOT_RESPONDING_UI_MSG: {
                    mAppErrors.handleShowAnrUi(msg);
                    ensureBootCompleted();
                } break;

    在AppError.java中的handleShowAppErrorUI()

                if (mService.canShowErrorDialogs() || showBackground) {
                    dialogToShow = new AppNotRespondingDialog(mService, mContext, data);
                    proc.anrDialog = dialogToShow;
                } else {
                    MetricsLogger.action(mContext, MetricsProto.MetricsEvent.ACTION_APP_ANR,
                            AppNotRespondingDialog.CANT_SHOW);
                    // Just kill the app if there is no dialog to be shown.
                    mService.killAppAtUsersRequest(proc, null);
                }
            }
            // If we've created a crash dialog, show it without the lock held
            if (dialogToShow != null) {
                dialogToShow.show();
            }

    两个标签同时过滤adb 命令:  adb  shell "logcat |grep -e ActivityManager: -e WindowManager:"

    下面的打印为了log信息减少,所以分别打印方便查阅 ,

    C:\Users\User>adb logcat |findstr "ActivityManager"      \\点击Launcher中图标 打开APP DeskClock
    08-12 06:35:09.605  1043  8961 I ActivityManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.android.deskclock/.DeskClock bnds=[795,131][990
    ,423]} from uid 10015
    08-12 06:35:09.703  1043  8961 V WindowManager: Changing focus from Window{cfe72a u0 com.android.launcher3/com.android.launcher3.Launcher} to null Callers=com.android.server.wm.WindowManagerService.se
    tFocusedApp:2739 com.android.server.am.ActivityManagerService.setResumedActivityUncheckLocked:3325 com.android.server.am.ActivityStack.setResumedActivityLocked:2312 com.android.server.am.ActivityStack
    .minimalResumeActivityLocked:1115
    08-12 06:35:09.890  1043  1121 I ActivityManager: Displayed com.android.deskclock/.DeskClock: +201ms
    --------------------------------------------------------------------------------
    C:\Users\User>adb logcat -c|findstr "ActivityManager"

    C:\Users\User>adb logcat |findstr "ActivityManager"         \\退出APP
    08-12 06:35:29.715  1043  1078 V WindowManager: Changing focus from Window{4cebd29 u0 com.android.deskclock/com.android.deskclock.DeskClock} to null Callers=com.android.server.wm.WindowManagerService.
    setFocusedApp:2739 com.android.server.am.ActivityManagerService.setResumedActivityUncheckLocked:3325 com.android.server.am.ActivityStack.setResumedActivityLocked:2312 com.android.server.am.ActivitySta
    ck.resumeTopActivityInnerLocked:2694

    User>adb logcat -c |findstr "WindowManager:"

    User>adb logcat |findstr "WindowManager:"        //点击Launcher中图标 打开APP:DeskClock
    21:06.149  1043  1315 V WindowManager: Set focused app to: AppWindowToken{24e89b8 token=Token{b72727a ActivityRecord{5decea5 u0 com.android.deskclock/.DeskClock t43}}} old focus=AppWindowToke
     token=Token{64857d6 ActivityRecord{eb9b98 u0 com.android.launcher3/.Launcher t33}}} moveFocusNow=true
    21:06.149  1043  1315 V WindowManager: findFocusedWindow: No focusable windows.
    21:06.149  1043  1315 V WindowManager: Changing focus from Window{cfe72a u0 com.android.launcher3/com.android.launcher3.Launcher} to null Callers=com.android.server.wm.WindowManagerService.se
    pp:2739 com.android.server.am.ActivityManagerService.setResumedActivityUncheckLocked:3325 com.android.server.am.ActivityStack.setResumedActivityLocked:2312 com.android.server.am.ActivityStack
    esumeActivityLocked:1115
    21:06.149  1043  1315 D WindowManager: Input focus has changed to null
    21:06.152  1043  1315 V WindowManager: findFocusedWindow: No focusable windows.
    21:06.160  1043  6439 V WindowManager: findFocusedWindow: No focusable windows.
    21:06.481  1043  2119 I WindowManager: Relayout Window{c7e57f5 u0 com.android.deskclock/com.android.deskclock.DeskClock}: oldVis=4 newVis=0 focusMayChange = true
    21:06.487  1043  2119 V WindowManager: Changing focus from null to Window{c7e57f5 u0 com.android.deskclock/com.android.deskclock.DeskClock} Callers=com.android.server.wm.WindowManagerService.
    indow:2179 com.android.server.wm.Session.relayout:235 android.view.IWindowSession$Stub.onTransact:286 com.android.server.wm.Session.onTransact:162
    21:06.487  1043  2119 D WindowManager: Input focus has changed to Window{c7e57f5 u0 com.android.deskclock/com.android.deskclock.DeskClock}

    -------------------------------------------------------------------------------------

    User>adb logcat -c|findstr "WindowManager:"

    User>adb logcat |findstr "WindowManager:"     //退出APP:DeskClock 到Launcher
    21:27.964  1043  1226 D WindowManager: interceptKeyTi keyCode=4 down=false repeatCount=0 keyguardOn=false mHomePressed=false canceled=false metaState:0
    21:27.984  1043  6439 V WindowManager: Set focused app to: AppWindowToken{fb1c0e3 token=Token{64857d6 ActivityRecord{eb9b98 u0 com.android.launcher3/.Launcher t33}}} old focus=AppWindowToken{
    oken=Token{b72727a ActivityRecord{5decea5 u0 com.android.deskclock/.DeskClock t43}}} moveFocusNow=true
    21:27.984  1043  6439 V WindowManager: findFocusedWindow: No focusable windows.
    21:27.985  1043  6439 V WindowManager: Changing focus from Window{c7e57f5 u0 com.android.deskclock/com.android.deskclock.DeskClock} to null Callers=com.android.server.wm.WindowManagerService.
    dApp:2739 com.android.server.am.ActivityManagerService.setResumedActivityUncheckLocked:3325 com.android.server.am.ActivityStack.setResumedActivityLocked:2312 com.android.server.am.ActivitySta
    TopActivityInnerLocked:2694
    21:27.985  1043  6439 D WindowManager: Input focus has changed to null
    21:28.002  1043  1315 V WindowManager: findFocusedWindow: No focusable windows.
    21:28.044  1043  6439 I WindowManager: Relayout Window{cfe72a u0 com.android.launcher3/com.android.launcher3.Launcher}: oldVis=4 newVis=0 focusMayChange = true
    21:28.048  1043  6439 V WindowManager: Changing focus from null to Window{cfe72a u0 com.android.launcher3/com.android.launcher3.Launcher} Callers=com.android.server.wm.WindowManagerService.re
    dow:2179 com.android.server.wm.Session.relayout:235 android.view.IWindowSession$Stub.onTransact:286 com.android.server.wm.Session.onTransact:162
    21:28.048  1043  6439 D WindowManager: Input focus has changed to Window{cfe72a u0 com.android.launcher3/com.android.launcher3.Launcher}

    展开全文
  • modem LOG分析基础

    2017-11-22 09:24:20
    这里只是简要介绍一下与Log分析比较紧密的协议层/子层及其模块实现的功能,以便于我们后面对Log的分析理解。详细的各个协议层的介绍请参阅3GPP标准。
  • Android Log原理分析

    千次阅读 2019-05-31 17:46:49
    android开发的过程中,需要查看log信息来帮助分析。那么知晓log的原理就是比较重要的了。 Framework 中的Log Framework中的Log比较简单,主要就是封装接口,在接口中调用println_native函数。下面只以其中的一个...
  • android log 查看工具

    2020-05-07 20:49:21
    android log 查看工具,告别 adb logcat ,对log分析henyou希望能帮助到大家,谢谢!!!
  • Android自动化视频抓log分析,高级讲师亲自讲述Android自动化内容。
  • Android日志分析工具的开发介绍

    万次阅读 热门讨论 2017-04-20 14:14:46
    Android日志分析工具的开发介绍 一,软件下载地址: 技术交流QQ群:513138238(用于公布软件最新版本信息和相关技术交流) [V3.6.3] http://download.csdn.net/detail/u013662621/9945190 [V3.5.3] ...
  • Android LOG系统原理剖析

    千次阅读 2020-11-30 17:41:11
    在我们android的开发过程中,最不可少的就是加Log,打印Log的操作。 这样可以帮助我们去查看各个变量,理清楚代码的逻辑。 而Android系统,提供了不同维度,不同层面,不同...本文,将会分析Android Log系统的实现。
  • 本资源包括 从手机端提取的log 文件 及问题描述,分析思路和解决办法。是一篇很好的log分析日志。
  • 如何分析android中的log,以及对不同的log进行总结归类,帮助开发和测试更加明确遇到的问题
  • Android crash log分析工具

    热门讨论 2012-08-24 11:26:10
    一个linux下面分析Android崩溃日志(crash log)的工具。把崩溃的日志信息(带I/DEBUG标记)复制到xx文件中,用编辑器编辑工具中Android编译的符号(symbol)所在的位置,我的是在309行"SYMBOLS_DIR = './out/target/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 112,154
精华内容 44,861
关键字:

android log分析