Just load texture and model data to the GPU, destroy the objects loaded on the CPU side as soon as the resources is pushed over to OpenGL.
Agh, I have to port it to NDK because you can't get around the heap memory limit in Java.
Most android devices use shared memory so there is no disadvantage to storing all model data in VBOs, even if you use keyframes, memory used by OpenGL does not count towards the size limit on the managed heap., The GC will kick in if you run out of memory(But if you still hold references to a bunch of data it can't do much and will throw an exception if you try to allocate more) but once everything is loaded you probably want to "force" garbage collection to reduce the risk of the gc kicking in during gameplay. (you can do this on android by creating a weak reference to an allocated object, set the objects reference to null and then repeatedly call system.gc followed by sleep(1) until the weak reference fails or a timer expires)
You should still aim to use less than 512MB total or you will run into serious issues on older devices.