2017-02-09 12 views
1

パーセル可能なオブジェクトをバイト配列に変換しようとしていましたが、私のクラスではバイト型の値を持っていました。しかし、マーセル化すると、パーセル可能な1バイトを使用してバイト配列に4バイトが割り当てられます。コードでは、parcel.writeByteが内部的にwriteIntを呼び出しています。私はパーサブルに1バイトを書くことができますか?Javaでparcelbaleを使用して1バイトを書き込む

助けてください。

+0

いいえ、writeValueを使ってブール値(つまり1ビット)を書いても、整数は 'Parcel'に書き込まれます。 – pskink

+0

@pskinkそれは問題ではありません。 http://stackoverflow.com/questions/6201311/how-to-read-write-a-boolean-when-implementing-the-parcelable-interface#7089687 –

+0

@ cricket_007まだ4バイトが書かれています – pskink

答えて

1

AFAIKでは、現在利用可能なパブリックAPIでパーセルに4バイト未満を書き込むことはできません。

最大4バイトがある場合は、ByteBuffer/bit shiftをstore them in the single integer valueに使用できます。任意のバイト数(1バイトを含む)をバイト配列に格納することもできます。そうすることで、任意の望ましいメモリレイアウトを達成できますが、配列の長さを格納するために余分な4バイトのオーバーヘッドが発生します。

関連する問題