-
1. 안드로이드 4대 컴포넌트 -> 인텐트를 통해 상호작용
- 액티비티 : 사용자가 appication과 상호작용하며 보이는 화면
- 서비스 : 백그라운드에서 작업을 처리하기 위해 사용, App이 종료되어도 백그라운드에서 동작(ex) 음악 앱)
- content provider : 데이터를 관리하고 다른 app의 데이터를 제공하는데 사용. 데이터를 저장하고 불러와서 사용할 수 있는 시스템(ex) 인스타에서 갤러리 앱 접근을 통해 사진을 가져옴)
- broadcast receiver : 안드로이드 os로부터 발생하는 이벤트 정보를 받고 대응하는 컴포넌트.(ex) 배터리 부족 알림)
2. 인텐트란
: 애플리케이션 컴포넌트 간 정보를 전달하는 역할을 하는 통신수단
3. 액티비티 라이프 사이클
onCreate : 액티비티 생성 시 실행
onStart : 화면에 보임
onResume : 실행 중
onPause : 화면의 일부가 다른 액티비티에 가려짐
onStop : 다른 액티비티 실행으로 완전 가려짐
onDestroy : 종료
-> 리스트뷰에 항목을 추가할 때 onCreate에서 intent를 이용해 내용 작성 후 finish를 하면 리스트뷰에 추가가 안 된다.
이때는 onResume에 리스트뷰를 보여주는 기능을 작성해주면 해결된다.
4. LinearLayout, RelativeLayout, ConstraintLayout
- LinearLayout : weight을 통해 화면의 비율 조정
- RelativeLayout : 요소들 간의 상대적 위치에 따라 배치
- ConstraintLayout : Linear의 가중치의 장점 + Relative의 상대적 위치에 따른 배치 장점 + 체인 이용하여 다른 레이아웃 없이 요소를 그룹화
5. Fragment life cycle
: onAttach, onCreate, onCreateView, onPause, onStop, onDestroyView
6. Process와 thread
: process는 운영체제로부터 메모리를 할당받아 실행되는 프로그램의 단위, thread는 process 내에서 실행되는 흐름 단위
7. thread간 통신
: handler 사용
- handler : looper로부터 받은 message나 runnable 객체를 실행, 처리하거나 다른 스레드로부터 메시지를 받아 message queue에 넣는 역할을 함.
looper : 무한히 루프를 돌며 자신이 속한 스레드의 메시지 큐에서 message나 runnable 객체를 꺼내 handler에게 전달
8. DP
: 독립화소, 즉 디스플레이의 해상도와 상관없이 다룰 수 있는 단위