그냥 나혼자 정리해본 안드로이드 핵심 퀴즈 10개 입니다람쥥.
Q1. 안드로이드의 4대 컴포넌트명을 기재하시오.
액티비티(Activity)
서비스(Service)
방송 수신자(BroadCast Receiver)
콘텐츠 제공자(Content Provider)
Q2. 안드로이드의 5개 계층구조를 기재하고 각 계층별로 간략하게 설명하시오.
- 리눅스커널계층 - 운영체제가 리눅스 기반으로 만들어져있으며 커널또한 리눅스로 이루어져있음
- 하드웨어 추상화 계층 - 하드웨어의 명령어들이 복잡하여 추상화 시켜둠
- Native 라이브러리/안드로이드 런타임계층 - 상대적으로 작은 용량의 기억장치와 저전력의 CPU라 원시 코드로 컴파일
- 프레임워크 계층 - 자바 프레임워크 API계층이라고도하며 어플리케이션 계층과 프레임워크 아래의 계층들과 소통할 수 있도록 해주는 중간다리 역할
- 어플리케이션 계층 - 사용자에게 보여지는 부분
Q3. 안드로이드에서 AVD가 무엇인지 설명하시오.
AVD는 android virtual device의 약자로 안드로이드 가상 기기라는 뜻, 컴퓨터 속에 가상의 스마트폰 기기를 하나 만들어서 실행해줌
Q4. 객체지향 프로그램에서 오버로딩과 오버라이딩을 설명하시오.
오버로딩은 같은 메서드를 여러개 가지면서 매개변수의 유형과 개수가 달라짐.
오버라이딩은 상위 클래스가 가지고있는 메서드를 하위 클래스가 재정의해서 사용하는것으로 메서드의 이름과 파라미터의 개수와 타입 등이 동일해야함
오버라이딩은 주로 사우이 클래스의 동작을 상속받은 하위 클래스에서 변경하기 위해 사용
결론 = 오버로딩과 오버라이딩은 메소드 이름이 모두 동일하며 오버로딩은 매개변수와 타입이 다르지만 오버라이딩은 동일, 오버로딩은 리턴타입이 상관없지만 오버라이딩은 동일해야함
Q5. 안드로이드 앱 개발 구성 요소는 무엇인지 나열하고 각 구성 요소를 설명하시오.
- 에뮬레이터 혹은 디바이스 emulator or device - 안드로이드 스튜디오에서 개발한 앱을 테스트
- adb(android debug bridge)프로그램 - 안드로이드 스튜디오를 실행하면 자동으로 실행, 에뮬레이터/디바이스와 연결 관리
- adbd(android debug bridge daemon) 프로그램 - 안드로이드 디바이스 내부에서 adb 서버와의 통신을 담당
- run 메뉴 - 안드로이드 플러그인 → adb서버 → adbd → 에뮬레이터/디바이스로 전송되어 실행
- debugger 디버거 - 프로그램의 버그를 찾기 위한 소프트웨어 앱을 직접 사용 또는 안드로이드 스튜디오에 내장
Q6. 안드로이드 앱 개발 구성 요소로 디바이스 내부에서 adb 서버와의 통신을 담당하는 프로그램은 무엇인가?
⇒ adbd 프로그램
Q7. 객체지향 프로그래밍에서 java는 다중 상속을 지원하지 않지만, 이것을 사용해서 다중 상속과 비슷하게 작성할 수 있다. 클래스에서 이것을 사용할 때 implements 키워드 사용 가능한 것은 무엇이라 하는가?
⇒ 인터페이스
Q8. 안드로이드 프로젝트를 구성하는 프로젝트 폴더에서도 빌드 시스템과 관련된 파일이 모여있는 폴더는 무엇인가?
⇒ Gradle Scripts 폴더
Q9. 뷰에서 패딩(padding)과 마진(margin)의 차이점을 설명하시오.
padding - 위젯의 경계선으로부터 위젯 안의 요소가 떨어지도록 설정하는 것
margin - 위젯과 위젯 사이에 여유를 두도록 설정하는 것
Q10. 안드로이드 4대 컴포넌트인 service와 content provider를 각 각 설명하시오.
Service - 액티비티와 상관없이 백그라운드에서 동작하는 컴포넌트
Content Provider - 응용프로그램 사이에 데이터를 상호 공유하기 위한 컴포넌트