2012-05-03 4 views
2

나는 parcel과 serializable이 같은 문맥에서 상호 교환 적으로 또는 적어도 직관적으로 사용되는 것을 본다. 나에게 필요한 것을 분명히 해줄 수 있니?메모리 또는 디스크에 저장된 Android 소포? 디스크에 저장하는 방법

  1. 은 소포의 영구 저장소입니다 (디스크) 또는

  2. 내가

이 통찰력을 주셔서 감사 디스크에 저장 소포 데이터를 직렬화 필요합니까 전용 메모리에 저장되며, 아니, 안드로이드 dev에 설명서가 나를 분명히하지 않습니다

답변

3

내 대답 :

  1. 소포는 객체를 병합하여 JVM의 실행 메모리가 아닌 다른 곳에 저장할 수 있도록하기위한 것입니다.

  2. 데이터를 디스크에 저장하기 위해 직렬화 가능 항목을 필링과 혼합 할 필요가 없습니다. 하나 또는 다른 하나만 있으면 디스크에 객체를 저장할 수 있습니다.


직렬화 및 Parcelable

은 자바 객체를 평평하게하는 두 가지입니다.

이러한 병합 된 개체는 다양한 전송 형식 (디스크 파일 포함)을 통해 프로세스간에 전달 될 수 있습니다.

Serializable은 핵심 Java에서 제공되며 사용하기 쉽습니다.

Parcelable은 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/

이 블로그 게시물은 샘플 직렬화 코드가

0

소포 설명서를 읽으십시오. 소포는 영구 저장 장치에 두어서는 안됩니다.

발췌 :

"

... 소포 고성능 IPC 전송으로 설계된 범용 직렬화 메커니즘이 클래스 (및 소포에 임의의 객체를 배치하는 해당 Parcelable API) 아니다.. .. "

"Parcel 데이터를 영구 저장소에 저장하는 것은 적절하지 않습니다. Parcel에있는 데이터의 기본 구현을 변경하면 이전 데이터를 읽을 수 없게 될 수 있습니다. "

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

관련 문제