Serializable VS. Parcelable
Serializable
シリアル化(Serializable)とは、内部システムでも利用できるように、オブジェクト(オブジェクト)またはデータ(データ)をバイト形式に変換することである.
シーケンス可能化とは、バイト形式のデータをオブジェクトに変換することです.
Serializableは次のようになります.@Serializable
data class Data(val a: Int, val b: String)
ご覧のように、実装できません.
タグインタフェース(Mark Interface).
使いやすいが、それに応じてコストが増加する.
シリアル化は反射を使用します.しかし、反射は処理中に多くの追加オブジェクトを生成し、ゴミ収集器のターゲットとなり、パフォーマンスが低下します.
Parcelable
ParceableはAndroid SDKのインタフェースであり、標準Javaではありません.
シリアル化とは異なり、Parcelableでは反射は使用されません.
これは,開発者がシリアル処理方法を明確に作成したためである.
(もちろん、対応するテンプレートコードが追加されます.)
サンプルコードを見てみましょう.import kotlinx.parcelize.Parcelize
@Parcelize
data class User(val firstName: String, val lastName: String, val age: Int) : Parcelable {
private companion object : Parceler<User> {
override fun User.write(parcel: Parcel, flags: Int) {
// Custom write implementation
}
override fun create(parcel: Parcel): User {
// Custom read implementation
}
}
}
ただし、Parcelableは、実装、メンテナンス、メンテナンスのコストを支払う必要があります.
Serializable VS. Parcelable
この絵を見ると、確かにParcelableは速い.
ただし、Parcelableのように直接Serializableにテンプレートコードを記述してカスタムSerializableを作成できると、より高速になります.
Speed: Serializable < Parcelable < Custom Serializable
リファレンス
Reference
この問題について(Serializable VS. Parcelable), 我々は、より多くの情報をここで見つけました
https://velog.io/@start_up/Serializable-VS.-Parcelable
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
@Serializable
data class Data(val a: Int, val b: String)
ParceableはAndroid SDKのインタフェースであり、標準Javaではありません.
シリアル化とは異なり、Parcelableでは反射は使用されません.
これは,開発者がシリアル処理方法を明確に作成したためである.
(もちろん、対応するテンプレートコードが追加されます.)
サンプルコードを見てみましょう.
import kotlinx.parcelize.Parcelize
@Parcelize
data class User(val firstName: String, val lastName: String, val age: Int) : Parcelable {
private companion object : Parceler<User> {
override fun User.write(parcel: Parcel, flags: Int) {
// Custom write implementation
}
override fun create(parcel: Parcel): User {
// Custom read implementation
}
}
}
ただし、Parcelableは、実装、メンテナンス、メンテナンスのコストを支払う必要があります.Serializable VS. Parcelable
この絵を見ると、確かにParcelableは速い.
ただし、Parcelableのように直接Serializableにテンプレートコードを記述してカスタムSerializableを作成できると、より高速になります.
Speed: Serializable < Parcelable < Custom Serializable
リファレンス
Reference
この問題について(Serializable VS. Parcelable), 我々は、より多くの情報をここで見つけました
https://velog.io/@start_up/Serializable-VS.-Parcelable
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
Reference
この問題について(Serializable VS. Parcelable), 我々は、より多くの情報をここで見つけました https://velog.io/@start_up/Serializable-VS.-Parcelableテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol