A general question to make sure I understand or not the memory in an Android Phone. You have the OS using memory (FLASH/ROM) which is usually partitioned as either a .5,1,2,4GB depending on the phone. The developer doesnt have access to this unless rooted.
That OS partition is carved from an on board FLASH of lets say from 8GB. From that 8GB a partition is set aside for apps/apks... maybe from one to two GB. The remainder is set aside as DATA storage area in the FLASH for the user to store whatever and where the UserPrefs get stored.
Question one. As an application is running various objects/items get created and accessed and possible written thousands/millions of times. FLASH is too slow for this so there has to be some RAM that comes into play. Is that the 16MB number I see talked about? Is this where cache is?
Question Two. I have routines/methods that tell me external SD free available and I have routine that seems to show FLASH/ROM available for app storage. But I see another number being displayed in settings that mentions RAM. How do I find how much is available?
Question three: My goal is to store a handful of 500k images , first check to see if SD is available and writable store there. If not store internally until an SD card can be mounted (if can be). If there is a RAM area how do I access it and tell if I have enough room to store temporarily?
My current understanding of Android internal memory layout/map/arrangement
8GB FLASH/ROM installed.
OS partition uses 1GB
App/Apks storage uses 2GB
Data Storage uses remainder 4.5GB, SQlite Db is store here.
RAM is where??
Cache is where??