Hi ,

To cut things short , sometimes the situation may happen like this - One
person codes and another person analyzes. So many times we dont have control
of the code and some time we dont own the code. Its more like a core dump
analysis and backtracing what could be happening in the moment of ANR truth!

So I wanted to know if a ANR dump is given to me , how to analyse that , I
could know which app got  stuck ( "xxxyyyzzz") from the below message

Key dispatching timed out sending to  "xxxyyyzzz" ,

but the million dollar question is why and how . So I wanted to know the
nitty gritty of these log messages to extract more info.

The example that I gave is not a Problem that I ask for help, it more of a
template to make my question more clear

However thanks for your inputs , I will go through the files you mention and
understand more .

Thanks
AndUzer



On Wed, Oct 21, 2009 at 9:34 PM, lbcoder <[email protected]> wrote:

>
> Well, if the program is well written, then the programmer should never
> have to worry about this at all.
>
> It is also very difficult to guess what specific fields he is
> interested in understanding unless he tells us. He might have (said
> something about being in RED), but it didn't come through in the
> message.
>
> Regarding the traces.txt file, its pretty straight forward. It shows
> traces for all of the threads running within the process that
> triggered the ANR, right down to LINE NUMBER for non-native code.
>
> On Oct 21, 10:36 am, Disconnect <[email protected]> wrote:
> > While this is all excellent advice, he's asking about specific fields
> > in the log dump.
> >
> > On Wed, Oct 21, 2009 at 10:23 AM, Streets Of Boston
> >
> > <[email protected]> wrote:
> >
> > > Yep!
> >
> > > And a 'long time' can mean different things.
> > > If you need to have a smooth UI experience (and you should), keep the
> > > processing for any UI-event (i.e. any method called on the main UI
> > > thread) under 100ms (1/10th of a second). And that's pushing it.
> >
> > > On button clicks, when the user moves from one screen to another, and
> > > similar events, the processing-time for UI-events can be a bit longer,
> > > but 1 second is pushing it.
> >
> > > When you get the ANR, it means that your UI-event processing took
> > > waaaaaaaaaaay too long.
> > > The goal is to make the UI experience as pleasant as possible. Even if
> > > you don't get an ANR, your UI experience may already appear to be
> > > slow.
> >
> > > On Oct 21, 9:41 am, lbcoder <[email protected]> wrote:
> > >> ANR means that you have something holding up the UI thread for longer
> > >> than the specified time.
> >
> > >> For example;
> > >> You have a button on the screen. The button runs a network request
> > >> that takes 30 seconds to process. This network request is within the
> > >> same thread as the button, so the button's click listener doesn't
> > >> return control to the UI thread for a long time. ANR. To fix this,
> > >> have the button start a new THREAD and run the network request from
> > >> within this thread, that way the button returns immediately and the UI
> > >> thread continues to function while the long process happens in the
> > >> background.
> >
> > >> IN GENERAL, anything that can potentially take a "long time" (such as
> > >> networking or data processing) should be done in a new thread.
> >
> > >> On Oct 21, 2:06 am, Manohar Mahapatra <[email protected]> wrote:
> >
> > >> > Hi ,
> >
> > >> > I am interested to know the nitty gritty of ANR dialogs and How to
> analyse
> > >> > ANRs with the info I get , A typical ANR looks like this( see below)
> but I
> > >> > cant figure out much Info from this .
> > >> > Also I want to know what info should I look for in
> /data/anr/traces.txt to
> > >> > compliment my analysis of such a log and pin point the root cause .
> > >> > I want to know what these the parameters in RED mean
> >
> > >> > 01-01 01:43:05.313: WARN/WindowManager(1834): Key dispatching timed
> out
> > >> > sending to
> > >> >
> com.android.settings/com.android.settings.bluetooth.BluetoothSettings
> > >> > 01-01 01:43:05.318: WARN/WindowManager(1834): *Dispatch state*:
> > >> > {{KeyEvent{action=1
> > >> > code=4 repeat=0 meta=0 scancode=212 mFlags=8} to Window{435c7df8
> > >> >
> com.android.settings/com.android.settings.bluetooth.BluetoothSettings
> > >> > paused=false} @ 1104543391080 lw=Window{435c7df8
> > >> >
> com.android.settings/com.android.settings.bluetooth.BluetoothSettings
> > >> > paused=false} lb=android.os.binderpr...@43502ae0 fin=false gfw=true
> ed=true
> > >> > tts=0 wf=false fp=false mcf=Window{4355bf08
> > >> >
> com.android.settings/com.android.settings.bluetooth.BluetoothSettings
> > >> > paused=false}}}
> > >> > 01-01 01:43:05.323: WARN/WindowManager(1834):* Current state*:
>  {{null to
> > >> > Window{4355bf08
> > >> >
> com.android.settings/com.android.settings.bluetooth.BluetoothSettings
> > >> > paused=false} @ 1104543785321 lw=Window{4355bf08
> > >> >
> com.android.settings/com.android.settings.bluetooth.BluetoothSettings
> > >> > paused=false} lb=android.os.binderpr...@43539ea8 fin=false gfw=true
> ed=true
> > >> > tts=0 wf=false fp=false mcf=Window{4355bf08
> > >> >
> com.android.settings/com.android.settings.bluetooth.BluetoothSettings
> > >> > paused=false}}}
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834): ANR (application not
> > >> > responding) in process: com.android.settings
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834): Annotation:
> > >> > keyDispatchingTimedOut
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834): CPU usage:
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834): Load: 0.46 / 1.05 /
> 1.26
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834): CPU usage from
> 5421ms to
> > >> > 94ms ago:
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834):   system_server: 5%
> = 3%
> > >> > user + 2% kernel
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834):   qt5480_work_que:
> 1% = 0%
> > >> > user + 1% kernel
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834):   events/0: 0% = 0%
> user +
> > >> > 0% kernel
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834):   akmd2: 0% = 0%
> user + 0%
> > >> > kernel
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834):   btld: 0% = 0% user
> + 0%
> > >> > kernel
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834):   com.android.phone:
> 0% = 0%
> > >> > user + 0% kernel
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834):   drexe: 0% = 0%
> user + 0%
> > >> > kernel
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834):   com.wssyncmlnps:
> 0% = 0%
> > >> > user + 0% kernel
> > >> > 01-01 01:43:05.438: INFO/ActivityManager(1834): TOTAL: 7% = 3% user
> + 3%
> > >> > kernel
> > >> > 01-01 01:43:05.443: INFO/ActivityManager(1834): Removing old ANR
> trace file
> > >> > from /data/anr/traces
> >
> > >> > I did go through the *
> http://developer.android.com/guide/practices/design/responsiveness.html*
> > >> > but that gives a very good head start , I request if  anybody has
> documented
> > >> > more on the ANR analysis / case studies , please share the link/blog
> .
> >
> > >> > I wanted to know what causes the WindowManager/ActivityManager to
> trigger an
> > >> > ANR. I want to understand from a Design/Code perspective as how ANR
> dilaog
> > >> > is formed.
> >
> > >> > Thanks
> > >> > AndUzer- Hide quoted text -
> >
> > >> - Show quoted text -
> >
> >
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Android Discuss" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/android-discuss?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to