Because it sounds strange a out of memory error for only 200 spheres.....
That's a bit like finding it strange that "he's dead even if i've shot him only 10 times"...
200 spheres is quite a lot, not "only". Are these all visible in one frame? If not, then you might want to consider a more MVC like approach that assigns views (i.e. Object3D) to potential visible sphere beans.
Anyway, how much memory is available to the VM depends on the Android version and the vendor and it ranges from 16mb to 512mb (at least i haven't seen anything about that }or now). If your spheres are all more or less equals, don't do something like:
for (int i=0; i<200; i++) {
spheres.add(Primitives.getSphere(10));
}
But rather work with a blueprint object to share data between objects like so:
Object3D bp=Primitives.getSphere(10);
for (int i=0; i<200; i++) {
Object3D s=new Object3D(bp, true);
s.shareCompiledData(bp);
spheres.add(s);
}