Chillax in dev

[Android] 안드로이드 스튜디오 Logcat 이해하기 본문

Android App

[Android] 안드로이드 스튜디오 Logcat 이해하기

Seong Story 2020. 11. 10. 00:12
728x90

[Android] 안드로이드 스튜디오 Logcat  이해하기

- 안녕하세요  안드로이드 스튜디오의 로깅을 확인할 수 있는 Logcat에 대해 알아볼까 해요

 특히 그 안에 Log.d() 메서드를

 

- 이번 시간엔 이러한 로깅을 이용해 앱의 동작 실행 멈춤 등에 따라 내부적으로 어떤 녀석들이 동작 하나 이해해보려고요

- MainActivity.java 코드를 살펴볼까요?

 

- 일단 추상 메서드를 오버라이드 해서 사용해주고 각각의 출력 확인을 위해 log.d() 메서드로 찍어준 코드들입니다.

c총 7개의 생명 주기를 보이고 있습니다.

1. onCreate()

: 어플이 처음 실행되고, Activity가 생성될 때 자동으로 호출되는 메서드이다

2. onStart()

: onCreate 메서드 호출 이후 바로 자동으로 호출되는 녀석입니다.
Activity가 정지 상태가 되었다가 활성 상태로 돌아올 때 호출됩니다.

3. onResume() : 

onstart 메서드가 호출된 이후에 자동으로 호출된다.
Activity가 일시 정지되었다가 다시 돌아올 때 호출.

4.onRestart()

:Activity가 정지 상태가 되었다가 활동 상태로 돌아갈 때 onStart전에 호출된다.

5. onPause()

:Activity가 일시 정지 상태가 될떄 호출된다.
화면상에서 완전히 사라지거나 현재 화면 위에 작은 팝업 창 같은 것이 나타날 때 호출됨.

6. onStop()

:Activity 가 화면에서 사라질 때 호출한다.

7. onDestroy()

: 현재 액티비티의 수행이 완전히 종료되어 메모리상에서 제거될 때 호출 (실행 중이던 앱 삭제 시)

package com.ezen.activity;

import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;
import android.util.Log;

public class MainActivity extends AppCompatActivity {
    //어플이 처음 실행 되고, Activity가 생성될때 자동으로 호출되는 메서드이다.

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       // System.out.println("onCreate 메서드가 호출됨.");
        Log.d("test","onCreate 메서드가 호출됨.");

    }
    //onCreate 메서드 호출이후 바로 자동으로 호출되는 녀석입니다.
    //Activity가 정지 상태가 되었다가 활성 상태로 돌아올 떄 호출됩니다.
    @Override
    protected void onStart() {
        super.onStart();
        Log.d("test","onStart 메서드가 호출됨.");

    }
    //onstart 메서드가 호출된이후에 자동으로 호출된다.
    //Activity가 일시 정지되었다가 다시 돌아 올때 호출.
    @Override
    protected void onResume() {
        super.onResume();
        Log.d("test","onResume 메서드가 호출됨.");

    }
    //Activity가 정지 상태가 되었다가 활동 상태로 돌아갈때 onStart전에 호출된다.
    @Override
    protected void onRestart() {
        super.onRestart();
        Log.d("test","onRestart 메서드가 호출됨.");
    }
    // Activity가 일시 정지 상태가 될떄 호출된다.
    //화면상에서 완정히 사라지거나 현재 화면 위에 작은 팝업 창 같은 것이 나타날떄 호출됨.
    @Override
    protected void onPause() {
        super.onPause();
        Log.d("test","onPause 메서드가 호출됨.");
    }
    //Activity 가 화면에서 사라질떄 호출한다.
    @Override
    protected void onStop() {
        super.onStop();
        Log.d("test","onStop 메서드가 호출됨.");
    }
    //현재 액티비티의 수행이 완전히 종료되어 메모리상에서 제거될때 호출
    @Override
    protected void onDestroy() {
        super.onDestroy();
        Log.d("test","onDestroy 메서드가 호출됨.");
    }
}

정리) 직접 실행해보며 어떨떄 어떤 순서로 어떤 매더스가 작용되는지 관찰하면 좋습니다.

잘 정리해주셔서 흐름도를 참조합니다.

 

 

 

728x90
LIST
Comments