FileDocCategorySizeDatePackage
ArrayHelper.javaAPI DocAndroid 1.5 API3609Wed May 06 22:41:08 BST 2009com.android.ddmlib.utils

ArrayHelper

public final class ArrayHelper extends Object
Utility class providing array to int/long conversion for data received from devices through adb.

Fields Summary
Constructors Summary
Methods Summary
public static intswap32bitFromArray(byte[] value, int offset)
Reads a signed 32 bit integer from an array coming from a device.

param
value the array containing the int
param
offset the offset in the array at which the int starts
return
the integer read from the array

        int v = 0;
        v |= ((int)value[offset]) & 0x000000FF;
        v |= (((int)value[offset + 1]) & 0x000000FF) << 8;
        v |= (((int)value[offset + 2]) & 0x000000FF) << 16;
        v |= (((int)value[offset + 3]) & 0x000000FF) << 24;

        return v;
    
public static voidswap32bitsToArray(int value, byte[] dest, int offset)
Swaps an unsigned value around, and puts the result in an array that can be sent to a device.

param
value The value to swap.
param
dest the destination array
param
offset the offset in the array where to put the swapped value. Array length must be at least offset + 4

        dest[offset] = (byte)(value & 0x000000FF);
        dest[offset + 1] = (byte)((value & 0x0000FF00) >> 8);
        dest[offset + 2] = (byte)((value & 0x00FF0000) >> 16);
        dest[offset + 3] = (byte)((value & 0xFF000000) >> 24);
    
public static longswap64bitFromArray(byte[] value, int offset)
Reads a signed 64 bit integer from an array coming from a device.

param
value the array containing the int
param
offset the offset in the array at which the int starts Array length must be at least offset + 8
return
the integer read from the array

        long v = 0;
        v |= ((long)value[offset]) & 0x00000000000000FFL;
        v |= (((long)value[offset + 1]) & 0x00000000000000FFL) << 8;
        v |= (((long)value[offset + 2]) & 0x00000000000000FFL) << 16;
        v |= (((long)value[offset + 3]) & 0x00000000000000FFL) << 24;
        v |= (((long)value[offset + 4]) & 0x00000000000000FFL) << 32;
        v |= (((long)value[offset + 5]) & 0x00000000000000FFL) << 40;
        v |= (((long)value[offset + 6]) & 0x00000000000000FFL) << 48;
        v |= (((long)value[offset + 7]) & 0x00000000000000FFL) << 56;

        return v;
    
public static intswapU16bitFromArray(byte[] value, int offset)
Reads an unsigned 16 bit integer from an array coming from a device, and returns it as an 'int'

param
value the array containing the 16 bit int (2 byte).
param
offset the offset in the array at which the int starts Array length must be at least offset + 2
return
the integer read from the array.

        int v = 0;
        v |= ((int)value[offset]) & 0x000000FF;
        v |= (((int)value[offset + 1]) & 0x000000FF) << 8;

        return v;