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 : 액티비티가 관리할 화면을 지정하는 메서드
'안드로이드 스튜디오' 카테고리의 다른 글
[Android] ViewBinding (1) | 2025.06.07 |
---|---|
[Android] View의 기본 개념 (1) | 2025.06.06 |
[Android] 프로젝트 생성 및 AVD 테스트 (1) | 2025.06.06 |
[Android] 안드로이드 개발환경 구축 (0) | 2025.05.30 |
[Android] 안드로이드 소개 및 개발 환경 구축 (1) | 2025.05.07 |