1. Android KTX 란?
안드로이드 프레임워크와 서포트 라이브러리를 모두 지원하여, 안드로이드를 위한 코틀린 코드를 간결하고 편하게 사용할 수 있게 설계된 확장 라이브러리이다. (Jetpack, AndroidFramework 등등)
2. SurfaceView 와 View 의 차이는?
View 와 달리, SurfaceView 는 다른 View 들과는 달리 직접 SurfaceView 가 컨텐츠를 표시하지 않는다.
일반적으로 View 를 화면에 표시하기 위해 하나의 메인 스레드에서 처리가 된다.
하지만, 뷰를 표시하기까지 5초 이상이 걸린다면, ANR 이 발생한다.
그런데 우리가 만약 카메라 프리뷰, 즉 실시간으로 화상을 카메라로부터 받아서 1초에 수십 프레임 이상의 속도로 화면을 업데이트 해야 하는 동작이 있다고 할 때 SurfaceView 를 쓰지 않으면 뷰를 업데이트하는데 모든 스레드의 자원을 모두 써서 애플리케이션의 정상적인 동작을 보장하기 어렵다.
그래서 등장한게 SurfaceView 이다.
SurfaceView 는 화면 업데이트를 백그라운드 스레드로 수행하여 애플리케이션의 자원을 잠식하지 않고 원활하게 뷰를 업데이트 하게 해준다. 뿐만 아니라, SurfaceView 는 OpenGL 을 통한 가속이 지원되어 원활한 3D 그래픽 표현도 가능하다.
정리하자면 SurfaceView 는 View 를 상속받는 클래스이고, 애니메이션이나 동영상 같은 연산 처리가 많이 필요한 뷰를 위해 사용된다.
3. 안드로이드 APK 구조는?
APK 는 안드로이드 애플리케이션 패키지의 확장자이다.
lib, res, manifest 등이 존재한다.
4. Service 와 Thread 차이는?
Service 자체는 메인스레드에서 동작한다.
Service 를 구현하면 별도의 스레드에서 동작하리라 생각할 수 있지만, Service 는 기본적으로 UI 가 동작하는 메인 스레드에서 동작을 한다. 그래서 Service 내에서 별도의 스레드를 생성해서 작업을 수행해야 한다.
Service 내에서 스레드를 사용해야 한다면, 그냥 일반적인 코드에서 스레드를 사용하는 것과 무엇이 다를까?
앱이 구동 중에 시스템에 의해서 프로세스가 강제 종료 되었다고 생각을 해보자.
Service는 onStartCommand 의 변환 값에 따라서 강제 종료된 Service 를 시스템이 다시 자동으로 시작하게 만든다.
하지만, 스레드는 다시 복구시켜 주진 않는다.
기본적으로 스레드는 하나의 프로세스 내에서 스레드 간 메모리를 공유하지만, 다른 프로세스에 접근할 수 없다.
Service 는 Bind 방식의 Service 를 구현함으로써 프로세스 간 통신(IPC)을 수행할 수 있다.
우리가 흔히 사용하는 위치서비스, 알람서비스, 알림서비스 등이 IPC 통신을 할 수 있게 해당 프로세스를 bind 할 수 있도록 인터페이스를 제공하고 있다.
5. 번들(bundle)이란?
여러가지 타입의 값을 저장하는 Map 클래스이다.
원시 타입부터 객체 타입까지 가능하다.
6. 안드로이드 OS 란?
스마트폰 모바일 운영체제로 리눅스 기반으로 운영체제와 미들웨어, 사용자 인터페이스, 애플리케이션, MMS 등을 묶어 제공하는 소프트웨어 플랫폼이다.
오픈소스이며, 플랫폼에 독립적이다.
'Android Q&A > Android One a day' 카테고리의 다른 글
[안드로이드 면접] - 24 : (0) | 2023.03.01 |
---|---|
[안드로이드 면접] - 22 : (0) | 2023.02.28 |
[안드로이드 면접] - : 21 (0) | 2023.02.27 |
[안드로이드 면접] - 20 : (0) | 2023.02.24 |
[안드로이드 면접] - 19 : (0) | 2023.02.24 |