Starting with 4.0 (an ice cream sandwich), Dalvik's behavior should be consistent with JSR-133 (Java memory model).
Starting with version 3.0 (Honeycomb), most of the parts were in place, but some minor things were missed that would be hard to find in practice (for example, some cases of edges at the end).
Starting with version 2.3 (Gingerbread), Dalvik, as a rule, was right on single-processor systems, but some key functions necessary for correct behavior on SMP equipment (for example, correct final field processing) were absent.
Pre-Gingerbread, there were no memory barriers at all, and basic things like volatile long were broken.
fadden Jan 6 2018-11-11T00: 00Z
source share