Utility class providing array to int/long conversion for data received from devices through adb. : Version « Hardware « Android






Utility class providing array to int/long conversion for data received from devices through adb.

 
/*
 * Copyright (C) 2007 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

//package com.android.ddmlib.utils;

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

    /**
     * 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
     */
    public static void swap32bitsToArray(int value, byte[] dest, int offset) {
        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);
    }

    /**
     * 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
     */
    public static int swap32bitFromArray(byte[] value, int offset) {
        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;
    }
    
    /**
     * 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.
     */
    public static int swapU16bitFromArray(byte[] value, int offset) {
        int v = 0;
        v |= ((int)value[offset]) & 0x000000FF;
        v |= (((int)value[offset + 1]) & 0x000000FF) << 8;

        return v;
    }
    
    /**
     * 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
     */
    public static long swap64bitFromArray(byte[] value, int offset) {
        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;
    }
}

   
  








Related examples in the same category

1.Honeycomb version
2.Check Android build version
3.Get version information
4.Using VersionedGestureDetector
5.downloads and installs the latest version of our App
6.Get App Version Name
7.Get App Version Code
8.Get Version Name with PackageManager
9.Get Package Version Code and Name
10.Android SDK version
11.Check for intallation, app name, app version, app version code
12.Get version number
13.get Version Name
14.get Version Code
15.Byte value conversion