吹是的Dalvik/VM/OO結構StringObject的定義/ Object.h爲什麼StringObject的方法字符()返回字符串的字符[]作爲U2 *
struct StringObject : Object {
/* variable #of u4 slots; u8 uses 2 slots */
u4 instanceData[1];
/** Returns this string's length in characters. */
int length() const;
/**
* Returns this string's length in bytes when encoded as modified UTF-8.
* Does not include a terminating NUL byte.
*/
int utfLength() const;
/** Returns this string's char[] as an ArrayObject. */
ArrayObject* array() const;
/** Returns this string's char[] as a u2*. */
const u2* chars() const;
};
我如何使用StringObject來打印實際的字符串?我已經嘗試過,並且無法從方法chars()中獲取字符串。
而且,爲什麼StringObject的方法chars()返回字符串的char []作爲u2 *?
有什麼建議嗎?提前致謝。
Dalvik使用utf-16編碼字符串,因爲JAVA使用utf-16編碼字符串。在文件dalvik/vm/UtfString.cpp中有一個名爲convertUtf16ToUtf8(...)的方法,將utf16字符串(u2 *)轉換爲utf8 char *。 – Dustin