App_Dev/Android

[ 앱 개발자 도전기 : 안드로이드 ] Android의 동작 원리.

안다미로 : Web3 & D.S 2024. 11. 4. 15:20

 

 

 

 

 

 

[ 앱 개발자 도전기 : 안드로이드 ]  Android 의 동작 원리.

 


 

∇안드로이드의 동작 원리

목   차

1. 안드로이드 앱 번들
2. 안드로이드 4대 구성요소
3. 프로젝트 구조
4. 안드로이드 앱 설치
5. 안드로이드 앱 동작 순서

 

 


 

1. 안드로이드 앱 번들 [ Android App Bundle ]


 

안드로이드 앱은 4대 구성 요소들을 통합 관리하는 번들 * 패키지 개념이라고 할 수 있습니다 !
안드로이드 앱은 번들 개념이기 때문에,  '앱을 실행한다' 라는 말은 개념과 조금 맞지 않긴 합니다.

 

 

        ● 번들이란 ?

               : 특정한 것들의 묶음이라는 뜻입니다.

 

        ● 안드로이드 앱 번들 ?

               : 앱의 모든 컴파일된 코드 및 리소스를 포함하며,

                 APK 생성 및 서명을 Google Play에 맡기는 게시 방식입니다.

 

        ●  What APK ( Android Application Package ) ??

            : Android SDK 도구는 모든 데이터 및 리소스 파일과 함께 코드를 컴파일하여서 하나의 APK를 만듭니다.

 

            : Android 패키지는  파일의 확장자가 .apk인 아카이브 파일입니다.

            : 하나의 APK 파일 안쪽에는 Android 앱의 모든 콘텐츠가 들어 있습니다.

            :  Android로 구동하는 기기가 앱을 설치할 때 이 파일을 사용합니다.

 

 

                ※ 모바일 SDK란 ?

                     == SDK(소프트웨어 개발 키드)는 개발자에게 다른 프로그램에 추가하거나 연결할 수 있는 

                           커스텀 앱을 제작할 수 있는 기능을 제공하는 도구 모음.

 

                              - > SDK가 없다면, 모든 기능을 처음부터 구현해야 하는 불편함..

                                   [ 현재 시스템과의 호환 여부만 간단히 확인하면, 손쉬운 새 도구 생성 및 프로세스 진행이 가능 ] 

 

 


 

2. 안드로이드 4대 구성요소


안드로이드의 4대 구성요소란,  안드로이드 앱의 필수적인 기본 구성 요소를 의미합니다.

 

 

     ☆ 각 구성 요소는 시스템이나 사용자가 앱에 접근할 수 있도록 하는 진입점이며, 

          다른 구성 요소에 종속되는 구성 요소도 있습니다. 

 

 

            ○ Activity  

                  : 눈에 보이는 화면을 관리하는 실행 단위 

                      = > 눈에 보이는 화면이 실행될 때 안드로이드 OS가 객체를 생성해서 메소드를 호출.

 

            ○ Service

                  : 화면을 가지지 않은 실행 단위 ( 눈에 보이지 않는 실행 단위 )

                       == 즉, 백그라운드 프로세싱을 의미합니다.

                         = > 백그라운드 프로세싱을 발생시켜야 할 때 클래스의 객체를 생성하여 필요한 메소드를 호출.

 

            ○ Broadcast Receiver 

                  : OS가 메시지를 받으면 실행되는 단위.

                    == 시스템에서 발생하는 사건에 대해 처리가 필요한 경우 

                         = > 어떤 사건이 발생하게 되면, 그 사건과 관련이 있는 클래스들의 객체를 생성한 다음

                                     객체가 가지고 있는 메소드를 호출합니다.

 

            ○ Content Provider 

                  : 저장된 데이터를 제공하기 위해 실행되는 실행 단위.

                         = > 저장된 데이터를 다른 어플리케이션이 사용하기 위해 요청할 때

                                  객체를 생성해서 메소드를 호출하게 됩니다.

 

 

안드로이드 어플리케이션은 이러한 4대 구성요소들을 통합 관리하는 실행단위의 꾸러미(번들)입니다

 

안드로이드 어플리케이션 자체가 실행 파일이 아니라, 

 

안에 각각 실행이 가능한 독립적인 실행단위들이 있어 각각의 실행 단위가 자신들이 실행할 순서가 될 때

독립적으로 실행이 되면서 개발자가 작성한 코드를 실행하게 됩니다.

 

그것들이 모여서 하나의 어플리케이션을 구성하게 됩니.
위 구성 요소들이 실행단위가 아니고 모두 클래스로 구성되어 있습니다

 

안드로이드가 어떤 시점이 되면 그 시점에 맞는 클래스의 객체를 생성해서 자동으로 메소드를 호출하게 됩니다.


3. 안드로이드 프로젝트 구조.

 


프로젝트 구조

 

              ◎ AndroidManifest.xml

                       : 안드로이드 애플리케이션에 관련된 설정 파일

 

              ◎ java

                       : 개발자가 작성하는 소스 코드

 

              ◎ res

                       : 이미지, 사운드, 데이터 등 애플리케이션에서 필요한 리소스

 


4. 안드로이드 앱 설치


 

      A. 제작된 앱은 apk라는 파일로 압축되어 마켓에 등록됩니다.

 

      B. apk 파일을 단말기에 다운로드하게 되면 자동으로 설치가 이루어집니다.

 

      C. 설치가 완료되면 안드로이드 OS는 AndroidMAnifest.xml 파일의 내용을 분석합니다.

 

      D. 여기에서 안드로이드 4대 구성요소 중 어떤 것들이 있는지 파악하여 정리합니다.

 


 

5. 안드로이드 앱  동작 순서


 

 

 

      A. 유저가 애플리케이션 아이콘을 터치합니다.

 

      B. AndroidMAnifest.xml에 기록되어 있는 Activity들 중 "android.intent.action.MAIN" 이름으로 설정된

             intent Filter가 있는 Activity를 찾습니다.

 

      C. 찾은 Activity에 name에 설정되어 있는 클래스 이름을 찾습니다.

 

      D. 찾은 클래스의 객체를 생성하여, OnCreate 메서드를 호출해줍니다.

 

      E. 이 때 setContentView 메서드에 관리할 화면을 지정하는데 res 폴더의 layout에 있는 xml 파일을 지정 !

 

      F. 이를 통해서 화면을 구성하고, 단말기 화면에 나타내게 됩니다.