public final class ResourceString extends Object
Provides utilities to decode/encode a String packed in an arsc resource file.
Modifier and Type | Class and Description |
---|---|
static class |
ResourceString.Type
Type of
ResourceString to encode / decode. |
Modifier and Type | Method and Description |
---|---|
static String |
buildString(char[] data)
Builds a string from a null-terminated char data.
|
static String |
decodeString(ByteBuffer buffer,
int offset,
ResourceString.Type type)
Given a buffer and an offset into the buffer, returns a String.
|
static byte[] |
encodeString(String str,
ResourceString.Type type)
Encodes a string in either UTF-8 or UTF-16 and returns the bytes of the encoded string.
|
public static String decodeString(ByteBuffer buffer, int offset, ResourceString.Type type)
Given a buffer and an offset into the buffer, returns a String. The offset
is the 0-based byte offset from the start of the buffer where the string resides. This should be the location in memory where the string’s character count, followed by its byte count, and then followed by the actual string is located.
Here’s an example UTF-8-encoded string of ab©:
03 04 61 62 C2 A9 00 ^ Offset should be here
buffer
- The buffer containing the string to decode.offset
- Offset into the buffer where the string resides.type
- The encoding type that the ResourceString
is encoded in.public static byte[] encodeString(String str, ResourceString.Type type)
Encodes a string in either UTF-8 or UTF-16 and returns the bytes of the encoded string. Strings are prefixed by 2 values. The first is the number of characters in the string. The second is the encoding length (number of bytes in the string).
Here’s an example UTF-8-encoded string of ab©:
03 04 61 62 C2 A9 00
str
- The string to be encoded.type
- The encoding type that the ResourceString
should be encoded in.public static String buildString(char[] data)
Builds a string from a null-terminated char data.