본문 바로가기
안드로이드, IOS

[안드로이드] 기초 내용 정리 - Activity의 개략적인 이해

by dwoi 2023. 3. 29.

본 글은 안드로이드라는 운영체제에 대해서 기본적으로 학습한 내용을 정리하는 글임을 밝힘.

 

목차

     

     


    안드로이드(운영체제)


     

     

    1. Activity란? 

    https://data-flair.training/blogs/android-application-components/

     

    사용자와 인터페이스
    Activity
    다른 앱 이벤트 수집
    Broadcast
    Receiver
    백그라운드 작업
    Serivce
    외부에 앱 데이터 제공
    Content Provider

    Activity : 안드로이드에서 화면을 관리하며 사용자와 인터페이스 하는 기능을 담당하는 애플리케이션 컴포넌트

    1.1. Activity 특징

    • 기본적으로 사용자와 인터페이스가 가능한 Window를 하나 갖고 있다.
    • 구동 시 Stack방식으로 액티비티가 관리되며, 이전에 구동되어 있는 액티비티가 있으면 그 위에 뜨게 된다.
    • 시작할 때마다 인스턴스를 새로 생성하여 시작한다.
    • 시작을 하게되면 기본적으로 화면에 띄울 레이아웃을 설정해 주어야 한다.
    • 액티비티 간 데이터를 주고받을 때 Intent를 사용한다.

     

    2. Activity 생성 및 호출

    2.1. 앱 실행 시 시작되는 Acitivity 살펴보기

    AndroidManifest.xml이란 파일이 있는데

    여기에 상속되는 액티비티들이 이름이 구성되어 있고 이것들이 호출되면서 나타나는 것으로 이해

    이제 여기에 Launcher 아이콘이 담겨져 있는 각종 실행 될 때 나오는 구성들로 되어 있음.

     

     

    Activity 생성 호출 순서

    1. 새로운 Activity.xml 생성
    2. 새로운 Activity.java 생성 (Kotlin)
    3. 기존의 Activity.java 에서 새로운 Activity.java 파일 로드
    4. manifest.xml에서 Activity 추가해주기

     

    Activity 생성 및 호출하는 여러 방법들

    자세한 함수들에 대해 알려주셨지만 지금 당장은 이해가 안되니 어떤 의도로 작성했는지 푼 내용만 작성.

    1. Intent에 설정된 Activity를 찾아 구동
    2. Intent에 설정된 Activity를 호출하고 호출된 Activity가 처리한 결과를 받아온다.
    3. intents에 있는 모든 Activity를 동시에 구동한다. 구동순서는 앞에 있는 것부터 구동된다.
    4. Service나 Receiver등에서 Activity를 구동할 때 사용한다. 

    즉 정리하자면 Intent로 다른 Activity를 연결해서 작동하는 것은 동일하나

    1. 구동만 할지
    2. 결과값도 받아오고 구동할지
    3. 모두 구동할지
    4. 다른 것에 속해 있는 것을 구동할지 

    정도가 다르다고 생각하자.

     

     


     

    3. Activity 관리

    LIFO 방식! - 자세한 설명 아래에 참조 (Last in First out)

    생명주기

    대표적인 상태정

    상태 설명
    실행
    (Running)
    -  화면 상에 액티비티가 보이면서 실행되어  있는 상태
    -  액티비티 스택의 최상위에 있으며 포커스를  가지고있음
    일시 중지
    (Paused)
    -  사용자에게 보이기는 하지만 다른 액티비티가 위에 있어 포커스를 받지 못하는 상태
    -  대화상자가 위에 있어 일부가  가려져 있는 경우에 당함
    중지
    (Stopped)
    -  다른 액티비티에 의해 완전히 가려져 보이지 않는

     

     

    상태  메소드 설명
    onCreate() -  액티비티가 처음에 만들어졌을 호출됨
    -  화면에  보이는 뷰들의  일반적인  상태를  설정하는
    -  이전  상태가  저장  되어 있는 경우에는   객체  참조하여  이전 상태 가능
    -  메소드 다음에는   onStart() 메소드가 호출됨
    onStart() -  액티비티가 화면에 보이기 전에 호출됨
    -  액티비티가 화면  상에  보이면   메소드 다음에 onResume() 메소드가 호출됨
    -  액티비티가 화면에서 가려지게 되면 메소드 다음에 onStop() 메소드가  호출됨
    onResume() -  액티비티가 사용자와 상호작용하기   전에  호출됨
    onRestart() -  액티비티가 중지된 호출되는 메소드로 다시 시작되기 전에  호출됨
    -  메소드 다음에는  onStart() 메소드가 호출됨

     

    Activity에서 다른 Activity를 호출할때 진행되는 상황

    마무리

    자바나 코틀린이라는 게 객체라는 개념을 어렴풋하게 알고 있는 상황이라 함수나 자세한 상황을 이해하려기 보다는 대략적으로 어떻게 구성되어 있고 크게 크게 이해하려는 식으로 정리.

    대략적인 각각의 구성요소들을 파악하고 나중에 자바나 코틀린을 자세하게 공부하여 클래스에 대한 이해가 좀 확실해진 이후에 공부를 할 것으로 생각.

    어떤 순서대로 프로그램이 짜여져있는지만 고찰해보자.

     

    밑에는 갑자기 나타나는 용어들에 대한 정리.

    ※ 컴포넌트 : 소프트웨어 개발을 마치 레고(Lego) 블록을 쌓듯이 쉽게 할 수 있도록 하는 기술을 말한다.즉, 기존의 코딩 방식에 의한 개발에서 벗어나 소프트웨어 구성단위(module)를 미리 만든 뒤 필요한 응용 기술을 개발할 때 이 모듈을 조립하는 기술

     

    ※ Intent : Activity에서 다른 Acitivity로 넘어갈 수도 있고 한 acitivity에서 다른 애플리케이션 구성 요소로 넘어가려고도 할 수 있음. 이럴 때 어떤 의도(intent)로 넘어갈 지 즉 서로 연결해주는 지가 Intent라고 이해 

    ※ 스택(Stack) : 데이터를 제한적으로 접근할 수 있는 구조

    • 한 쪽 끝에서만 자료를 넣거나 뺼 수 있는 구조

    stack의 구조

    ※ LIFO : 가장 최근에 요청된 것을 가장 먼저 처리하는 방식

    댓글