- 준비물
- Android Studio가 설치 된 PC
- AVD를 사용할 경우: 가상화 오류 발생 시 체크할 점
- Android Device를 사용할 경우
- 데이터 케이블
- Android Device의 운영체제 버전 확인
- 설정 > 시스템 > 휴대폰 정보 등의 메뉴에서 확인
새 프로젝트 만들기


Build configuration language : Kotlin DSL( build.gradle.kts) 사용 시 좋은점은
기존 build.gradle 에서는 Groovy 언어로 작성되지만 Kotlin DSL를 사용하면 Kotlin 언어로 작성 할 수 있다. 그리고 build.gradle에서 제공되지 않는 자동완성이나 구문 강조 기능이 사용 가능

프로젝트 살펴보기

- manifests : Android OS 에게 앱의 설정을 알리는 파일.
- java - com.example.helloworld : 소스코드 작업 위치. 프로젝트를 만들 때 입력한 패키지가 기본 패키지가 된다.
- 패키지명(androidTest or test) : 테스트용 패키지에 작성한 코드는 실제 앱 동작에는 영향을 끼치지 않는다.
- res : 각종 디자인 등에 관련된 파일들을 저장하는 폴더
- drawable : 이미지 파일
- layout : 화면 디자인 파일
- mipmap : 해상도별 앱 아이콘 파일
- values : Color, String 등의 static 리소스 파일

- build.gradle.kts (Project : HelloWorld ) : Project 단위의 빌드 설정 파일
- build.gradle.kts (Module : app ) : Module (앱) 단위의 빌드 설정 파일. 주로 사용하는 파일
- 컴파일 SDK 버전
- 앱 ID
- JDK 빌드 설정
- 라이브러리 의존성 정의
- Minimum SDK 버전 정의
MainActivity
- HelloWorld 프로젝트의 시작점 : onCreate 함수부터 시작

- R.layout.activity_main 란?

- res / layout / activity_main.xml
- ⬇️ ⬇️
- R.layout.activity_main
- Android lguana 부터 MainActivity의 기본 코드가 변경됨


- 원래는 Statusbar와 Navigation bar 쪽의 UI는 따로 그려줬는데 enableEdgeToEdge를 사용하면 앱 전체화면에 대해 UI를 렌더링 할 수 있다.
- 사용하려면 setContentView 이전 코드에 적어줘야함
https://developer.android.com/develop/ui/views/layout/edge-to-edge?hl=ko

- ViewCompat.setOnApplyWindowInsetsListener(view) { v, insets -> }
- 넓은 화면을 사용할 때 앱 일부가 시스템 아래 그려질 수 있다.
- insets : 내가 피해야 할 영역을 알려준다.
- 표시줄 인셋 : 시스템바가 화면의 얼마나 먹었는지를 알려줌 → 사용자가 status Bar를 숨겼는지, 표시하는지, 길이가 얼마나 되는지 모르기 때문에 상황별로 달라져야 함
- val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
- 동작 인셋 : 좌우를 얼마나 피해서 렌더링을 해야할지 알려줌
- val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemGestures())
- 단, enableEdgeToEdge() 를 사용할때만 사용함
→ 하단바와 상단바의 크기에 리스너를 달아놓고 앱을 실행했을 때 해당 값을 받아와서 그 값만큼 화면에 Padding을 설정한다. → UI가 겹치게 하지 않기 위해
activity_main.xml
- xml code를 렌더링해서 출력하게 된다.

상단 우측에 “code”, “split”, design” 이렇게 3가지 방법으로 xml 파일을 작성할 수 있다.
Emulator에서 실행
실행
- Android Device Emulator를 사용하여 실행해본다.
- 화면 우측 상단
- 버튼을 클릭 > 우측에 뜨는 다음창에서 Create Device를 클릭
- Pixel 중에서 플레이 스토어 아이콘이 있는 모델을 선택한다.

- Recommended 탭에서 처음 설정한 mininum SDK 이상 버전을 다운로드
- 만약 Recommended가 없을 경우 Intel 64bit CPU의 경우 x86 Images, Apple slicon은 Other Images를 선택하여 다운로드 https://www.androidhuman.com/2021-07-04-android_emulator_apple_silicon

- 설정을 완료하면 기기가 추가됩니다.
- 이후 Device Manager 화면에 해당 기기가 출력된다.

- AVD는 기기와 동일하게 전원을 켜고 사용.

Android Device(물리) 에서 실행
- 갤럭시, LG 기타 물리 스마트폰에서 실행
- Physical
PC에서 준비할 것
- Windows OS
- 각 제조사별 USB 드라이버 설치
- https://developer.android.com/studio/run/oem-usb?hl=ko
- 삼성 통합 USB 드라이버
- LG는 링크 클릭후 모델명 넣고 USB Driver 설치
휴대폰에서 준비할 것
- 개발자 모드 활성화
- 휴대전화 정보 > 소프트웨어 정보 > 빌드번호를 7번 터치: 잠금 해제하고 개발자 모드 활성화
- 설정 > 개발자 옵션 > USB 디버깅 허용
- Android Studio가 켜진 상태에서 데이터 케이블로 폰에 연결할 경우 USB 디버깅을 허용할 것인지 묻는 팝업이 출력 > 확인을 눌러 연결
- 준비물
- Android Studio가 설치 된 PC
- AVD를 사용할 경우: 가상화 오류 발생 시 체크할 점
- Android Device를 사용할 경우
- 데이터 케이블
- Android Device의 운영체제 버전 확인
- 설정 > 시스템 > 휴대폰 정보 등의 메뉴에서 확인
새 프로젝트 만들기


Build configuration language : Kotlin DSL( build.gradle.kts) 사용 시 좋은점은
기존 build.gradle 에서는 Groovy 언어로 작성되지만 Kotlin DSL를 사용하면 Kotlin 언어로 작성 할 수 있다. 그리고 build.gradle에서 제공되지 않는 자동완성이나 구문 강조 기능이 사용 가능

프로젝트 살펴보기

- manifests : Android OS 에게 앱의 설정을 알리는 파일.
- java - com.example.helloworld : 소스코드 작업 위치. 프로젝트를 만들 때 입력한 패키지가 기본 패키지가 된다.
- 패키지명(androidTest or test) : 테스트용 패키지에 작성한 코드는 실제 앱 동작에는 영향을 끼치지 않는다.
- res : 각종 디자인 등에 관련된 파일들을 저장하는 폴더
- drawable : 이미지 파일
- layout : 화면 디자인 파일
- mipmap : 해상도별 앱 아이콘 파일
- values : Color, String 등의 static 리소스 파일

- build.gradle.kts (Project : HelloWorld ) : Project 단위의 빌드 설정 파일
- build.gradle.kts (Module : app ) : Module (앱) 단위의 빌드 설정 파일. 주로 사용하는 파일
- 컴파일 SDK 버전
- 앱 ID
- JDK 빌드 설정
- 라이브러리 의존성 정의
- Minimum SDK 버전 정의
MainActivity
- HelloWorld 프로젝트의 시작점 : onCreate 함수부터 시작

- R.layout.activity_main 란?

- res / layout / activity_main.xml
- ⬇️ ⬇️
- R.layout.activity_main
- Android lguana 부터 MainActivity의 기본 코드가 변경됨


- 원래는 Statusbar와 Navigation bar 쪽의 UI는 따로 그려줬는데 enableEdgeToEdge를 사용하면 앱 전체화면에 대해 UI를 렌더링 할 수 있다.
- 사용하려면 setContentView 이전 코드에 적어줘야함
https://developer.android.com/develop/ui/views/layout/edge-to-edge?hl=ko

- ViewCompat.setOnApplyWindowInsetsListener(view) { v, insets -> }
- 넓은 화면을 사용할 때 앱 일부가 시스템 아래 그려질 수 있다.
- insets : 내가 피해야 할 영역을 알려준다.
- 표시줄 인셋 : 시스템바가 화면의 얼마나 먹었는지를 알려줌 → 사용자가 status Bar를 숨겼는지, 표시하는지, 길이가 얼마나 되는지 모르기 때문에 상황별로 달라져야 함
- val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemBars())
- 동작 인셋 : 좌우를 얼마나 피해서 렌더링을 해야할지 알려줌
- val insets = windowInsets.getInsets(WindowInsetsCompat.Type.systemGestures())
- 단, enableEdgeToEdge() 를 사용할때만 사용함
→ 하단바와 상단바의 크기에 리스너를 달아놓고 앱을 실행했을 때 해당 값을 받아와서 그 값만큼 화면에 Padding을 설정한다. → UI가 겹치게 하지 않기 위해
activity_main.xml
- xml code를 렌더링해서 출력하게 된다.

상단 우측에 “code”, “split”, design” 이렇게 3가지 방법으로 xml 파일을 작성할 수 있다.
Emulator에서 실행
실행
- Android Device Emulator를 사용하여 실행해본다.
- 화면 우측 상단
- 버튼을 클릭 > 우측에 뜨는 다음창에서 Create Device를 클릭
- Pixel 중에서 플레이 스토어 아이콘이 있는 모델을 선택한다.

- Recommended 탭에서 처음 설정한 mininum SDK 이상 버전을 다운로드
- 만약 Recommended가 없을 경우 Intel 64bit CPU의 경우 x86 Images, Apple slicon은 Other Images를 선택하여 다운로드 https://www.androidhuman.com/2021-07-04-android_emulator_apple_silicon

- 설정을 완료하면 기기가 추가됩니다.
- 이후 Device Manager 화면에 해당 기기가 출력된다.

- AVD는 기기와 동일하게 전원을 켜고 사용.

Android Device(물리) 에서 실행
- 갤럭시, LG 기타 물리 스마트폰에서 실행
- Physical
PC에서 준비할 것
- Windows OS
- 각 제조사별 USB 드라이버 설치
- https://developer.android.com/studio/run/oem-usb?hl=ko
- 삼성 통합 USB 드라이버
- LG는 링크 클릭후 모델명 넣고 USB Driver 설치
휴대폰에서 준비할 것
- 개발자 모드 활성화
- 휴대전화 정보 > 소프트웨어 정보 > 빌드번호를 7번 터치: 잠금 해제하고 개발자 모드 활성화
- 설정 > 개발자 옵션 > USB 디버깅 허용
- Android Studio가 켜진 상태에서 데이터 케이블로 폰에 연결할 경우 USB 디버깅을 허용할 것인지 묻는 팝업이 출력 > 확인을 눌러 연결