2012-05-03 18 views
2

parcelとシリアライズ可能なものは同じ意味で互換性があり、少なくとも直感的には使用されていません。私のためにいくつかのことを明確にすることはできますか?Androidパーセル、メモリまたはディスクに保存されていますか?ディスクに保存する方法

  1. 私はディスク

にストアパーセルデータへのシリアライズ可能な必要がありますか(ディスク上の)小包の永続ストレージであるか、メモリに保存された洞察力をありがとう、といいえ、アンドロイドのdevマニュアルはこれを私に明らかにしません

答えて

3

私の答え:

  1. 小包はオブジェクトを平坦化するためのもので、JVMの実行中のメモリ以外の場所に格納することができます。

  2. データをディスクに保存するために、シリアル化可能なパーセルを混合する必要はありません。一方または他方だけで、オブジェクトをディスクに格納するのに十分です。


シリアライズとParcelableあなたのJavaオブジェクトを平坦化する両方の方法です。

これらの平坦化されたオブジェクトは、さまざまな伝送形式(ディスクファイルが含まれています)でプロセス間で渡すことができます。

シリアライズ可能なのはJavaのコアであり、使いやすいです。

パーセルブルはAndroidのもので、もう少し複雑です。

この答えは、より多くの詳細が含まれます:

https://stackoverflow.com/a/5551155/523135

このブログ記事は、サンプルコードParcelableを持っています

http://www.javapractices.com/topic/TopicAction.do?Id=45

http://blog.cluepusher.dk/2009/10/28/writing-parcelable-classes-for-android/

このブログの記事は、サンプルSerializableのコードを持っています

0

Parcelのドキュメントを読んでください。小包は、永続的保管場所に置かないでください。

抜粋:。

は」...小包は、汎用のシリアル化メカニズムではありません。このクラス(および小包の中に任意のオブジェクトを配置するための対応Parcelable API)は、高性能IPCトランスポートとして設計されています。 .. "

" Parcelデータを永続ストレージに配置することは適切ではありません。Parcel内のデータの基礎となる実装を変更すると、古いデータが判読不可能になる可能性があります。

http://developer.android.com/reference/android/os/Parcel.html

関連する問題