シリアル化可能なオブジェクトまたはパーセル化可能なオブジェクトで使用Bundle
する場合、マーシャリングは実際にいつ発生するのでしょうか。バンドルに入れるとすぐに?バンドルは主に2つの画面間でデータを渡すために使用されるため(ここではIPCについても話していません!)、オブジェクトは常にメモリに保持されるため、オブジェクトをマーシャリングする意味はあまりないようです。 ?
マーシャリング(Javaシリアル化またはAndroidパーセリング)は、次の場合にのみ発生すると想定するのは正しいですか?
- データは、RMI中など、別のプロセスに渡す必要があります。
- コンポーネント(アクティビティまたはサービス)が破棄され、インスタンスの状態をディスクに書き込む必要がありますか?
Androidフレームワークエンジニア(Dianne Hackbornだったと思います)が、前者の方がはるかに高速であるため、Parcelable
代わりに使用する必要があると言っているのを見てきました。Serializable
どれくらい速いですか?そして、オブジェクトがとにかくほとんどの時間マーシャリングされていない場合(これに関する私たちの仮定が正しいと仮定して)、これは違いを生むでしょうか?