que nativas librerias funcionamiento art amnho java android android-5.0-lollipop art-runtime

java - funcionamiento - librerias nativas de android



¿Cuáles son las variables ''shadow $_klass_'' y ''shadow $_monitor_'' para en java.lang.Object? (1)

De hecho, están conectados a GC. Parece que se agregaron para apoyar los punteros de Brooks. He encontrado información sobre los punteros de Brooks here :

La idea es que cada objeto en el montón tenga un campo de referencia adicional. Este campo o bien apunta al objeto en sí o, tan pronto como el objeto se copia en una nueva ubicación, a esa nueva ubicación. Esto nos permitirá evacuar objetos simultáneamente con hilos mutadores.

Ver especialmente estos dos compromisos:

libcore: a7c69f785f7d1b07b7da22cfb9150c584ee143f4

art: 9d04a20bde1b1855cefc64aebc1a44e253b1a13b

En la última actualización de Android (SDK 21), parece que se han agregado 2 nuevas variables a java.lang.Object:

private transient Class<?> shadow$_klass_; private transient int shadow$_monitor_;

shadow$_monitor_ que shadow$_monitor_ se usa brevemente en hashCode() :

public int hashCode() { int lockWord = shadow$_monitor_; final int lockWordMask = 0xC0000000; // Top 2 bits. final int lockWordStateHash = 0x80000000; // Top 2 bits are value 2 (kStateHash). if ((lockWord & lockWordMask) == lockWordStateHash) { return lockWord & ~lockWordMask; } return System.identityHashCode(this); }

Pero por lo demás no hay referencias a ellos. ¿Están de alguna manera relacionados con GC en ART? ¿O algún tipo de cosas nativas?