해당 내용은 이지스 퍼블리싱 카페에서 공부하며 올렸던 글을 다듬었습니다.
< 02-1 안드로이드 소개 >
- 책 본문 읽어보기
< 02-2 안드로이드 앱의 기본 구조 >
- 안드로이드는 DEX 파일로 컴파일함 (안드로이드 5.0 버전 이후)
* 자바 소스(.java) → 자바 바이트 코드(class) → DEX 바이트 코드(.dex)
- ART : Adroid RunTime
- 안드로이드에서는 클래스로 컴포넌트 개발함
- 생명주기를 누가 관리하느냐에 따라 컴포넌트 클래스 / 일반 클래스로 구분
- 4가지 컴포넌트 : 액티비티, 서비스, 콘텐츠 프로바이더, 브로드캐스트 리시버
- 4가지 컴포넌트의 구분 방법 : 상위 클래스를 보고 구분 가능
- 컴포넌트의 구성은 설계에 따라 달라지며 정해진 규칙은 없음
* 컴포넌트는 앱 안에서 독립된 실행 단위다 => 안드로이드 시스템에 의뢰해서 실행해야 함
* 앱 실행 시점이 다양 => 메인 함수 개념이 없다
* 애플리케이션 라이브러리 사용할 수 있다
* 리소스를 많이 활용한다 => 항상 똑같은 값을 불러올 때!
[ R. 의 의미 ]
- 02-2 마지막 부분의 R.string.mytxt 중 R. 의 의미를 자세히 몰라서 이곳저곳 찾아봤었는데 못 찾았었어요.
이번 편을 보면서 R. 의 의미를 알게 됐습니다.
- R. : R은 Resource고 안드로이드 시스템에서 R.java 파일로 리소스 관리를 해주는 것.
즉, R. 은 R.java를 의미!!
< 02-3 앱 구성 파일 분석 >
- 모듈 하나가 앱 하나 : 일반적으로 하나의 모듈은 하나의 앱을 의미
* 하나의 앱을 여러 모듈로 나누어 개발할 수도 있다
- 모듈의 폴더 구성
이름
|
설명
|
build.gradle
|
빌드 설정 파일
|
AndroidManifest.xml
|
앱의 메인 환경 파일
|
res
|
리소스 폴더
|
activity_main.xml
|
레이아웃 XML 파일
|
MainActivity.xml
|
메인 액티비티 파일
|
- build.gradle : 그래들의 설정 파일. gradle은 안드로이드 앱의 빌드 도구.
- 대부분의 빌드 설정은 모듈 수준의 그래들 파일(build.gradle(Module: AndroidLap.app))에 작성
- applicationId : 고유한 문자열로 지정해야 함. 식별자 중복 시 구글 플레이 스토어에 등록 안됨.
- 개발자가 추가하는 오픈소스 라이브러리나 구글의 androidx 라이브러리 등
SDK 라이브러리가 아닌 것들은 모두 dependencies에 선언해야 함.
- AndroidManifest.xml : 안드로이드 앱의 메인 환경 파일. (매니페스트 파일)
* 안드로이드 시스템은 이 파일에 설정한 대로 사용자의 폰에서 앱을 실행
* 개발부터 실행까지 중요한 역할!
- package는 매니페스트 파일에 선언한 컴포넌트 클래스의 기본 패키지명 (기본 경로로 이해함)
- <application> 태그는 앱 전체를 대상으로 하는 설정
- XML 속성 값이@로 시작하면 리소스를 의미
- 안드로이드 컴포넌트는 시스템에서 생명주기를 관리하고,
시스템은 매니페스트 파일에 있는 대로 앱을 실행함.
결국 컴포넌트는 매니페스트 파일에 등록해야 시스템이 인지함
- 액티비티 필수 속성 name : 클래스의 이름을 등록
- 리소스 : 앱의 리소스를 등록하는 목적
* 기본 폴더 4가지 : drawable, layout, mipmap, values
- R.java : res 폴더에 있는 리소스를 보고 자동으로 만듦 (개발자가 만드는 파일 아님)
- 이제 R.java 파일을 보여주지 않음
=> 개발자가 직접 건드리지 않고 내부에서 리소스를 등록하기 위해
- 리소스 파일 규칙
* res 하위의 폴더명은 지정된 폴더명을 사용해야 함
* 각 리소스 폴더에 다시 하위 폴더를 정의할 수 없음
* 리소스 파일명은 자바의 이름 규칙을 위해할 수 없음
* 리소스 파일명에서 알파벳 대문자를 이용할 수 없음 => 두 단어 연결 시 언더바(_) 사용
'Programming > Kotlin' 카테고리의 다른 글
[5일차] 깡샘의 안드로이드 앱 프로그래밍 with 코틀린(Do it!) / 05 코틀린의 유용한 기법 (0) | 2021.12.21 |
---|---|
[4일차] 깡샘의 안드로이드 앱 프로그래밍 with 코틀린(Do it!) / 04 코틀린 객체지향 프로그래밍 (0) | 2021.12.17 |
[3일차] 깡샘의 안드로이드 앱 프로그래밍 with 코틀린(Do it!) / 03 코틀린 시작하기 (0) | 2021.12.04 |
[1일차] 깡샘의 안드로이드 앱 프로그래밍 with 코틀린(Do it!) / 01 개발 환경 준비하기 (0) | 2021.12.01 |
Kotlin 공부를 시작하다! (0) | 2021.12.01 |