장군이네집
180309 Serializable & Parcelable 본문
Serialization
데이터를 저장하고 전달할때
자료구조나 객체를 byteStream으로 전환하는것
Deserialization은 그 반대. byteStream을 다시 객체로 복원하는 것.
Serialization하는 이유는
파일, 버퍼 전송
네트워크 전송 등 이 대표적인데
Android에서는 Intent를 통해 *primitive type 이외의) 데이터를 전송할때 필요하다
http://virusworld.tistory.com/66
Serializable 과 Parcelable의 차이
Serializable 는 java reflection을 사용하여 성능 문제를 야기할수있고
Parcelable는 직접 Parcelable을 상속하여 구현하기 때문에 더 효율적이다
Parcelable
describeContent()
writeToParcel()
createFromParcel()
newArray() 등을 구현해야한다
Serializable은 reflection을 통해 구현
reflection이란?
객체를 통해 클래스의 정보를 분석해내는것
http://gyrfalcon.tistory.com/entry/Java-Reflection
Object car = new Car();
car.drive(); // 컴파일 에러 -> Object의 method만 접근 가능
이러한 문제를 해결하기위해 사용하는것
Class c = Data.class;
//Class c = Class.forName("클래스이름");
Method[] m = c.getMethods();
Field[] f = c.getFields();
Constructor[] cs = c.getConstructors();
Class[] inter = c.getInterfaces();
Class superClass = c.getSuperclass();
'개발 > Android' 카테고리의 다른 글
180301 MVP 패턴 (0) | 2018.03.01 |
---|---|
180207 better android developer (0) | 2018.02.07 |
180226 WebView & WebViewClient & WebChromeClient (하이브리드 앱 개발) (0) | 2018.02.06 |
180120 Android View (0) | 2018.01.21 |
180120 ConstraintLayout (0) | 2018.01.20 |
Comments