https://developer.android.com/guide/components/activities/parcelables-and-bundles
짧게 말하면 프로세스간 혹은 액티비티간 데이터 전달을 위해 설게된 객체다.
특징
- 기본적으로 데이터를 전송할때는 Bundle 활용. OS에서 인지되는 Primitive 형태로 사용(ex:
Int
, String
, Boolean
등)
- 여러 Primitive가 담긴 Custom class를 사용하고 싶으면, 해당 클래스에
Parcelable
을 정의하면 됨
- n KB 정도로 담길 수 있는 사이즈의 제약이 있으니 너무 많은 데이터를 전송하는것은 주의해야함. =>
TransactionTooLargeException
발생위험. DB 활용할 것
- 한 프로세스 내부에서 발생하는 모든 데이터 전달은 하나의 제한된 버퍼 사이즈를 가지기 때문에(1MB), 상황에 따라 몇 kb 이상으로 커지지 않았는데도 발생할 수 있을듯. (시스템과의 상호작용하는 부분까지 공유되기 때문)
- 특히나
savedInstanceState
같은 경우는 유저의 동작에 따라 언제 복구될지 모르기에 시스템에서 데이터를 들고있어서, 50k 미만으로 저장하기를 권장하고 있음.
- 프로세스간 전달할 때(=서로 다른 앱간에 전달할 때)는 custom class 활용하지 않고 Primitive 형태로만 활용하는 게 좋음. 이유는 좀 더 공부+이해 필요
추가로 알아보고 정리할 것