실행결과 아래와 같이 액티비티의 상태를 확인할 수 있다.


TASK kr.co.actionshin.thisan12 id=6
  ACTIVITY kr.co.actionshin.thisan12/.ActivityA3 53663518 pid=957
    Local Activity 534e5630 State:
      mResumed=true mStopped=false mFinished=false
      mLoadersStarted=true
      mChangingConfigurations=false
      mCurrentConfig={1.0 0mcc0mnc en_US sw768dp w768dp h1232dp xlrg port finger qwerty/v/v dpad/v s.4}
    FragmentManager misc state:
      mCurState=5 mStateSaved=false mDestroyed=false

  ACTIVITY kr.co.actionshin.thisan12/.ActivityA2 5364aec8 pid=957
    Local Activity 534e21dc State:
      mResumed=false mStopped=true mFinished=false
      mLoadersStarted=false
      mChangingConfigurations=false
      mCurrentConfig={1.0 0mcc0mnc en_US sw768dp w768dp h1232dp xlrg port finger qwerty/v/v dpad/v s.4}
    FragmentManager misc state:
      mCurState=3 mStateSaved=true mDestroyed=false

  ACTIVITY kr.co.actionshin.thisan12/.ActivityA1 53648d28 pid=957
    Local Activity 534def38 State:
      mResumed=false mStopped=true mFinished=false
      mLoadersStarted=false
      mChangingConfigurations=false
      mCurrentConfig={1.0 0mcc0mnc en_US sw768dp w768dp h1232dp xlrg port finger qwerty/v/v dpad/v s.4}
    FragmentManager misc state:
      mCurState=3 mStateSaved=true mDestroyed=false

'android' 카테고리의 다른 글

추상클래스를 사용하는 이유  (0) 2014.12.23
실행중인 액티비티의 상태를 확인하기  (0) 2014.12.23
두 액티비티 간 생명주기  (0) 2014.12.23
클래스 변수의 용도  (0) 2014.12.18

'android' 카테고리의 다른 글

실행중인 액티비티의 상태를 확인하기  (0) 2014.12.23
두 액티비티 간 생명주기  (0) 2014.12.23
클래스 변수의 용도  (0) 2014.12.18
프로세스 간의 데이터 전달  (0) 2014.12.18
  • 인스턴스에 따라서 변하지 않는 값이 필요한 경우 (위의 예에서는 PI)
    (이런 경우 final을 이용해서 상수로 선언하는 것이 바람직 하지만 final을 아직 배우지 않았기 때문에 언급하지 않았다)
  • 인스턴스를 생성할 필요가 없는 값을 클래스에 저장하고 싶은 경우
  • 값의 변경 사항을 모든 인스턴스가 공유해야 하는 경우


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

  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;
    }
}



CustomViewGroup 클래스는 FrameLayout을 상속받아 구현


public class CustomViewGroup extends FrameLayout {
    public CustomViewGroup(Context context){
        super(context);
    }
}


CustomView 클래스는 View를 상속받아 구현


public class CustomView extends View {
    public CustomView(Context context){
        super(context);
    }
}

터치 이벤트의 처리 방법은 onTouchEvent의 재정의 구현과 터치 리스너 등록 두 가지가 있다. 여기서는 터리 리스너를 이용하는 3가지 방법에 대해 정리.

  1. 내부 클래스 구현
  2. 액티비티가 View.OnTouchListener를 상속받아 구현하는 방법
  3. 익명의 내부 클래스 구현





'android' 카테고리의 다른 글

CustomViewGroup과 CustomView 클래스를 상속받아 구현하기  (0) 2014.12.18
터치 이벤트를 구현하는 3가지 방법  (0) 2014.12.16
Genymotion Plugin for Eclipse  (0) 2014.12.08
this  (0) 2014.12.08

Genymotion Plugin for Eclipse

The Genymotion plugin for Eclipse allows you to test your application developed with Eclipse IDE. It uses ADB to connect to any active virtual device and push your application. To use the plugin, you need to have the Android Developer Tools plugin for Eclipse installed. In this section, you will be able to install, use the plugin and run Android applications.

Installing the plugin

You can install Genymotion plugin for Eclipse in one of the following ways:

  • Update Site method (recommended);
  • Manual method.

Update Site method (recommended)

  1. Start Eclipse.
  2. Go to Help/Install New Software menu and click Add.
  3. Fill in the fields with the following values and click OK.
    • Name: Genymotion
    • Location: http://plugins.genymotion.com/eclipse
  4. Expand Genymobile.
  5. Click Select all and Next.
  6. Click Next.
  7. Read and accept the license terms.
  8. Click Finish.
    A security warning indicates that the plugin is not signed; click OK.
  9. Click Yes to restart Eclipse.

The Genymotion plugin button  is displayed in the toolbar.





'android' 카테고리의 다른 글

Genymotion Plugin for Eclipse  (0) 2014.12.08
this  (0) 2014.12.08
onInterceptTouchEvent함수를 이용해 자식 뷰로 전달되는 이벤트를 가로채기  (0) 2014.12.08
로그 남기기  (0) 2014.12.08

+ Recent posts