Acceso a datos en bruto en ARGB_8888 Android Bitmap

Estoy tratando de acceder a los datos sin procesar de un mapa de bits en formato ARGB_8888 en Android, usando elcopyPixelsToBuffer ycopyPixelsFromBuffer métodos. Sin embargo, la invocación de esas llamadas parece aplicar siempre el canal alfa a los canales rgb. Necesito los datos en bruto en un byte [] o similar (para pasar por JNI; sí, sé sobre bitmap.h en Android 2.2, no puedo usar eso).

Aquí hay una muestra:

    // Create 1x1 Bitmap with alpha channel, 8 bits per channel
    Bitmap one = Bitmap.createBitmap(1,1,Bitmap.Config.ARGB_8888);
    one.setPixel(0,0,0xef234567);
    Log.v("?","hasAlpha() = "+Boolean.toString(one.hasAlpha()));
    Log.v("?","pixel before = "+Integer.toHexString(one.getPixel(0,0)));

    // Copy Bitmap to buffer
    byte[] store = new byte[4];
    ByteBuffer buffer  = ByteBuffer.wrap(store);
    one.copyPixelsToBuffer(buffer);

    // Change value of the pixel
    int value=buffer.getInt(0);
    Log.v("?", "value before = "+Integer.toHexString(value));
    value = (value >> 8) | 0xffffff00;
    buffer.putInt(0, value);
    value=buffer.getInt(0);
    Log.v("?", "value after = "+Integer.toHexString(value));

    // Copy buffer back to Bitmap
    buffer.position(0);
    one.copyPixelsFromBuffer(buffer);
    Log.v("?","pixel after = "+Integer.toHexString(one.getPixel(0,0)));

El registro luego muestra

hasAlpha() = true
pixel before = ef234567
value before = 214161ef
value after = ffffff61
pixel after = 619e9e9e

Entiendo que el orden de los canales argb es diferente; esta bien. Pero no quiero que el canal alfa se aplique a cada copia (que es lo que parece estar haciendo).

Así es comocopyPixelsToBuffer ycopyPixelsFromBuffer se supone que funcionan? Esta ahíningun forma de obtener los datos sin procesar en un byte []?

Agregado en respuesta a la respuesta a continuación:

Poniéndolo dentrobuffer.order(ByteOrder.nativeOrder()); antes decopyPixelsToBuffer cambia el resultado, pero aún no de la forma en que lo quiero:

pixel before = ef234567
value before = ef614121
value after = ffffff41
pixel after = ff41ffff

arece que @ sufre esencialmente el mismo problema (se aplica alfa a cadacopyPixelsFrom/ToBuffer).

Respuestas a la pregunta(4)

Su respuesta a la pregunta