How are Java objects laid out in memory on Android?
<p>I'm fairly familiar with the layout of objects on the heap in HotSpot, but not so much for Android.</p>

<p>For example, in a 32-bit HotSpot JVM, an object on the heap is implemented as an 8-byte header, followed by the object's fields (one byte for <code>boolean</code>, four bytes for a reference, and everything else as expected), laid out in some specific order (with some special rules for fields from superclasses), and padded out to a multiple of 8 bytes.</p>

<p>I've done some research, but I can't find any Android-specific information.</p>

<p>(I'm interested in optimizing some extremely widely used data structures to minimize memory consumption on Android.)</p>
