액티비티에 객체를 전달하기 위해서는 이전에 다루었던 Intent와 Budnle을 사용해야 한다.


Bundle은 객체를 직렬화하여 저장하는데 serializble과 parcelable이라는 두 가지 방법이 있다.


이 둘은 뭐가 다른걸까. 둘 다 똑같이 객체를 직렬화한다. Serializable 또는 Parcelable 클래스를 implements 하여 클래스를 선언해야 하는 것도 같다. 다른 것은 성능과 사용 방법이다.



Serializable을 사용하는 방법은 간단하다. 클래스를 선언할 때 Serializable 클래스를 implements 하기만 하면 된다.


Serializable은 marker 인터페이스이기 때문에 implement 해야할 메소드도 없기 때문에 사용하기 엄청 편리하다. 대신 메커니즘이 많은 임시 객체를 생성하기 때문에 성능 저하를 일으킨다.



Parcelable은 이 반대다. 꽤나 많은 양의 boilerplate 코드가 있어 가독성이 떨어지고 유지보수가 어려워진다. 그 대가로 빠른 속도를 얻는다.



자세한 성능 비교는 Parcelable vs Serializable 에서 볼 수 있다. 


어쨌거나 결론은 Serializable을 많이 사용한다는 것이다. 성능이 떨어진다고 해도 Parcelable에 비해 딸린다는 것이지, 심각할 정도로 차이가 나는 것은 아니기 때문이다.



참고


14. Activity에 대해서 - 객체 직렬화편(Serializable)


Parcelable vs Serializable

'안드로이드' 카테고리의 다른 글

안드로이드 java.lang.NoSuchMethodError: No static method getFont  (0) 2017.11.28
안드로이드 리소스 ID  (0) 2017.11.27
안드로이드 Bundle  (0) 2017.11.24
안드로이드 Deprecated  (0) 2017.11.23
FLAG_ACTIVITY_NEW_TASK  (0) 2017.11.23
블로그 이미지

NCookie

,