[AndroidRoadMap] Parcelable/Bundle은 무엇인가?

봄박뱅·2024년 2월 1일
0

AndroidRoadMap

목록 보기
1/1

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 형태로만 활용하는 게 좋음. 이유는 좀 더 공부+이해 필요

추가로 알아보고 정리할 것

  • 🤔 stripping?
profile
Best Ongoing Man, BOM. 최선의 자세로 살아 가고자 합니다. 모두의 마음에 봄의 씨앗이 자라길

0개의 댓글