more actions > SDK manager> Android SDK Platform 34 설치
SDK Tools > Google Play services 설치
Virtual Device Manager(AVD): 에뮬레이터(모바일 구동)
show on Disk: C:\Users\사용자.android\avd

Select Hardware > 크기 Pixel2
System Image > x86 Images > UpsideDownCake - API:34 - Target:Android 14.0(GoogleAPIS) install

작업관리자에서 qemu-system이 에뮬레이터 실행중
검은 화면만 나올때 에뮬레이터 종료하고 cold boot 실행한다.
기본 전원을 킬때는 quick boot로 설정됨,
문제 생겼을때 cold boot를 실행하면 에뮬레이터를 완전히 종료후 켠다
실행이 안된다면 작업관리자에서 Android Studio, qemu-system-x86_64.exe, emulator.exe, adb.exe등 작업중지하고 C:\Users\사용자.android\avd\Pixel_2_API_34.avd 에서 hardware-qemu.ini.lock 삭제후 다시실행
> Empty Views Activity 템플릿 선택
> Language: Java
> Minimun SDK: API 24(7.0)
Gradle: jdk17로 설정
activity_main.xml: 디자인 구성
MainActivity.java: 구동코드
run 하면 코드가 에뮬레이터에 올라간다
오른쪽 Running Devices로 에뮬레이터 실행

xml
> palette: 위젯들
> 위젯 추가 후 apply
ViewGroup 클래스로부터 상속(View가 최상위)
orientation: 레이아웃 안에 배치할 위젯의 수직 또는 수평 방향을 설정
gravity: 레이아웃 안에 배치할 위젯의 정렬 방향을 좌측, 우측, 중앙으로 설정
padding: 뷰의 외벽에 여백을 설정
baselinealigned: TextView 위아래 정렬 #True면 하단정렬, False면 상단정렬
리니어레이아웃(선형 레이아웃) #가장 자주 쓰인다
왼쪽 위부터 아래쪽 또는 오른쪽으로 차례로 배치
-orientation 속성
리니어 레이아웃의 가장 기본적인 속성
vertical: 세로방향
horizontal: 수평방향
렐러티브레이아웃(상대레이아웃)
상대적으로 위치를 지정해주는 Layout
부모 뷰 기준으로 위치를 지정하거나 또 다른 자식 뷰의 위치를 기준으로 위치를 지정
테이블레이아웃
뷰들을 표처럼 배치
그리드레이아웃
테이블레이아웃과 비슷
행 또는 열을 확장하여 다양하게 배치할때 더 편리함
프레임레이아웃
위젯들을 왼쪽 위에 일률적으로 겹쳐서 배치하여 중복해서 보이는 효과를 냄
#레이아웃 안에 레이아웃을 넣는(중첩 레이아웃)이 가능하다

Component Tree
> ConstraintLayout 우클릭
> convert view
> LinearLayout으로 변경
Declared Attributes: 내가 건들인 속성
Layout: 성질
Transforms: 화면전환
Common Attributes: 주로 쓰이는 속성
> orientation: 방향(없다면 디폴트는 수평방향)
>layout_weight 지우기
>layout_width/layout_height
-match_parent: 부모가 허용한 공간 전부 다 쓰기
-wrap_content: 자식들이 알맞게 배치되게 적당히 크기조절
왼쪽 블록 넓이가 match_parent, 오른쪽 블록 넓이가 wrap_parent일때는 왼쪽 블록이 화면넓이 전부 차지,
왼쪽 블록 넓이가 wrap_parent, 오른쪽 블록 넓이가 match_parent일때는 오른쪽 블록이 왼쪽 블록 여백의 넓이만 차지
