[Android] 동작원리

728x90

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

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

 

Activity

- 눈에 보이는 화면을 관리

 

Service

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

 

Broadcast Reciever

 - OS가 메세지 받으면 실행되는 실행 단위

- 시스템상에서 메세지받았을 때 (배터리 경고 등) 

 

Content Provider

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

 

2. 프로젝트의 구조

 

- androidManifest : 안드로이드 어플리케이션에 대한 설정 파일

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

- res : 이미지, 사운드, 데이터 등 리소스파일

- Gradle Scripts : 외부라이브러리 다운, 컴파일 관리 등 


  * build.gradle (Module: app) : 컴파일 정보, 라이브러리 세팅, 모바일용/워치용 등 한꺼번에 개발 가능 (모바일용 모듈 하나, 워치 모듈 하나)
  * build.gragle (project) : 프로젝트 세팅 (라이브러리 세팅 등..)

 

3.  어플리케이션 설치

- 제작된 어플리케이션은 apk 파일로 압축 되어 마켓에 등록되고 단말기에 다운하면 자동 설치

- 안드로이드 OS는 설치가 완료되면 AndroidManifase.xml 파일을 먼저 분석해서 안드로이드 4대 구성요소 중 어떤 게 있는지 파악해서 이를 정리함

    <application
        android:allowBackup="true"
        android:dataExtractionRules="@xml/data_extraction_rules"
        android:fullBackupContent="@xml/backup_rules"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/Theme.MyApplication"
        tools:targetApi="31">

icon, roundIcon : 아이콘 이미지

label : 아이콘 아래 텍스트 

theme : 화면 테마

 

안드로이드 OS한테 어플리케이션 안 구성요소를 등록해서 알려준다.

OS는 이 액티비티를 보고 어떤 실행요소가 있는지 파악 및 정리/등록 후 OS가 관리

- intent-filter : 액티비티들 중 가장 최초에 실행해야할 메인 액티비티임을 알려줌 

 

4. 어플리케이션 실행 

- 액티비티의 name 속성의 클래스 객체를 생성한 후 onCreate 메서드를 호출 이때 setContentView 메서드에 관리할 화면을 지정하는데 res 폴더의 레이아웃에 있는 xml 파일을 지정하게되고 파일을 구성해 단말기 화면에 타나남

 

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        EdgeToEdge.enable(this);
        setContentView(R.layout.activity_main);
        ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) -> {
            Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
            return insets;
        });
    }
}

 

- r.layout.activity_main에서 r은 alias를 의미하고 레이아웃 폴더의 activity_main.xml을 가지고 화면을 만들어서 띄워줌 

- setContentView : 액티비티가 관리할 화면을 지정하는 메서드 

 

728x90