1) 안드로이드의 특징들
2) Android 가상 머신의 이름
= ART 가상 머신
3) 안드로이드 4대 구성 요소 중 Activity의 정의
= 눈에 보이는 화면을 관리하는 실행 단위
4) 안드로이드 4대 구성 요소 중 Service의 정의
= 화면을 가지지 않은 실행 단위. 백그라운드 프로세싱
5) 안드로이드 4대 구성 요소 중 Content Provider의 정의
= 저장된 데이터를 제공하기 위해 실행되는 실행 단위
6) 안드로이드 4대 구성 요소 중 BroadCast Receiver의 정의
= OS가 이벤트가 발생했다는 시스템메시지를 받으면 실행되는 실행 단위
7) AndroidManifest.xml 이 어떠한 역할을 하는지
= 안드로이드 애플리케이션에 관련된 설정을 관리하는 역할
8) ViewBinding 을 사용하기 위한 작업(설정)
1. Module :app 수준의 build.grade.kts 파일 오픈 (build.gradle.kts (Module :app)
2. 해당 파일에서 android 블럭 내에
buildFeatures{
viewBinding = true
}
작성 후 sync now
3. 뷰바인딩을 사용할 액티비티 파일에서 ViewBinding 객체를 가져와서 사용
9) ViewBinding 클래스의 네이밍 규칙
: Activity 클래스의 이름이 MainActivity라면 뷰바인딩의 네이밍은 activityMainBinding,
Fragment 클래스의 이름이 LikeLion이라면 뷰바인딩의 네이밍은 fragmentLikeLionBinding.
즉, 해당클래스의 종류+클래스이름+Binding 의 형식
10) 사용했던 View 들의 특징
1. TextView: 사용자에게 보여주고자 하는 문자열을 표시하는 View
2. ScrollView: 배치되어 있는 View가 화면을 벗어날 경우 스크롤을 할 수 있도록 제공하는 View
기본은 위아래 스크롤이며 HorizontalScrollView 사용시 좌우 스크롤을 제공
3. ImageView: 사용자에게 보여주고자 하는 이미지를 표시하는 View
이미지는 res폴더의 drawable폴더에 저장
벡터방식의 이미지는 mipmap폴더에 저장
4. CardView: 화면에 배치되는 View들을 그룹으로 묶어 관리할 수 있는 View
뷰 자체가 공중에 떠 있는 듯한 모습으로 표시
5. RecyclerView: 수많은 항목을 보여줄 때 사용하는 AdapterView의 한 종류
리싸이클러뷰는 항상 3가지를 구성해야 한다
-데이터의 개수 -보여줄 객체(의 양식) -보여줄 데이터의 양식
따라서 위 정보들을 결정하는 Adapter를 직접 구현해야 함
11) 사용했던 Layout들의 특징
Linear Layout
- 방향성을 가지고 view를 배치하는 것.
- 가로방향, 세로방향으로 설정 가능 하다.
Frame Layout
- 내부에 배치된 View 들이 같은 자리에 계속 배치되는 것.
- 겹쳐서 view를 배치 할 수 있는 것.
Constraint Layout
- 유연하게 화면을 구성할 수 있는 것.
- 제약조건이 2가지 있다.
- 실선 제약 조건: 절대적 길이를 의미(좌표 길이)
- 스프링 제약 조건: 상대적 길이를 의미(비율 설정)
12) 각 메뉴들의 특징
- Option Menu: 안드로이드에서 화면 하나당 하나씩 가질 수 있는 메뉴.
- Context Menu: View를 길게 누르면 타나타는 메뉴 (직관적이지 못함.)
- Popup Menu: 개발자가 코드를 통해 원하는 View에 띄우는 메뉴 (원하는 시점에 띄우는 것)
13) AdapterView (RecyclerView) 에 대한 내용들
- ListView와 GridView의 구현이 비슷한 부분이 많이 이를 통합한 View 입니다.
- 뷰홀더, 어댑터, 레이아웃 매니저가 있어야 합니다.
- 뷰홀더 클래스: 항목 하나를 구성하는 View들의 주소값을 가지고 있는 클래스. (상속 받아오기)
- 어댑터 클래스: View를 구성하기 위해 필요한 정보를 가지고 있는 요소.
-> onCreateVeiwHolder: 아이템 뷰를 관리하는 ViewHolder 객체 생성.
-> getItemCount: RecyclerView의 전체 항목 개수를 반환.
-> onBindViewHolder: position에 해당하는 데이터를 ViewHolder가 관리하는 VIew에 바인딩.
- 레이아웃 매니저: 항목을 어떻게 배치하여 보여줄건지 결정하는 것. ex) LinearLayoutManager
14) 여러 메시징 도구들의 특징들
- Toast: 잠깐 보여줬다가 사라지는 메시지 (디바이스 화면에 노출)
- Snackbar: 잠깐 보여줬다가 사라지는 메시지 (현재 액티비티에 노출)
- Dialog: 애플리케이션 화면에 메시지를 띄울 때 사용한다 (사용자가 특정 버튼을 눌러야 없어진다)
- Notification: 단말기의 알림 메시지 창에 나타나는 메시지이다. (어플 실행을 유도하기 위해 사용)
15) SQLiteDatabase에 관한 내용들
- 안드로이드에서 사용하는 내장 데이터베이스로 표준 SQL문을 사용하는 관계형 데이터베이스 입니다.
- Create, select, Insert, Update, Delete 쿼리를 수행합니다.
- OpenHelper란.
- SQLite 데이터 베이스를 사용하려면 SQLiteOpenHelper를 상속받은 클래스를 만들어야 합니다.
- 사용할 데이터베이스의 이름을 설정하는 것 뿐만 아니라 다음 기능들을 제공한다.
-> onCreate 메서드가 호출되면 테이블을 만드는 쿼리를 실행한다.
-> onUpgrade 메서드가 호출되면 기존의 테이블을 새로운 구조로 변경하는 쿼리를 실행한다.
- 데이터를 조회 하기 위해선 rawQuery 메서드를 사용합니다.
- 그 외에 수정, 저장, 삭제를 할때는 execSQL 메서드를 사용합니다.
16) 단위에 내용
px : 실제 사용할 픽셀의 개수
dp : 160ppi 액정에서 1dp = 1px
sp : 단말기에 설정되어 있는 글자 크기에 따라 가변
기본 크기에서 160ppi 액정에서 1sp = 1px
mm : 밀리미터
in : 인치
pt : 1pt = 1/72인치
17) 각종 센서들
- 센서
= 사용자들에 대한 정보를 수집
- 센서의 종류
1. 조도 센서
= 주변 밝기를 측정 -> 화면 밝기 조절
2. 기압 센서
= 공기압(변화) 측정 -> 경사도, 건물의 층 수 계산
3. 근접 센서
= 단말기와 물체 간의 거리 측정(cm) -> 실제로는 근접 여부만 측정 O
4. 자이로 스코프 센서
= 단위 시간당 회전한 각도 값을 측정
5. 가속도 센서
= 단말기의 기울기를 측정
6. 마그네틱 필드
= 단말기 주변의 자기장 값(방향)을 측정
-> 기울기에 따른 오차를 없애기 위해 가속도 센서와 같이 사용하여 정확한 방위값 측정
18) GPS Provider에 관련된 내용
- GPS Provider = GPS 위성과 통신하여 3각 측량 방법을 이용해 위치 정보 습득
- GPS Provider 특징
위성과 전파 송수신이 방해가 되는 요인(방해전파, 실내, 건물내, 계곡 등)이 있으면 정확하게 측정 X
필요할 때마다 연결하여 사용(항상 연결 X)
연결할 때마다 속도 상이 -> 속도 매우 느릴 수도, 빠를 수도 있음
다른 Provider에 비해 정확함
- GPS Provider 권한
"ACCESS_FINE_LOCATION" 등록
19) layout 폴더내의 리소스 관리에 관련된 내용들
xml 파일을 통해 화면 구성
- Activity가 처음 나타날 때 모습 설정
실행 중 View를 만들어 추가할 경우
-> 코드를 통해 View를 만들어 추가
1. LayoutInflater의 inflate 메서드 사용 : XML을 통해 View 객체 생성
2. ViewBinding 사용: View 생성, 사용
20) values 폴더내의 리소스 관리에 관련된 내용들
-> 프로그램에서 사용되는 값들을 설정하는 파일이 존재
- 특징
파일 이름은 중요 X
xml파일에 등록되어 있는 값들의 이름으로 resource id가 생성
<태그명 name="resource id"/>
- value 종류
1.색상 관리 <color>
리소스에 등록된 색상 가져오기: getColor(id)
2. 단위에 맞는 크기 관리 <dimen>
리소스에 등록된 크기 가져오기: resources.getDimension(id)
3. 문자열 관리 <string>
리소스에 등록된 문자열 가져오기: resources.getString(id)
문자열 배열 <string-array><item></item></ string-array >
리소스에 등록된 문자열 배열 가져오기: resources.getStringArray(id)
- 다국어 지원 가능(Localization)
- 색상과 문자열은 Activity에서 값을 가져오는 메서드를 제공해서 resources.를 생략할 수 있다