안드로이드 앱의 개발 환경을 준비하고 가상·실제 기기에서 실행하는 데 필요한 공식 자료를 모았습니다. SDK 구성 요소, 기기 제어, 버전별 호환성, 권한 요청을 나누어 살펴볼 수 있습니다.
PC에서 안드로이드 가상 기기를 설치·실행하는 과정은 Android Emulator와 AVD(Android Virtual Device)를 기준으로 정리했습니다. AVD는 안드로이드 버전과 하드웨어 특성을 담은 가상 기기 설정이며, adb는 실행 중인 에뮬레이터나 실제 기기를 제어하는 도구입니다.
SDK 구성과 개발 환경 설치
-
Android SDK 명령줄 도구 구성 — Android Developers
SDK의 Command-Line Tools·Build Tools·Platform Tools·Emulator 패키지와 각 도구의 역할을 설명합니다.
-
Android Studio 설치 — Android Developers
Windows·macOS·Linux·ChromeOS의 요구 사항과 Android Studio 설치·초기 설정 과정을 안내합니다.
-
IDE와 SDK 도구 업데이트 — Android Developers
SDK Manager에서 플랫폼·도구·시스템 이미지 등 필요한 패키지를 설치하고 업데이트하는 방법을 설명합니다.
-
SDK 환경 변수 — Android Developers
ANDROID_HOME과 도구 검색 경로, 에뮬레이터 관련 환경 변수를 설정하고 기존ANDROID_SDK_ROOT와의 차이를 확인할 수 있습니다. -
Android 빌드의 Java 버전 — Android Developers
Gradle 실행용 JDK, Java 도구 모음, 소스·바이트코드 버전과 Android API 지원 범위를 구분합니다.
adb 연결·앱 설치·진단
-
Android Debug Bridge(adb) — Android Developers
adb devices·adb -s를 이용한 기기 선택, APK 설치, shell·파일 전송과 USB·무선 디버깅 연결을 설명합니다. -
실제 기기에서 앱 실행 — Android Developers
개발자 옵션·USB 디버깅·컴퓨터 연결 승인과 운영체제별 연결 준비, 기기 인식 문제 해결을 안내합니다.
-
Logcat 명령줄 도구 — Android Developers
adb logcat으로 앱·시스템 로그를 읽고 태그·우선순위·출력 형식에 따라 필요한 기록을 찾는 방법을 설명합니다. -
adb shell dumpsys로 시스템 서비스 상태와 입력·메모리·네트워크·배터리 정보를 진단하는 방법을 설명합니다.
안드로이드 VM: AVD 생성과 에뮬레이터 실행
-
가상 기기 생성·관리 — Android Developers
Device Manager에서 하드웨어 프로필·API 수준·시스템 이미지를 선택해 AVD를 만들고, Google APIs·Google Play·AOSP 이미지의 서비스 포함 여부와 root 지원 차이를 확인할 수 있습니다.
-
Android Emulator에서 앱 실행 — Android Developers
실행 요구 사항을 확인하고 AVD를 선택해 앱을 실행하며 가상 기기의 화면·입력·기본 동작을 사용하는 과정을 안내합니다.
-
에뮬레이터 하드웨어 가속 — Android Developers
CPU·시스템 이미지의 아키텍처와 GPU·VM 가속을 설명하고 Windows의 WHPX, macOS의 Hypervisor.Framework, Linux의 KVM 설정을 안내합니다.
-
Android CLI 개요와 설치 — Android Developers
새 CLI의 설치·SDK 설정·지원 범위를 설명하며, Windows의
android emulator비활성화와 PowerShell 다운로드 미지원 등 알려진 제한도 안내합니다. -
android emulator 명령 — Android Developers
새 Android CLI에서 가상 기기를 생성하고 시작·중지·조회하는 하위 명령을 설명합니다.
-
기존 emulator 명령줄 실행 — Android Developers
emulator -list-avds·emulator -avd와 시작 옵션을 설명하며, 기존 도구의 deprecated 상태와 새android emulator명령으로의 전환을 안내합니다. -
Android Emulator 네트워크 — Android Developers
가상 기기의 네트워크 구성과 호스트·다른 에뮬레이터 연결, 프록시·네트워크 조건 설정 자료로 연결합니다.
SDK 도구의 주요 변화와 버전 구분
-
android sdk 명령 — Android Developers
새 Android CLI에서 SDK 패키지를 조회·설치·업데이트·제거하는 명령을 설명합니다.
-
기존 sdkmanager와 전환 안내 — Android Developers
기존 SDK 패키지 관리 명령과 버전 선택 방법을 설명하고, deprecated로 분류된
sdkmanager대신android sdk를 사용하도록 안내합니다. -
기존 avdmanager와 전환 안내 — Android Developers
기존 AVD 생성·조회·이동·삭제 명령을 설명하고, deprecated로 분류된
avdmanager대신 새 Android CLI를 사용하도록 안내합니다. -
SDK Platform Tools 릴리스 노트 — Android Developers
adb·fastboot의 버전별 변경·오류 수정을 확인하고, Android OS의 API 수준과 별도로 갱신되는 도구 버전을 살펴볼 수 있습니다.
-
Android Gradle Plugin 릴리스 노트 — Android Developers
AGP의 변경 사항과 지원 API 수준, Gradle·JDK·Build Tools의 호환 버전을 확인할 수 있습니다.
API 수준·빌드 설정과 앱 호환성
compileSdk는 빌드에서 사용할 API, minSdk는 설치를 지원할 최소 안드로이드 버전, targetSdk는 앱이 대응하는 플랫폼 동작의 기준을 지정합니다.
-
Android 빌드 구성 — Android Developers
Gradle 설정에서
compileSdk·minSdk·targetSdk의 역할과 마이너 API 수준, 빌드 유형·제품 버전·서명을 구분합니다. -
기기 호환성 개요 — Android Developers
API 수준·하드웨어 기능·화면 구성에 따른 앱의 설치 조건과 실행 시 기능 확인 방법을 설명합니다.
-
호환성 프레임워크 도구 — Android Developers
개발자 옵션이나 adb로 개별 동작 변경을 켜고 끄면서 target SDK 변경의 영향을 시험하는 방법을 안내합니다.
-
Android 15 기능과 변경 사항 — Android Developers
새 API와 모든 앱에 적용되는 변경, Android 15 이상을 대상으로 하는 앱의 동작 변경을 구분해 제공합니다.
-
Android 16 기능과 변경 사항 — Android Developers
화면 배치·뒤로 가기·백그라운드 작업·건강 정보 권한 등 변경 사항과 적용 대상을 확인할 수 있습니다.
-
Android 17 기능과 변경 사항 — Android Developers
새 API와 보안·개인정보·연결 기능의 변화, target SDK에 따라 적용되는 동작 변경 자료를 제공합니다.
앱 샌드박스와 권한 체계
-
앱별 UID·프로세스 분리와 커널 수준의 격리, SELinux 등을 통해 다른 앱·시스템 자원 접근을 제한하는 구조를 설명합니다.
-
Android 권한 개요 — Android Developers
설치 시 부여되는 권한, 실행 중 요청하는 런타임 권한, 별도 설정이 필요한 특별 권한의 차이를 설명합니다.
-
permission 선언과 protectionLevel — Android Developers
normal·dangerous·signature등 권한 보호 수준과 앱이 자체 권한을 정의하는 방법을 설명합니다. -
런타임 권한 요청 — Android Developers
매니페스트 선언·현재 권한 확인·필요성 설명·요청 결과 처리와 거부·일회성 허용·권한 회수에 대응하는 흐름을 안내합니다.
-
다른 앱 위에 표시하기 같은 특별 접근 권한을 일반 런타임 요청과 구분하고 설정 화면에서 허용 여부를 확인하는 방법을 설명합니다.
권한·저장소·실행 정책의 변화
-
Android 11 저장소 변경 — Android Developers
Android 10·11의 범위 지정 저장소(scoped storage) 전환, 다른 앱의 디렉터리 접근 제한과 기존 저장소 권한의 변화를 설명합니다.
-
Bluetooth 권한 — Android Developers
Android 12 이상을 대상으로 할 때의
BLUETOOTH_SCAN·CONNECT·ADVERTISE권한과 이전 버전·위치 권한 처리의 차이를 설명합니다. -
알림 런타임 권한 — Android Developers
Android 13의
POST_NOTIFICATIONS도입, 신규 설치·업그레이드·거부 상태의 차이와 adb를 이용한 권한 상태 테스트를 설명합니다. -
사진·동영상의 일부 접근 허용 — Android Developers
Android 14에서 사용자가 선택한 사진·동영상만 허용하는 접근 방식과 전체·일부·거부 상태에 대응하는 방법을 설명합니다.
-
포그라운드 서비스 변경 사항 — Android Developers
안드로이드 버전별 포그라운드 서비스 시작 조건, 서비스 유형·권한과 실행 시간 제한의 변화를 모아 제공합니다.
-
16 KB 메모리 페이지 크기 지원 — Android Developers
Android 15부터 지원하는 16 KB 페이지 환경에 맞춰 네이티브 라이브러리·APK 정렬을 확인하고 에뮬레이터·실제 기기에서 시험하는 방법을 설명합니다.
-
Android 17 대상 앱의 동작 변경 — Android Developers
Android 17 이상을 대상으로 하는 앱의 로컬 네트워크 접근 권한 등 개인정보·보안·실행 동작의 변경을 설명합니다.