Android Studio
app > java > com.example.myfirstapp > MainActivity
앱의 진입점. 앱을 빌드하고 실행하면 시스템에서 이 Activity의 인스턴스를 실행하고 레이아웃 로드
app > res > layout > activity_main.xml
이 xml 파일은 활동의 사용자 인터페이스(UI) 레이아웃 정의, 파일에 'Hello, World!' 라는 텍스트가 있는 TextView 포함
app > manifests > AndroidManifest.xml
매니페스트 파일은 앱의 기본 특성을 설명하고 앱의 각 구성요소를 정의
Gradle Scripts > build.gradle
이 이름을 가진 파일은 두개
1) Project: My_App // 프로젝트용
2) Module: My_App.app // 모듈용
애플리케이션 기본 항목
Android 앱은 Kotlin, Java, C++ 언어를 사용하여 작성 가능
Android SDK 도구는 모든 데이터 및 리소스 파일과 함께 코드를 컴파일하여 하나의 APK를 만듦
Android 패키지는 접미사가 .apk인 아카이브 파일 -> 한 개의 APK 파일에는 Android 앱의 모든 콘텐츠가 들어 있고,
Android로 구동하는 기기가 앱을 설치할 때 바로 이 파일을 사용
각 Android 앱은 자체적인 보안 샌드박스에 속하며, 이는 Android 보안 기능으로 보호됨
앱의 구성 요소
앱 구성 요소는 Android 앱의 필수적인 기본 구성 요소로 시스템이나 사용자가 앱에 들어올 수 있는 진입점
다른 구성요소에 종속되는 구성요소도 존재
1) Activity : 액티비티는 사용자와 상호작용하기 위한 진입점으로 사용자 인터페이스를 포함한 화면 하나를 나타냄
ex) 이메일 앱 -> 새 이메일 목록을 표시하는 액티비티 , 이메일을 작성하는 액티비티, 이메일을 읽는 액티비티 존재
여러 액티비티가 함께 작동하여 사용자 환경을 구성하지만 각자 서로 독립되어 있음
2) Service : 서비스는 여러 가지 이유로 백그라운드에서 앱을 계속 실행하기 위한 다목적 진입점
이는 백그라운드에서 실행되는 구성 요소로, 오랫동안 실행되는 작업 수행 또는 원격 프로세스 작업 수행
ex) 백그라운드에서 실행되는 음악
3) Broadcast Receiver : 시스템이 정기적인 사용자 플로우 밖에서 이벤트를 앱에 전달하도록 지원하는 구성요소
앱이 시스템 전체의 브로드캐스트 알림에 응답할 수 있게 함
ex) 화면 꺼짐 알림, 배터리 부족 알림, 사진 캡처 알림
4) Content Provider : 파일 시스템, SQLite 데이터베이스, 웹상이나 앱이 엑세스할 수 있는 다른 모든 영구 저장 위치에 저장 가능한 앱 데이터의 공유형 집합 관리
ex) 연락처, 전화기록, 오디오
매니페스트 파일
Android 시스템이 앱 구성요소를 시작하려면 시스템은 우선 앱의 매니페스트 파일, AndroidManifest.xml을 읽어서 해당 구성요소가 존재하는지 확인. 앱은 이 파일 안에 모든 구성 요소를 선언해야 하며, 이 파일은 앱 프로젝트 디렉토리의 루트에 있어야함
매니페스트 역할
- 앱이 요구하는 모든 사용자 권한(인터넷 액세스, 사용자의 연락처에 대한 읽기 액세스) 식별
- 앱이 어느 API를 사용하는지를 근거로 앱에서 요구하는 최소 API 레벨 선언
- 앱에서 사용하거나 요구하는 하드웨어 및 소프트웨어 기능(카메라, 블루투스 서비스, 멀티터치 화면)을 선언
- 앱이 링크되어야 하는 API 라이브러리를 선언
리소스 유형
리소스 디렉터리(res/)에 제공할 수 있는 특정 유형의 앱 리소스
- 애니메이션 리소스 : 사전 결정된 애니메이션을 정의
1) 트윈 애니메이션 : res/anim/ 에 저장되고 R.anim 클래스에서 액세스
2) 프레임 애니메이션 : res/drawable/ 에 저장되고 R.drawable 클래스에서 액세스
- 색상 상태 목록 리소스 : 뷰 상태에 따라 변경되는 색상 리소스 정의
res/color/ 에 저장되고 R.color 클래스에서 액세스
- 드로어블 리소스 : 비트맵 또는 XML을 사용하여 다양한 그래픽 정의
res/drawable/ 에 저장되고 R.drawable 클래스에서 액세스
- 레이아웃 리소스 : 애플리케이션 UI 레이아웃 정의
res/layout/ 에 저장되고 R.layout 클래스에서 액세스
- 메뉴 리소스 : 애플리케이션 메뉴의 콘텐츠 정의
res/menu/ 에 저장되고 R.menu 클래스에서 액세스
- 문자열 리소스 : 문자열, 문자열 배열 및 복수형을 정의하고 문자열 포맷 지정 및 스타일 지정 포함
res/values/ 에 저장되고 R.string, R.array, 및 R.plurals 클래스에서 액세스
- 스타일 리소스 : UI 요소의 스타일과 포맷을 정의
res/values/ 에 저장되고 R.style 클래스에서 액세스
- 글꼴 리소스 : 글꼴 모음을 정의하고 맞춤 글꼴을 XML에 포함
res/font/ 에 저장되고 R.font 클래스에서 액세스
'모바일 > 안드로이드' 카테고리의 다른 글
[Android] Step2 - 활동(Activity) (0) | 2021.06.22 |
---|---|
[Android] BroadcastReceiver (0) | 2021.06.18 |
[Android] Permission (0) | 2021.06.18 |
[Android Studio] RecyclerView (0) | 2021.04.04 |
[Android Studio] SharedPreference (0) | 2021.04.04 |