Well, that's some interesting stuff. On my usual phone here:
Max Memory seems to be the maximum amount of memory that the program can use, and if I Dim an array that exceeds it, then I get a beautiful java.lang.OutOfMemoryError. My test app has only 128 MB compared to your 256 MB.
Total Memory seems to be the current usage, but it doesn't go backwards if I Dim the array smaller (or perhaps Sleep(2222) is not long enough for the garbage collector to kick in). If I re-Dim the array back to a larger size, it reuses the memory that the garbage collector should have reclaimed, so: at least that works.