본문 바로가기
프로그래밍/android

프로세스 간의 데이터 전달

by 신일석 2014. 12. 18.

데이터를 효율적으로 전달하기 위해 데이터 직렬화를 사용한다.

  1. 서로 다른 앱은 서로 다른 프로세스다.
  2. 서로 다른 프로세스에 데이터를 전달하기 위해서는 커널 공유 메모리를 사용한다.
  3. 커널 메모리를 사용하기 위해서는 안드로이드는 바인더라는 것을 이용한다.
  4. 매우 빈번히 바인더를 사용하게 되면 그만큼 성능은 떨어지게 된다. 그래서 데이터를 효율적으로 전달하기 위해서 데이터 직렬화가 필요하다.


안드로이드에서 사용하는 직렬화 클래스

  1. Primitive
  2. Serializable <= 이 인터페이스를 상속받았다면 내부의 멤버 변수들을 모두 직렬화하여 객체를 만든다.
  3. Parcel
  4. Parcelable
  5. Bundle
  6. Intent


직렬화 클래스 예시

public class SampleData implements Serializable {
    private static final long serialVersionUID = 1000000L;

    private int mIntData = 0;
    private String mStrData = "shin";

    public int getIntData() {
        return mIntData;
    }

    public String getStringData() {
        return mStrData;
    }

    public void setIntData(int intData) {
        mIntData = intData;
    }

    public void setStringData(String strData) {
        mStrData = strData;
    }
}