• 안드로이드란 무엇입니까?
    Android는 오픈 소스 운영 체제이며 주로 스마트폰, 태블릿 및 노트북에 널리 사용됩니다.
    이 운영 체제는 Linux 커널 기반입니다. 개발자는 Android 운영 체제를 사용하여 스마트폰에서 기본 및 고급 유형의 작업을 수행할 수 있는 기능 또는 프로그램을 개발합니다.
  • 최신 버전의 Android는 무엇입니까? Android의 모든 버전을 나열합니다.
    Android OS의 최신 버전은 2022년 04월에 출시된 13입니다. Android는 Google에서 개발한 모바일 운영 체제입니다. Linux 커널을 기반으로 하며 주로 스마트폰 및 태블릿과 같은 터치스크린 모바일 장치용으로 설계되었습니다.
    다른 모든 Android 버전은 sweet 또는 디저트의 이름을 따서 명명되었습니다. 다음 표는 Android 이름, 버전 및 출시 연도를 나타냅니다.
    Android NameVersionYear of Release
    Android 1.5Android Cupcake2009
    1.6Donut2009
    2.0-2.1Eclair2009
    2.2 – 2.2.3Froyo2010
    2.3 – 2.3.7Gingerbread2010
    3.0 – 3.2.6Honeycomb2011
    4.0 – 4.0.4Ice Cream Sandwich2011
    4.1 – 4.3.1Jelly Bean2012
    4.4 – 4.4.4KitKat2013
    5.0 – 5.1.1Lollipop2014
    6.0 – 6.0.1Marshmallow2015
    7.0 – 7.1.2Nougat2016
    8.0 – 8.1Oreo2017
    9.0Pie2018
    10.0Quince Tart2019. 09. 03
    11.0Red Velvet Cake2020. 09. 08
    12.0Snow Cone2021. 10. 04
    13.0티라미슈2022. 02. 10
  • 안드로이드의 기능은 무엇입니까?
    Google은 모든 사람의 모바일 환경을 개선하는 제품을 출시하여 모든 사람의 삶을 변화시켰습니다.
    Android는 장치 인터페이스의 모양을 완전히 바꾸는 배경 화면, 테마 및 실행기와 같은 다양한 기능을 제공하여 사용자의 취향과 요구 사항을 이해하는 데 도움이 됩니다.
    안드로이드에는 많은 기능이 있습니다. 일부 기능은 다음과 같습니다.
    -, 오픈 소스
    -, 사용자 정의 가능한 운영 체제
    -, 다양한 앱을 개발할 수 있습니다.
    -, 전반적인 복잡성 감소
    -, 메시징 서비스, 웹 브라우저, 스토리지(SQLite), 연결, 미디어 등을 지원합니다.
  • 구글 안드로이드 SDK란?
    Android 개발자가 앱을 개발하거나 작성하기 위해 사용하는 도구 모음입니다.
    Android 기반 휴대용 환경을 에뮬레이트하는 그래픽 사용자 인터페이스를 제공하므로 개발자가 코드를 보다 쉽게 ​​생성, 테스트 및 디버그할 수 있습니다.
    도구에는 다음이 포함됩니다.
    -, Dalvik 디버그 모니터링 서비스
    -, 안드로이드 에뮬레이터
    -, Android 자산 패키징 도구
    -, 안드로이드 디버그 브리지
  • Android의 빌드 프로세스를 설명하시겠습니까?
    Android의 빌드 프로세스에는 세 단계가 포함됩니다.
    -, 첫 번째 단계는 AAPT(Android Asset Packaging Tool)를 사용하여 리소스 폴더를 컴파일하는 것으로 구성됩니다. 이것들은 상수만 보유하는 R.java라는 단일 클래스 파일로 컴파일됩니다.
    -, 두 번째 단계에서는 Java 소스 코드를 javac를 사용하여 .class 파일로 컴파일한 다음 소프트웨어 개발 키트의 도구 중 하나인 'dx' 도구를 사용하여 Dalvik 바이트 코드로 변환해야 합니다. 최종 출력 파일은 classes.ex입니다.
    -, 세 번째이자 마지막 단계에서 Android apkbuilder는 모든 입력을 가져와서 Android 패키징 키(APK) 파일을 빌드해야 합니다.
  • Android에서 프로그래밍하는 데 사용할 수 있는 몇 가지 언어 나열하세요.
    Android에서 애플리케이션을 개발하는 데 사용할 수 있는 가장 인기 있는 프로그래밍 언어 목록
    Java : 세계에서 가장 인기 있는 프로그래밍 언어인 Java는 항상 새로운 개발자의 출발점이 되었으며 Android 개발 작업을 하는 대다수의 사람들이 사용합니다.
    Kotlin : Kotlin은 비교적 새롭고 현대적이며 안전한 객체 지향 크로스 플랫폼 프로그래밍 언어입니다. 2017년 10월 Android 스튜디오 3.0이 출시되었을 때 Kotlin이 Android의 공식 프로그래밍 언어로 발표되었습니다. 이후 Trello, Square 및 Corda와 같은 많은 인기 애플리케이션이 Kotlin으로 전환되었습니다.
    C# : 개발자는 C# 언어를 사용하여 기본 iOS 및 Android 모바일 애플리케이션을 빌드할 수 있습니다.
    Python : Python은 최근 가장 인기 있는 프로그래밍 언어 중 하나로 부상했습니다. 동적 객체 지향 프로그래밍 언어인 Python은 기계 학습에서 매우 인기가 있습니다.
    Android에서 사용할 수 있는 다른 언어는 C++, HTML5입니다.
  • Android 개발에서 사용할 수 있는 다양한 도구는 무엇입니까?
    Android SDK(소프트웨어 개발 키트) 및 가상 장치 관리자 : 이 도구는 Android 가상 장치(AVD) 및 SDK를 생성하고 처리하는 데 사용됩니다. AVD의 에뮬레이터를 통해 지원되는 SDK 버전, SD 카드의 저장 공간, 화면 해상도 및 GPS 및 터치 스크린과 같은 기타 기능을 지정할 수 있습니다.
    Android Emulator : AE는 개발 컴퓨터에서 사용할 수 있는 가상 장치 자체 내에서 프로세스를 실행하도록 설계된 Android 가상 머신의 구현입니다. 이 도구의 주요 용도는 Android 애플리케이션의 테스트 및 디버깅입니다.
    Android 디버그 브리지(ADB) : ADB는 SDK와 함께 제공되는 명령줄 디버깅 애플리케이션입니다. 개발자가 장치와 통신할 수 있도록 하고 응용 프로그램 설치 및 디버깅과 같은 작업을 용이하게 합니다.
    AAPT(Android Asset Packaging Tool) : AAPT는 배포 가능한 Android 패키지 파일 '.apk'를 빌드합니다.
  • Android 아키텍처를 설명하세요.
    Android 아키텍처는 Android 스택의 여러 계층을 참조합니다. 여기에는 운영 체제, 미들웨어 및 중요한 응용 프로그램이 포함됩니다. 아키텍처의 각 계층은 바로 위에 있는 계층에 서로 다른 서비스를 제공합니다. Android 스택의 4개 계층은 다음과 같습니다.
    Android 아키텍처는 소프트웨어 스택 구성 요소의 형태입니다.
    Linux 커널 : Linux 커널은 소프트웨어 스택의 맨 아래에 있으며 Android 아키텍처의 기초입니다. Linux 커널을 사용하여 Android는 소프트웨어의 다른 계층 간의 연결을 제공합니다. 키패드, 디스플레이, 장치 제조용 오디오 등과 같은 드라이버 개발에 도움이 됩니다.
    HAL(Hardware Abstraction Layer) : HAL은 장치 드라이버와 API 프레임워크 간의 인터페이스를 제공합니다. 하드웨어 구성 요소에 특정한 라이브러리 모듈로 구성됩니다.
    Android Runtime : Linux 커널은 여러 프로세스가 Android Runtime(ART)의 자체 인스턴스에서 실행되는 각 프로세스를 실행할 수 있도록 멀티태스킹 실행 환경을 제공합니다. Android에는 Dalvik VM 전용 라이브러리, Java 상호 운용성 라이브러리, Android 라이브러리 및 C/C++ 라이브러리와 같은 핵심 런타임 라이브러리가 있습니다.
    Application Framework (Java API Framework) : API를 통해 전체 안드로이드 기능을 사용할 수 있습니다. Activity Manager, Resource Manager, Notification Manager 등과 같은 여러 서비스로 구성되어 Android 애플리케이션이 실행되는 환경을 구성합니다.
    애플리케이션 : Android 애플리케이션은 최상위 계층이며 SMS, 브라우저, 연락처 등과 같은 모든 유형의 내장 애플리케이션이 이 최상위 계층에 포함됩니다. 게임 등과 같이 사용자가 설치한 타사 응용 프로그램도 포함됩니다.
  • Android 애플리케이션 아키텍처를 설명하시겠습니까?
    Android 애플리케이션 아키텍처에는 다음 구성 요소가 있습니다. 그것들은 다음과 같습니다:
    서비스(Services) : 백그라운드 기능을 수행합니다.
    Intent : 액티비티와 데이터 전달 메커니즘 간의 상호 연결을 수행합니다.
    리소스 외부화(Resource Externalization) : 문자열 및 그래픽
    알림(Notification) : 빛, 소리, 아이콘, 알림, 대화상자, 토스트
    콘텐츠 제공자(Content Providers) : 애플리케이션 간에 데이터를 공유합니다.
  • APK 형식이란 무엇입니까?
    APK 파일 또는 Android 애플리케이션 패키지는 Google의 Android 운영 체제에 애플리케이션 소프트웨어 및 미들웨어를 배포하고 설치하는 데 사용되는 압축 파일 형식입니다.
    파일의 확장자는 .apk이며 모든 애플리케이션 코드, 리소스 파일, 인증서 및 기타 파일이 압축되어 있습니다.
  • Android에서 조각(fragment)이란 무엇입니까?
    Android의 프래그먼트는 다음과 같습니다.
    -, 프래그먼트에는 고유한 라이프 사이클 콜백이 있는 고유한 레이아웃과 동작이 있습니다.
    -, 활동이 실행되고 여러 활동에서 사용되는 동안 활동에서 프래그먼트를 추가하거나 제거할 수 있습니다.
    -, 여러 프래그먼트를 단일 활동에서 결합하여 다중 창 UI를 구축할 수 있습니다.
    -, 프래그먼트 라이프 사이클은 호스트 액티비티의 라이프 사이클과 밀접하게 관련되어 있습니다. 즉, 액티비티가 일시 중지되면 액티비티에서 사용 가능한 모든 프래그먼트도 중지됩니다.
    -, Android API 버전 11의 Honeycomb 버전에서 Android API에 프래그먼트가 추가되었습니다.
  • Android에서 사용할 수 있는 몇 가지 저장 옵션을 나열하시겠습니까?
    Android에서 사용할 수 있는 일부 저장 옵션은 다음과 같습니다.
    -, 공유 기본 설정
    -, 내부 저장소
    -, 외부 저장소
    -, SQLite 데이터베이스
  • 모바일 애플리케이션 테스팅과 모바일 테스팅의 차이점은 무엇입니까?
    모바일 앱 테스팅은 주로 애플리케이션의 기능과 특징에 초점을 맞춘 장치에서 애플리케이션을 테스트하는 것입니다.
    모바일 테스트는 실제 모바일 장치를 테스트하는 것으로 통화, SMS, 연락처, 미디어 플레이어, 내장 브라우저 등과 같은 모바일 기능에 중점을 둡니다.
  • Android Framework를 정의하고 설명합니다.
    Android 프레임워크는 Android 개발자가 모바일 앱용 코드를 작성하는 데 사용하는 API 세트입니다. 여기에는 프로그래밍 코드를 작성하기 위한 메서드와 클래스가 포함되어 있습니다.
    Android 프레임워크에는 이미지 창, 텍스트 필드, 버튼 등을 생성하는 다양한 도구 세트가 포함되어 있습니다. 또한 사용자가 상호 작용하는 "활동"과 백그라운드에서 실행되는 프로그램인 "서비스"도 포함합니다. Intents, Broadcast Receivers, Content Providers 등과 같은 다양한 구성 요소의 패키지입니다.
  • Android 활동의 수명 주기는 무엇입니까?
    사용자는 다른 화면이나 앱 사이를 탐색하며 수명 주기에서 다양한 상태를 거칩니다. 따라서 활동 수명 주기는 android.app.Activity 클래스의 7가지 다른 메서드로 구성됩니다.
    onCreate() : 이 상태에서 액티비티가 생성됩니다.
    onStart() : 이 콜백 메서드는 액티비티가 사용자에게 표시될 때 호출됩니다.
    onResume() : 액티비티가 포그라운드에 있고 사용자가 액티비티와 상호작용할 수 있습니다.
    onPause() : 활동이 다른 활동에 의해 부분적으로 가려졌습니다. 전경에 있는 다른 활동은 반투명합니다.
    onStop() : 활동이 완전히 숨겨져 사용자에게 표시되지 않습니다.
    onDestroy() : 액티비티가 소멸되고 메모리에서 제거됩니다.
  • Android에서 인텐트를 정의합니다. 다른 유형의 인텐트는 무엇입니까?
    인텐트는 작업을 수행하려는 "intention"입니다. 인텐트는 다른 앱 구성 요소에서 작업을 요청하는 데 사용할 수 있는 메시징 개체입니다.
    메서드는 다른 구성 요소에 의도를 전달하는 데 사용됩니다.
    context.startActivity() : To start an activity
    context.startService() : To start a service
    context.sendBroadcast() : To deliver a broadcast
              

    인텐트 유형:
    Implicit Intent : Implicit Intent는 대상 컴포넌트가 Intent에 정의되어 있지 않고 Android 시스템이 Intent 데이터를 기반으로 등록된 컴포넌트를 평가해야 하는 경우입니다.
    Explicit Intent : 명시적 의도는 응용 프로그램이 의도에서 직접 대상 구성 요소를 정의하는 경우입니다.
  • Activities이란 무엇을 의미합니까?
    Activities은 사용자가 보고 상호 작용할 수 있는 모바일 앱의 일부입니다.
    예를 들어 새 SMS 만들기, 주소록에서 연락처 추가, SMS 본문에 내용 쓰기, 선택한 연락처로 SMS 보내기 등과 같은 여러 Activities이 있는 SMS 앱을 여는 경우
    Activity은 다음을 추적합니다.
    -, 사용자가 현재 앱에서 무엇을 찾고 있는지 추적합니다.
    -, 사용자가 진행 중인 프로세스와 이전 프로세스 간에 전환할 수 있도록 이전에 사용된 프로세스를 추적합니다.
    -, 사용자가 이전 상태로 돌아갈 수 있도록 프로세스를 종료하는 데 도움이 됩니다.
    activity은 아래와 같이 Activity 클래스의 하위 클래스로 구현됩니다.
                Public class MyActivity extends Activity
                {
    
                }
              
  • 서비스란 무엇을 의미합니까?
    서비스(Service)는 백그라운드에서 실행되고 독립적으로 작동하는 Android 구성 요소입니다. 사용자 인터페이스를 제공하지 않습니다.
    서비스가 백그라운드에서 실행되고 있지만 사용자는 다른 앱에서 작업을 계속할 수 있습니다. 대부분의 경우 사용자는 백그라운드에서 실행 중인 서비스를 인식하지 못합니다. 이러한 서비스를 통해 시스템은 사용자의 진행 중인 작업을 중단하지 않고 프로세스를 종료할 수 있습니다.
    서비스는 Service 클래스의 하위 클래스로 구현됩니다.
                Public class MainService extends Service
                {
    
                }
              
  • Android에서 ANR이란 무엇입니까?
    ANR은 애플리케이션이 응답하지 않음을 나타냅니다.
    애플리케이션이 한 번에 너무 많은 기능을 수행할 때마다 그리고 갑자기 사용자 동작에 오랜 시간 동안 갑자기 응답하지 않는 경우 Android 플랫폼에서 표시되는 알림 또는 팝업입니다.
  • Android 플랫폼에서 지원하는 대화 상자는 무엇입니까?
    Android는 4가지 유형의 대화 상자를 지원합니다.
    -, AlertDialog : 최대 3개의 버튼이 있으며, 때때로 AlertDialog에는 체크박스와 요소 선택을 위한 라디오 버튼이 포함됩니다.
    -, ProgressDialog : 진행률 표시줄 또는 휠을 표시합니다.
    -, TimePickerDialog : 이 대화 상자를 사용하여 사용자가 시간을 선택합니다.
    -, DatePickerDialog : 이 대화 상자를 사용하여 사용자는 날짜를 선택합니다.
  • ADB란 무엇입니까?
    Android 디버그 브리지(ADB)는 셸 명령을 수행하는 명령줄 도구입니다.
    ADB는 에뮬레이터 포트 간의 직접 통신에 사용됩니다. 개발자에게 에뮬레이터 인스턴스 간의 통신을 직접 제어할 수 있습니다.
  • 오리엔테이션이란?
    방향성은 오늘날 스마트폰의 핵심 기능입니다. 가로 또는 세로 모드 사이에서 화면을 회전하는 기능이 있습니다.
    Android는 아래와 같이 두 가지 유형의 화면 방향을 지원합니다.
    -, Portrait : 장치가 세로로 정렬된 경우.
    -, Landscape : 장치가 가로로 정렬된 경우.
    setOrientation()은 화면 정렬을 설정할 수 있는 메서드입니다. HORIZONTAL과 VERTICAL은 setOrientation() 메서드에서 설정할 수 있는 두 가지 값입니다.
    표시 방향이 변경될 때마다 즉, 가로에서 세로로 또는 그 반대로 변경되면 활동의 onCreate() 메서드가 시작됩니다.
    기본적으로 Android 모바일 장치의 방향이 변경되면 현재 활동이 소멸되고 동일한 활동이 새 디스플레이 방향으로 다시 생성됩니다.
    Android 개발자는 AndroidManifest.xml 파일에서 방향을 정의합니다.
  • AIDL이란 무엇입니까?
    Android 플랫폼에는 한 프로그램에서 다른 프로그램으로 메소드 사용을 용이하게 하는 원격 메소드가 있습니다. 원격 메서드를 만들고 구현하는 첫 번째 단계는 AIDL에서 통신 인터페이스를 정의하는 것입니다.
    AIDL은 Android 인터페이스 정의 언어의 약자입니다. 클라이언트와 서비스 간의 통신을 용이하게 합니다. 또한 프로세스 간 통신을 통해 정보를 전달합니다.
    프로세스 간 통신을 위해 데이터는 Android 플랫폼에서 쉽게 이해할 수 있는 덩어리로 나뉩니다.
  • AIDL에서 지원하는 데이터 유형은 무엇입니까?
    AIDL에서 지원하는 데이터 유형은 다음과 같습니다.
    -, String
    -, List
    -, Map
    -, charSequence
    -, Java data types such as INT, Long, Char, Boolean
  • AndroidManifest.xml 파일을 설명하고 이것이 왜 필요한가요?
    모든 애플리케이션은 루트 디렉토리에 AndroidManifest.xml 파일이 있어야 합니다.
    여기에는 앱에 대한 정보가 포함되어 있으며 Android 시스템에 동일한 정보를 제공합니다.
    정보에는 패키지 이름, 활동, 서비스, 브로드캐스트 수신기, 콘텐츠 제공자와 같은 Android 구성 요소가 포함됩니다. 모든 Android 시스템에는 앱 코드를 실행하기 전에 이 정보가 있어야 합니다.
    AndroidManifest.xml 파일은 다음 작업을 수행합니다.
    -, Java 패키지에 이름을 제공하며 이 이름은 응용 프로그램의 고유 식별자입니다.
    -, Activity, Services, Content Providers 등을 포함하는 응용 프로그램의 다양한 구성 요소를 설명합니다. 또한 이러한 구성 요소를 구현하는 클래스를 정의합니다.
    -, 애플리케이션을 보호할 책임이 있으며 앱의 보호된 부분에 대한 접근 권한을 선언합니다.
    -, 또한 애플리케이션에서 사용할 Android API를 선언합니다.
    -, 여기에는 응용 프로그램에 사용 및 링크된 라이브러리 파일 세부 정보가 포함됩니다.
  • 모든 Android 프로젝트의 4가지 필수 항목은 무엇인가요?
    4가지 필수 항목은 다음과 같습니다.
    -, AndroidManifest.xml
    -, build.xml
    -, bin/
    -, src/
    -, res/
    -, assets/
  • Armv7은 무엇입니까?
    ARMv7은 로드/저장 메모리 모델을 사용하는 RISC(Reduced Instruction Set Computer) 프로세서입니다. 메모리 로드/저장 모드는 메모리 액세스가 특정 명령으로 제한됨을 의미합니다.
    ARMV7 프로세서는 ARM(Advanced RISC Machines)에서 개발한 RISC 아키텍처를 기반으로 하는 CPU 제품군입니다.
  • NDK 란 무엇입니까?
    NDK는 도구 모음인 Native Development Kit의 약자입니다.
    Android에서 C 및 C++ 코드를 사용할 수 있습니다.
    또한 기본 활동을 관리하고 센서 및 터치 입력과 같은 물리적 장치 구성 요소에 액세스하는 데 사용할 수 있는 플랫폼 라이브러리를 제공합니다.
  • Android에서 "Emulator"란 무엇입니까?
    Android Emulator는 시스템에서 Android 기기를 모방합니다.
    따라서 사용자는 모든 물리적 장치를 소유하지 않고도 다양한 장치 및 Android API 수준에서 애플리케이션을 확인할 수 있습니다.
    에뮬레이터는 실제 Android 기기의 기능 대부분을 제공합니다.
  • onCreate()와 onStart()의 차이점은 무엇입니까?
    onCreate()와 onStart()의 주요 차이점은 다음과 같습니다.
    onCreate()는 활동이 생성될 때 호출됩니다.
    즉, 시작되거나 시작됩니다. (또한 방향이 변경되면 트리거됩니다.) 프로세스가 종료되면 다시 호출되고 로 반환됩니다.
    반면 onStart()는 시작 시 onCreate() 다음에 호출됩니다.