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 -~----------~----~----~----~------~----~------~--~---
