IT/안드로이드

[5] 안드로이드 앱 동작원리

Lyk 2023. 7. 10. 21:36
728x90
반응형

1. 안드로이드의 4대 구성요소

하나의 어플리케이션 내에는 여러가지 실행단위

번들 형태로 묶어져 있는 이것을 안드로이드 어플리케이션이라고 합니다.

각각의 실행요소들이 각각 실행되어 동작.

 

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

더보기

[상세설명]

화면이 여러개 => Activity 가 여러개 라는 뜻!

어플이 실행되면 해당하는 Activity 가 실행이 되면서 화면이 나타나게 된다.

Ex 두번째 화면을 보여주기 위해 => 그 화면을 관리하는 Activity 를 실행시키고 기존 Activity 는 중단한다.

Service : 화면을 가지지 않는 실행 단위. 백그라운드 프로세싱

Broadcast Receiver : OS 가 메세지를 받으면 실행되는 실행단위

더보기

[상세설명]

전화, 문자, 배터리 등 시스템 상에서 어떤 일이 발생했을때 감지

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

더보기

[상세설명]

특정 어플의 데이터를 다른 어플리케이션에서 가져다 쓸 수 있기 실행하는 실행단위

- 안드로이드 애플리케이션은 4대 구성요소들을 통합 관리하는 번들 개념이다.

 

2. 프로젝트 구조

스튜디오를 열었을 때 좌측에 나타나는 프로젝트의 구조에 대해 알아보자.

1. app > manifests > AndroidMainFest.xml

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

- 즉, 안드로이드 어플리케이션에 단말기에 설치가 되면 안드로이드 OS 는 이 내용을 가져와 어플에 대한 정보를 파악하게 된다. 

- 개발자가 안드로이드 OS 에게 알려주고자 하는 내용을 기록. 중요한 내용이 많이 들어간다.

2. app > java

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

3. app > res

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

더보기

참고: (generated) 표시?

안드로이드 스튜디오가 자기필요에 의해 자동으로 생성한 부분으로 개발자가 신경써야할 부분이 아닙니다!

4. Gradle Scripts

- 외부 라이브러리를 가져오거나, 컴파일 관리 등에 대한 정보가 담겨져 있다.
build.gradle => 각 단말기 종류마다 라이브러리, 컴파일 관련정보를 담을 수 있다. (Ex 모바일용, 워치용 등)

더보기

[상세설명] bundle.gradle 옆에 괄호 의미

project => 전체 프로젝트 관련
Module : ~.app 모바일 관련

 

3. 어플리케이션 설치

- 제작된 애플리케이션은 apk 라는 파일로 압축되어 마켓에 등록된다.
- apk 파일을 단말기에 다운로드하게 되면 자동으로 설치가 이루어진다.

- 안드로이드 os는 설치가 완료되면 AndroidManifest.xml 파일의 내용을 분석하게 된다.

더보기

=> android:icon, android:roundIcon : 아이콘
=> android:label : 아이콘 아래에 나타나는 글자
=> android:theme : 전체적인 테마

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

- 안드로이드 애플리케이션이 실행되면 안드로이드 OS는 첫 번째 화면을 사용자에게 보여주려고 한다.

- 이 때 AndroidManifest.xml 에 있는 여러 구성 요소 중 activity 를 찾는다.
- 이 activity 중에 다음과 같이 작성되어 있는 것을 첫 화면을 관리하는 요소로 판단하고 이를 실행시켜준다.

더보기

Activity 는 화면마다 있다.

수많은 Activity 중 아래코드가 있으면 메인페이지로 판단하여 최초실행됩니다.

android.name => 안드로이드가 알고 있는 이름을 적었을 땐 상황에 맞는 화면이 자동 실행됩니다.

- activity 의 name 속서의 클래스의 객체를 생성한 후 onCreate 메서드를 호출한다.

android.intent.action.Main => 이걸 가지고 있는 Activity 를 찾아 얘가 가진 클래스 이름(activity.name)을 찾아 onCreate 를 자동으로 호출한다.

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

더보기

setContentView : 엑티비티가 관리할 화면을 지정

파라미터의 . 기준으로 의미

첫번째란 : R => res 를 의미

두번째란 : layout 폴더명

세번째란 : xml 파일명 순서

** 즉 실제로 개발자가 만드는소스는  setContentView 아래에서부터 작성하면 된다. **

 

 

 

728x90
반응형