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