The new device does not have stricter limitations since it gives apps more RAM (24 MB instead of 16 MB.)
On Wed, Dec 2, 2009 at 5:29 PM, Matt Kanninen <mathias...@gmail.com> wrote: > 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 > -- 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