any comments from the google guys?

On Dec 30 2008, 8:53 am, blindfold <[email protected]> wrote:
> One of the main reasons that my app still occasionally crashes is that
> I have limited control over Android's heap management. In particular,
> when I launch a new activity from within my app, I see in the DDMS
> debug view for my dev phone 1 a huge - albeit temporary - free memory
> dip that sometimes measures over 2MB, and the free memory as a result
> going down to a mere several hundred KB is then occasionally the
> reason that the camera preview internally (not in my Android code!)
> cannot allocate the 230400 bytes needed for a preview image. I cannot
> catch this internal OutOfMemory exception to prevent an application
> crash because it occurs in the lower level camera code, not in my own
> application-level memory allocations and preview processing.
>
> The newly launched activity that causes the free memory dip itself
> does not use much memory (maybe 0.5 MB), and after a second or so I
> therefore again have at least 3 MB free memory, so I conclude that it
> is in the transition between two activities (the main one and the
> startActivityForResult()-launched one) that the memory dip occurs. My
> app does not leak memory, as is evident from the fact that free memory
> remains approximately constant even when I run my app for a long time.
> Normally I have between 3 MB and 3.5 MB free memory while running my
> app, at a DDMS-reported heap size of 5.6 MB (apparently Android
> process management already takes a huge bite out of the 16 MB total
> heap that any app is supposed to have?). I also apply System.gc() and
> Bitmap.recycle() in my code where big memory blocks such as for
> bitmaps are allocated/freed, and I apply try-catch blocks to catch
> OutOfMemoryError exceptions arising from my own code to transparently
> recover from temporary memory dips without a crash, because those
> OutOfMemoryError exceptions arise from Android not cleaning up in time
> - but again, I just cannot catch Android's lower level memory
> allocation problems that still cause my app to crash. :-(
>
> Is there a way to prevent the large - though temporary - free memory
> dips that occur when a new activity is launched? It looks as if
> Android cleans up for the launching app only *after* the new activity
> has been fully launched, and acts much like there are temporarily two
> complete activities plus transition management overhead in memory as
> far as heap usage is concerned? It is pretty bad if one cannot trust
> memory management when this causes unpredictable application crashes
> due to things that lie beyond the reach of the application programmer.
>
> Thanks
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to