バイト配列をHEX文字列にエンコードするために使用される次のコードがあります
private static final char[] HEX_CHARS = "0123456789abcdef".toCharArray();
public static void WriteHexBytes(byte[] data, StringBuilder sb)
{
char[] chars = new char[data.length*2];
for (int i = 0; i < data.length; ++i)
{
chars[2*i] = HEX_CHARS[(data[i] & 0xF0) >>> 4];
chars[2*i + 1] = HEX_CHARS[data[i] & 0x0F];
}
sb.append(chars);
}
ループは非常に遅く、実際のデバイスでバイトをエンコードするのにfor
約かかります。エミュレーターでは、永遠のようにかかります。は即座に実行されます。10 seconds
3MB
sb.append
これは正常ですか?私にはとても遅いように見えますか?速度低下の原因は何ですか?
Samsung Galaxy Tab 2 7.0 でテスト済み