android
3 posts
Activity 생명주기

왜 알아야 하는가? 앱의 완성도와 안정성을 높이기 위해 반드시 알아야 함. 다른 앱으로 전환 시 비정상 종료 되는 문제 사용자가 앱을 사용하지 않는데 시스템 리소스가 소비되는 문제 사용자가 앱을 나갔다 돌아왔을 때 진행 상태가 저장되지 않는 문제 화면이 가로 ↔ 세로 전환될 때 비정상 종료 되거나 진행 상태가 저장되지 않는 문제 콜백 스크린샷 2023-03-09 오후 6.43.24.png onCreate 필수적으로 구현해야 함 Activity 생명주기 중 한 번만 발생해야 하는 로직을 실행 멤버 변수 정의 UI 구성(setContentView, xml 레이아웃 파일 정의) savedInstanceState 매개 변수 수신 → Actiity 이전 저장 상태가 포함된 Bundle 객체 바로 onStart로 전환 onStart Activity가 사용자에게 표시되기 위해 준비하고 있는 상태 Activity를 포그라운드로 보내 상호 작용 할 수 있도록 준비 바로 onResum…

March 09, 2023
android
안드로이드 기본 요소

4대 컴포넌트 Activity 앱과 사용자가 상호 작용을 하기 위한 진입점 앱을 실행할 때는 전체적으로 호출하는 것이 아니라 앱의 액티비티를 호출 모든 앱에 반드시 한 개 이상 존재 사용자와 상호 작용을 위한 UI가 있음 앱이 실행되면 화면이 표시됨 사용자의 입력 값을 받음 (화면 클릭, 롱 클릭, 스와이프 등) 사용자에게 제공하고자 하는 내용을 화면에 표시함 Lifecycle을 가지고 있음 Service 백그라운드에서 오래 실행되는 작업 수행을 위한 컴포넌트 사용자가 다른 앱으로 전환하더라도 백그라운드에서 계속 실행 UI가 없음 종류 포그라운드 서비스 사용자에게 잘 보이는 작업 반드시 알림을 표시해야 하며, 사용자가 앱과 상호 작용 하지 않을 때에도 계속 실행됨 ex) 음악 재생 백그라운드 서비스 사용자에게 직접적으로 보이지 않는 작업으로 알림이 표시되지 않음 ex) 저장소 압축, 게임 업데이트, 파일 압축 등 API 레벨이 26 이상인 경우 아래를 사용 즉시 실행해야 하는 작업…

March 09, 2023
android
View가 그려지는 과정

스크린샷 2023-03-09 오후 7.32.26.png 전위순회 방식을 쓰기 때문에, 부모부터 자식 뷰 순서로 그려지게 됨 onMeasure 뷰의 크기를 계산 모든 뷰는 각각 자신의 width, height를 계산 measure 단계에서는 부모 - 자식 뷰 간의 크기 정보 전달을 위해 두 가지 클래스를 사용 : 자식 뷰가 부모 뷰에게 자신이 어떻게 측정되고 위치를 정할지 요청할 때 사용(how big) DP, PX…: 자식 뷰가 원하는 사이즈 MATCH_PARENT: 부모 뷰 사이즈와 똑같이 자식 뷰 사이즈 지정 WRAP_CONTENT: 부모 뷰 안에서 content를 표현할 수 있는 fit한 사이즈 지정 : 부모 뷰가 자식 뷰에게 요구 사항을 전달할 때 사용 UNSPECIFIED: 부모 뷰는 자식 뷰가 원하는 사이즈로 결정 EXACTLY: 부모 뷰가 자식 뷰의 사이즈를 정확히 지정할 때 AT_MOST: 부모 뷰가 자식 뷰의 최대 사이즈를 지정할 때 onLayout …

March 09, 2023
android