Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

장군이네집

180309 Serializable & Parcelable 본문

개발/Android

180309 Serializable & Parcelable

kukuku0517 2018. 3. 9. 23:29

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

https://brunch.co.kr/@kd4/8


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