본문 바로가기

Java and Android/Android Java

Android - AVD생성 및 프로젝트의 구조, 매니페스트,생명주기, xml 레이아웃, dp, dpi, px, sp

*폰트설정 

File ->  settiong -> Editer -> font -> consolas ( show only~ 체크해제) 

 

1. 가상디바이스(AVD) 생성

Tool -> AVDManiger  -> create virtual Device -> 기본 picxel2 선택 -> image선택  -> 디바이스 방향 portrait -> Finish

 

*오류발생 : AVD를 생성후 실행하니 .. the emulator process for avd pixel_2_api_30 was killed. 오류 발생

 

*해결방법 : HAXM도 제대로 설치했는데 안됐다.. --> AVD가 저장된 파일중 한글이름의 파일이 있어서 그랬던 것이다

한글경로지정을 바꿔줘야함 ... ㅠㅠ 

 

jizeh.tistory.com/entry/Android-AVD-%EA%B2%BD%EB%A1%9C-%EB%B3%80%EA%B2%BD

 

[Android] 개발환경 - AVD 경로 변경(한글경로 오류)

AVD 경로 중 '한글' 로 인한 오류가 발생했을 때 생성한 avd > [Details] 누르면 Path 확인 가능 현재는 모두 영어로 되어 있지만 중간에 '한글'이 있으면 오류 발생 제어판 > 시스템 및 보안 > 시스템 > [

jizeh.tistory.com

                      

 

2. 안드로이드 기본 구성

 - activity_main.xml 에서

<androidx.constraintlayout.widget.ConstraintLayout> 을  <LinearLayout>으로 변경(후자방식이 배우기 쉬움)

 

(1) - Button

: 버튼

 

 

 

(2) - EditText

  : 사용자가 직접 입력가능

 

 

 

(3) - manifests(메니페스트)

: 안드로이드 환경설정을하는 파일 

AndroidManifest.xml 파일로 되어있으며 파일이름은 이와 정확하게 같아야 한다 

 

 

 

 

(4) - MainActivity( java -  MainActivity)

이 class 는 AppcompatActivity를 상속받으며

상단바 code -> override Method 또는 Ctrl+O 를 누르면 여러 함수들을 호출할 수 있다

 

 

 

 

 

(5) - 생명주기

 

 

2. 새로운 클래스 생성 및 AVD 연결

(1) - java파일 우클릭 -> new -> java class 생성 - > SubActivity 이름으로 생성

 

 

(2) - 안드로이드메인페스트 환경설정에서 위에서 만든 파일을 실행토록 변경

 

여기까지는 기존의MainActivity와 화면 구성이 같다

다음은 새로운 layout을 만들어보자

(1) - 새로운 layout 생성

 

 

 

3. 단위 px, dp , dpi

 

각각의 핸드폰은 해상도가 다르다 그에따라 px로 크기를 정의하면 해상도마다 그 크기가 달라지는데

dp로 정의하면 크기가 일정하기 때문에 dp단위를 쓴다

 

160dpi가 기본값이며

dp를 구하는 공식은 dp = px * 기본160dpi / 단말기 dpi

 

즉 예를 들어 현재 사용하고 있는 AVD pixel2를 기준으로 보자면

1080px* 1920px 해상도에 420dpi를 가지고 있는데

 

dp로 환산하면 1080*160/420 dp 와 1920*160/420 dp 

즉411.4dp * 731.4dp가 나오며

 

이값을 버튼 layout 너비와 높이에 대입하면 폰화면을 꽉 채우게 된다

 

 

이때 우리의 AVD picxel2 는 420dpi이기때문에 이미지파일을 선택할때  320dpi(XHDPI)와 480dpi(XXHDPI) 단말기 사이에 위치하며 둘중 420dpi를 포함하는 XHDPI 이미지파일을 선택해야한다

 

(2) 텍스트사이즈 - 단위sp