What did I do wrong?  I worked within the defined limitations, then a
new handset came out with stricter limitations.

I'm kind of confused how you can blame me!

On Dec 2, 5:19 pm, Romain Guy <romain...@android.com> wrote:
> The Droid has more pixels and a high display density, therefore
> bitmaps are scaled and require more memory. If your app is running out
> of memory, do not blame it on the framework and "poorer performance,"
> blame it on your app for doing the wrong thing and abusing the Java
> heap.
>
>
>
> > The app worked great on the G1.  I've clearly hit a case where the
> > framework made some decisions that result in poorer performance on the
> > Droid.
>
> > The bitmap out of memory errors can still occur on any setLayout(res/
> > xml/id), after running the app for 5-30 mins.  But I did fix the
> > bitmap out of memory crash that occured during
>
> > glow.setBackgroundResource(glowDrawableIds[scale]);
>
> > We just don't set a new background resource anymore.
>
> > I had 10 animation frames, and the animation frame chosen was based
> > upon the volume coming from the mic.
>
> > Now we take what was the last frame, and vary it's drawable's
> > transparency depending on volume.
>
> > glow.getBackground().setAlpha(alpha);
>
> > I will now start creating additional res/xml/files, so that LESS
> > complex layouts are used on the Verizon Motorola Droid with firmware
> > 2.0 then we used on the G1.
>
> > The layouts, and the final resulting screens were approved by
> > management, so I will be trying hard not to change ANYTHING on the G1,
> > while adding support for the inferior memory handling on the only
> > Android 2.0 handset.  The one with better specs.
>
> > Can anyone recommend which Android debugging tool I should be using to
> > figure out what to optimize?
>
> > On Nov 25, 11:11 am, Streets Of Boston <flyingdutc...@gmail.com>
> > wrote:
> >> As in the comment in your bug-report by Romain, you're using too much
> >> memory.
> >> Note that you only have 16MByte total available RAM for your process,
> >> including your bitmaps.
>
> >> - Only load the bitmaps that are absolutely necessary (especially when
> >> they become quite large).
> >> - Load the bitmaps scaled to the size of your screen, if possible. Use
> >> BitmapFactory.decode and set the 'inSampleSize' of your bitmap-options
> >> to scale down the size of the bitmap to be loaded and rendered on the
> >> screen.
>
> >> On Nov 25, 12:46 pm, MattKanninen<mathias...@gmail.com> wrote:
>
> >> > <a href="http://code.google.com/p/android/issues/detail?id=5045";>Issue
> >> > 5045</a>
>
> >> >http://code.google.com/p/android/issues/detail?id=5045
>
> >> > On Nov 25, 9:37 am, MattKanninen<mathias...@gmail.com> wrote:
>
> >> > > This:
> >> > >         private static final int[] glowDrawableIds={
> >> > >                 R.drawable.graphic_microphoneglow_01,
> >> > >                 R.drawable.graphic_microphoneglow_02,
> >> > >                 R.drawable.graphic_microphoneglow_03,
> >> > >                 R.drawable.graphic_microphoneglow_04,
> >> > >                 R.drawable.graphic_microphoneglow_05,
> >> > >                 R.drawable.graphic_microphoneglow_06,
> >> > >                 R.drawable.graphic_microphoneglow_07,
> >> > >                 R.drawable.graphic_microphoneglow_08,
> >> > >                 R.drawable.graphic_microphoneglow_09,
> >> > >                 R.drawable.graphic_microphoneglow_10
> >> > >         };
> >> > > ...
> >> > > View glow = findViewById(R.id.glow);
> >> > > ..
>
> >> > > glow.setBackgroundResource(glowDrawableIds[scale]);
>
> >> > > is causing
>
> >> > > 11-25 09:21:02.046: WARN/UsageStats(1018): Failed to persist new stats
> >> > > 11-25 09:21:02.694: DEBUG/dalvikvm(2386): GC freed 298 objects / 15656
> >> > > bytes in 61ms
> >> > > 11-25 09:21:02.952: ERROR/dalvikvm-heap(2386): 1111680-byte external
> >> > > allocation too large for this process.
> >> > > 11-25 09:21:02.952: ERROR/(2386): VM won't let us allocate 1111680
> >> > > bytes
> >> > > 11-25 09:21:02.952: DEBUG/AndroidRuntime(2386): Shutting down VM
> >> > > 11-25 09:21:02.952: WARN/dalvikvm(2386): threadid=3: thread exiting
> >> > > with uncaught exception (group=0x4001b180)
> >> > > 11-25 09:21:02.952: ERROR/AndroidRuntime(2386): Uncaught handler:
> >> > > thread main exiting due to uncaught exception
> >> > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386):
> >> > > java.lang.OutOfMemoryError: bitmap size exceeds VM budget
> >> > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386):     at
> >> > > android.graphics.Bitmap.nativeCreate(Native Method)
> >> > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386):     at
> >> > > android.graphics.Bitmap.createBitmap(Bitmap.java:468)
> >> > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386):     at
> >> > > android.graphics.Bitmap.createBitmap(Bitmap.java:435)
> >> > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386):     at
> >> > > android.graphics.Bitmap.createScaledBitmap(Bitmap.java:340)
> >> > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386):     at
> >> > > android.graphics.BitmapFactory.finishDecode(BitmapFactory.java:488)
> >> > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386):     at
> >> > > android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:462)
> >> > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386):     at
> >> > > android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:
> >> > > 323)
> >> > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386):     at
> >> > > android.graphics.drawable.Drawable.createFromResourceStream
> >> > > (Drawable.java:697)
> >> > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386):     at
> >> > > android.content.res.Resources.loadDrawable(Resources.java:1705)
> >> > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386):     at
> >> > > android.content.res.Resources.getDrawable(Resources.java:580)
> >> > > 11-25 09:21:03.014: ERROR/AndroidRuntime(2386):     at
> >> > > android.view.View.setBackgroundResource(View.java:7187)- Hide quoted 
> >> > > text -
>
> >> > - Show quoted text -
>
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Android Developers" group.
> > To post to this group, send email to android-developers@googlegroups.com
> > To unsubscribe from this group, send email to
> > android-developers+unsubscr...@googlegroups.com
> > For more options, visit this group at
> >http://groups.google.com/group/android-developers?hl=en
>
> --
> Romain Guy
> Android framework engineer
> romain...@android.com
>
> Note: please don't send private questions to me, as I don't have time
> to provide private support.  All such questions should be posted on
> public forums, where I and others can see and answer them

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to