Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-18726] Android: Skipped frames logged for alloy and classic apps

GitHub Issuen/a
TypeBug
PriorityMedium
StatusClosed
ResolutionCannot Reproduce
Resolution Date2015-05-11T01:11:57.000+0000
Affected Version/sRelease 4.0.0
Fix Version/sRelease 4.1.0
ComponentsAndroid
Labelsqe-4.0.0
ReporterEric Merriman
AssigneeAshraf Abu
Created2015-03-21T22:28:42.000+0000
Updated2017-03-23T19:03:25.000+0000

Description

Description:

When I run an alloy or classic app in android emulator I see multiple "Choreographer" log INFO entries like so:
[INFO] :   TiRootActivity: (main) [0,0] checkpoint, on root activity resume. activity = com.appc.classic.ClassictestActivity@40ff8618
[INFO] :   Choreographer: Skipped 57 frames!  The application may be doing too much work on its main thread.
[INFO] :   Choreographer: Skipped 114 frames!  The application may be doing too much work on its main thread.
[INFO] :   dalvikvm: Could not find method android.view.ViewGroup.onNestedScrollAccepted, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onNestedScrollAccepted
[WARN] :   dalvikvm: VFY: unable to resolve virtual method 11961: Landroid/view/ViewGroup;.onNestedScrollAccepted (Landroid/view/View;Landroid/view/View;I)V
[INFO] :   dalvikvm: Could not find method android.view.ViewGroup.onStopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll
[WARN] :   dalvikvm: VFY: unable to resolve virtual method 11967: Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
[INFO] :   dalvikvm: Could not find method android.support.v7.internal.widget.ActionBarOverlayLayout.stopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.setHideOnContentScrollEnabled
[WARN] :   dalvikvm: VFY: unable to resolve virtual method 9530: Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll ()V
[INFO] :   dalvikvm: Could not find method android.view.ViewGroup.onRtlPropertiesChanged, referenced from method android.support.v7.widget.Toolbar.onRtlPropertiesChanged
[WARN] :   dalvikvm: VFY: unable to resolve virtual method 11964: Landroid/view/ViewGroup;.onRtlPropertiesChanged (I)V
[INFO] :   dalvikvm: Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
[WARN] :   dalvikvm: VFY: unable to resolve virtual method 539: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
[INFO] :   dalvikvm: Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.internal.widget.TintTypedArray.getType
[WARN] :   dalvikvm: VFY: unable to resolve virtual method 561: Landroid/content/res/TypedArray;.getType (I)I
[INFO] :   Choreographer: Skipped 46 frames!  The application may be doing too much work on its main thread.
[INFO] :   Choreographer: Skipped 62 frames!  The application may be doing too much work on its main thread.
[INFO] :   Choreographer: Skipped 141 frames!  The application may be doing too much work on its main thread.
[INFO] :   Choreographer: Skipped 43 frames!  The application may be doing too much work on its main thread.
The frame number will vary. I have not see this type of INFO statement before.

Steps to reproduce:

1) Create a new project - alloy default or classic two-tab 2) Launch in android emulator 3) Monitor log

Result:

Expected Result:

Comments

  1. Ingo Muschenetz 2015-03-22

    Ash, can you take a look at this?
  2. Ingo Muschenetz 2015-03-22

    [~emerriman] regression?
  3. Ashraf Abu 2015-03-23

    Looking at this.
  4. Ashraf Abu 2015-03-23

    [~emerriman] May I know what kind of settings you are using for the emulator as well? Eg, Device, Target, CPU/ABU. Use Host GPU, RAM, VM Heap. Choreographer is only available on API16+ (JellyBean) so it shouldn't appear on devices and emulators below that. I'm using 4.0.0.v20150320224212. I get the following logs.
       [INFO] :   TiApplication: (main) [0,0] checkpoint, app created.
       [INFO] :   TiApplication: (main) [314,314] Titanium 4.0.0 (2015/03/20 22:42 56936fd)
       [INFO] :   TiApplication: (main) [176,490] Titanium Javascript runtime: v8
       [INFO] :   TiRootActivity: (main) [0,0] checkpoint, on root activity create, savedInstanceState: null
       [WARN] :   V8Object: (KrollRuntimeThread) [216,216] Runtime disposed, cannot set property 'userAgent'
       [INFO] :   I/dalvikvm-heap: Grow heap (frag case) to 5.566MB for 1536012-byte allocation
       [INFO] :   TiRootActivity: (main) [0,0] checkpoint, on root activity resume. activity = skip.frames.SkippedframessActivity@b20378c0
       [INFO] :   dalvikvm: Could not find method android.view.ViewGroup.onNestedScrollAccepted, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onNestedScrollAccepted
       [WARN] :   dalvikvm: VFY: unable to resolve virtual method 11903: Landroid/view/ViewGroup;.onNestedScrollAccepted (Landroid/view/View;Landroid/view/View;I)V
       [INFO] :   dalvikvm: Could not find method android.view.ViewGroup.onStopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll
       [WARN] :   dalvikvm: VFY: unable to resolve virtual method 11909: Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
       [INFO] :   dalvikvm: Could not find method android.support.v7.internal.widget.ActionBarOverlayLayout.stopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.setHideOnContentScrollEnabled
       [WARN] :   dalvikvm: VFY: unable to resolve virtual method 9475: Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll ()V
       [INFO] :   dalvikvm: Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
       [WARN] :   dalvikvm: VFY: unable to resolve virtual method 516: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
       [INFO] :   dalvikvm: Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.internal.widget.TintTypedArray.getType
       [WARN] :   dalvikvm: VFY: unable to resolve virtual method 538: Landroid/content/res/TypedArray;.getType (I)I
       [INFO] :   Choreographer: Skipped 32 frames!  The application may be doing too much work on its main thread.
       [INFO] :   Choreographer: Skipped 36 frames!  The application may be doing too much work on its main thread.
       [INFO] :   APSAnalyticsService: Analytics Service Started
       [INFO] :   APSAnalyticsService: Stopping Analytics Service
       
    On my emulator, I only get Choreographer twice with low number of frames being skipped. Could it just be that the emulator that you are using is really slow? Choreographer only starts logging when the main thread is slow which occurs most of the time on emulators. Real devices normally work fine and hence, there's nothing for Choreographer to log about.
  5. Ashraf Abu 2015-03-24

    Just a note: Tried this with:- 3.4.1.GA 3.5.0.GA 3.5.1.GA 4.0.0.v20150320224212 I get a consistent only 2 Choreographer logs with the classic app on my Emulator. Based on that, I think it's more on what kind (settings) of emulator a person is using. Don't think it's a regression. [~emerriman], what do you think?
  6. Chee Kiat Ng 2015-05-07

    Hi [~emerriman], any thoughts on [~msamah] comments? If it's ok i'll mark this as not reproducible by the end of this sprint. :)
  7. Lee Morris 2017-03-23

    Closing ticket as "Cannot Reproduce" with reference to the above comments.

JSON Source