Any way to avoid garbage collection on these lines? Bitmap.createBitmap / new Canvas(bitmap)

by admin.androidsl...@googlemail.com » Tue, 14 Apr 2009 21:23:13 GMT


Sponsored Links
 Running these many times in my app loop :

Bitmap bitmap = Bitmap.createBitmap(320, 480, Config.RGB_565);
Canvas canvas = new Canvas(bitmap);

I'm thinking of caching either / both of these objects, but don't want
to get out of memory errors either!



--~--~---------~--~----~------------~-------~--~----~



Any way to avoid garbage collection on these lines? Bitmap.createBitmap / new Canvas(bitmap)

by Streets Of Boston » Tue, 14 Apr 2009 21:51:56 GMT


 If this bitmap is used for displaying only one item (image), why do
you create a new bitmap over and over again?

once:
mBitmap = Bitmap.createBitmap(320,480,Config.RGB_565);
...
...
many times:
Canvas canvas = new Canvas(mBitmap);
// clear canvas
// draw into canvas
...
..

On Apr 14, 9:22am, "admin.androidsl...@googlemail.com"


--~--~---------~--~----~------------~-------~--~----~


Sponsored Links


Any way to avoid garbage collection on these lines? Bitmap.createBitmap / new Canvas(bitmap)

by admin.androidsl...@googlemail.com » Tue, 14 Apr 2009 22:05:48 GMT


 I'm happy to keep a static or member reference to the Bitmap object
for future usage - but I'm worried if that will reduce the amount of
memory available to my app?

Alex





--~--~---------~--~----~------------~-------~--~----~



Any way to avoid garbage collection on these lines? Bitmap.createBitmap / new Canvas(bitmap)

by Streets Of Boston » Tue, 14 Apr 2009 22:57:07 GMT


 In one of my apps i have similar concerns. I cache a bunch of bitmaps
to improve the user experience (using Map). However, at some point in
my app, the app needs the memory (preparing for image-editing on full-
sized image).

This is what i did:
I wrote a class to which bitmap-caches can register them selves.
This class provides a static method called 'tryToReclaimBitmapMemory
()' which will loop over all the registered bitmap-caches and asks
them to clear their caches and, if possible, recycle their bitmaps.
After this it'll call 'System.gc()' for good measure :)

Whenever my app reaches a point where it needs as much (bitmap) memory
as possible, it will call this static method 'tryToReclaimBitmapMemory
()'.

In this way, i can keep cached bitmaps and i'm only zapping them when
really necessary.

On Apr 14, 10:05am, "admin.androidsl...@googlemail.com"




--~--~---------~--~----~------------~-------~--~----~



Other Threads

1. opencore test apps are broken

can you try "make BUILD_PV_TEST_APPS := 1" or adding in ./buildspec.mk??




> website: 

2. java.lang.NullPointerException when trying to edit strings.xml

Hello all,
Firstly my appoogies in advance, I know this is a very newbie
question, but I have looked and looked, and cant seem to get to the
bottom of this.

I am getting the error:
"java.lang.NullPointerException"

whenever I try to change anything at all within "strings.xml"  when
using eclipse, does anyone know of a reason behind this? I havnt
changed anything else in the project at all, I'm just going straight
into strings to try editting a few things.


Many thanks
Dan

-- 

3. How to access a AIDL service from different packages?

4. Context.getExternalFilesDir() folder is removed on app upgrade? Where to store data?

5. Generate key events on foreground application

6. Error in accessing java file genetated from .aidl file

7. Custom widget height always 0?