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