Windows에서 네이티브 Android 개발 시작하기
이 가이드에서는 Windows를 사용하여 네이티브 Android 애플리케이션 만들기를 시작합니다. 플랫폼 간 솔루션을 선호하는 경우 Windows에서 Android 개발 개요에서 몇 가지 옵션에 대한 간략한 설명을 참조하세요.
네이티브 Android 앱을 만드는 가장 간단한 방법은 Java 또는 Kotlin과 함께 Android Studio를 사용하는 것이지만, 특정 목적이 있는 경우 C 또는 C++를 Android 개발용으로 사용할 수도 있습니다. Android Studio SDK 도구는 코드, 데이터 및 리소스 파일을 보관 Android 패키지인 .apk 파일로 컴파일합니다. APK 파일 하나에 Android 앱의 모든 콘텐츠가 포함되며 이 파일은 Android 지원 디바이스에서 앱을 설치하는 데 사용하는 파일입니다.
Android Studio는 Google의 Android 운영 체제에 사용되는 공식 통합 개발 환경입니다. 최신 버전의 Windows용 Android Studio를 다운로드하세요.
- .exe 파일을 다운로드 한 경우(권장) 파일을 두 번 클릭하여 시작합니다.
- .zip 파일을 다운로드한 경우 ZIP 압축을 풀고 android-studio 폴더를 Program Files 폴더에 복사한 다음, android-studio > bin 폴더를 열고 studio64.exe(64비트 머신인 경우) 또는 studio.exe(32비트 머신인 경우)를 시작합니다.
Android Studio 설치 마법사의 지시에 따라 권장 SDK 패키지를 설치합니다. 새 도구 및 기타 API를 사용할 수 있게 되면 Android Studio에서 팝업을 통해 알려 줍니다. 또는 도움말>업데이트 확인을 선택하여 업데이트를 확인할 수 있습니다.
파일>새로 만들기>새 프로젝트를 선택합니다.
프로젝트 선택 창에서 다음 템플릿 중에 선택할 수 있습니다.
기본 활동: 앱 표시줄, 부동 작업 단추 1개와 레이아웃 파일 2개(하나는 작업용, 다른 하나는 텍스트 콘텐츠 구분용)가 있는 간단한 앱을 만듭니다.
빈 활동: 샘플 텍스트 콘텐츠를 사용하여 빈 활동과 단일 레이아웃 파일을 만듭니다.
아래쪽 탐색 활동: 활동에 대한 표준 아래쪽 탐색 모음을 만듭니다. 이에 대한 자세한 내용은 Google에서 제공하는 Material Design 지침의 Bottom Navigation Component 섹션을 참조 하세요.
템플릿은 일반적으로 신규 및 기존 앱 모듈에 활동을 추가하는 데 사용됩니다. 예를 들어 앱 사용자의 로그인 화면을 만들려면 로그인 활동 템플릿을 사용하여 활동을 추가합니다. 활동 선택 및 템플릿의 코드를 추가하는 방법에 대한 자세한 내용은 Google에서 제공하는 Android 개발자 가이드를 참조하세요.
참고
Android 운영 체제는 구성 요소라는 개념을 기반으로 하며 활동 및 의도를 사용하여 상호 작용을 정의합니다. 활동은 사용자가 수행할 수 있는 집중된 단일 작업을 나타냅니다. 활동은 보기 클래스 기반의 클래스를 사용하여 사용자 인터페이스를 빌드할 수 있는 창을 제공합니다. Android 운영 체제는 onCreate()
, onStart()
, onResume()
, onPause()
, onStop()
및 onDestroy()
의 6가지 콜백을 통해 정의된 활동의 수명 주기가 있습니다. 활동 구성 요소는 의도 개체를 사용하여 서로 상호 작용합니다. 의도는 시작할 활동을 정의하거나 수행할 작업 유형을 설명하고, 시스템은 사용자 대신 적절한 활동(다른 애플리케이션의 활동일 수도 있음)을 선택합니다. Google에서 제공하는 Android 개발자 가이드에서 활동, 활동 수명 주기 및 의도에 대해 자세히 알아보세요.
Java는 1991년에 언어가 되었으며, Sun Microsystems에서 개발했지만 지금은 Oracle의 소유입니다. 전 세계에서 가장 많이 사용되는 강력한 프로그래밍 언어 중 하나이며 가장 큰 지원 커뮤니티 중 하나를 보유하고 있습니다. Java는 클래스 기반이자 개체 지향적이며, 구현 종속성을 최소화하도록 설계되었습니다. 구문은 C 및 C++와 유사하지만 하위 수준 기능은 더 적습니다.
Kotlin은 2011년에 JetBrains에서 새로운 오픈 소스 언어로 처음 발표되었으며 2017년 이후부터 Java의 대안으로 Android Studio에 포함되어 있습니다. 2019년 5월에 Google은 Kotlin이 Android 앱 개발자의 기본 언어라고 발표했습니다. 덕분에 Kotlin은 새 언어이긴 하지만 탄탄한 지원 커뮤니티를 보유하고 있으며 가장 빠르게 성장하는 프로그래밍 언어 중 하나로 꼽힙니다. Kotlin은 플랫폼 간에 작동하는 정적 형식이며 Java와 완전히 상호 운용되도록 설계되었습니다.
Java는 광범위한 애플리케이션에 널리 사용되며 확인 예외, 클래스가 아닌 기본 형식, 정적 멤버, 비 전용 필드, 와일드 카드 형식, 3진 연산자 등 Kotlin에 없는 몇 가지 기능을 제공합니다. Kotlin은 Android를 위해 특별히 설계되었으며 Android에 권장되는 언어입니다. 또한 형식 시스템에서 제어하는 null 참조, 원시 형식, 고정 배열, 적절한 함수 형식(Java의 SAM 변환과 반대), 와일드 카드 없는 사용 사이트 가변성, 스마트 캐스트 등 Java에 없는 몇 가지 기능을 제공합니다. Java와 어떤 차이가 있는지 Kotlin 설명서에서 자세히 알아보세요.
애플리케이션의 최소 API 수준을 결정해야 합니다. 이 결정에 따라 애플리케이션에서 지원할 Android 버전이 결정됩니다. API 수준이 낮을수록 오래된 것이므로 일반적으로 더 많은 기기를 지원하지만, API 수준이 높을수록 최신 버전이므로 더 많은 기능을 제공합니다.
플랫폼 버전 릴리스와 관련된 디바이스 지원 분포 및 주요 기능을 보여주는 비교 차트를 열려면 선택 방법 링크를 선택합니다.
프로젝트 만들기 옵션에서 인스턴트 앱 지원 및 androidx 아티팩트 사용 확인란을 볼 수 있습니다. 인스턴트 앱 지원은 선택되어 있지 않고 androidx는 권장 기본값으로 선택되어 있습니다.
Google Play 인스턴트 앱은 사람들이 앱 또는 게임을 설치하지 않고 사용해 볼 수 있는 방법을 제공합니다. 이러한 인스턴트 앱은 Play 스토어, Google 검색, 소셜 네트워크 및 링크를 공유하는 모든 곳에 표시할 수 있습니다. 인스턴트 앱 지원 확인란을 선택하는 것은 프로젝트에 Google Play 인스턴트 개발 SDK를 포함해 달라고 Android Studio에 요청하는 것입니다. Android 개발자 가이드에서 Google Play 인스턴트 앱에 대해 자세히 알아보세요.
AndroidX 아티팩트는 새 버전의 Android 지원 라이브러리를 나타내며 Android 릴리스에 대해 이전 버전과의 호환성을 제공합니다. AndroidX는 사용 가능한 모든 패키지에 대한 문자열 androidx로 시작하는 일관적인 네임스페이스를 제공합니다.
참고
현재 AndroidX는 기본 라이브러리입니다. 이 확인란의 선택을 취소하고 이전 지원 라이브러리를 사용하려면 최신 Android Q SDK를 제거해야 합니다. 제거 방법에 대한 지침은 StackOverflow에서 Uncheck use Androidx artifacts를 참조하세요. 하지만 이전 지원 라이브러리 패키지가 해당 androidx.* 패키지에 매핑되었다는 점을 기억하세요. 모든 이전 클래스 및 빌드 아티팩트를 새 패키지로 매핑하는 전체 매핑에 대한 자세한 내용은 AndroidX로 마이그레이션을 참조하세요.
Android Studio Project 창에는 다음 파일이 포함되어 있습니다(드롭다운 메뉴에서 Android 보기를 선택해야 함).
app > java > com.example.myfirstapp > MainActivity
앱의 기본 활동 및 진입점입니다. 앱을 빌드하고 실행하면 시스템에서 이 활동의 인스턴스를 시작하고 해당 레이아웃을 로드합니다.
app > res > layout > activity_main.xml
활동의 UI(사용자 인터페이스) 레이아웃을 정의하는 XML 파일입니다. 이 파일에는 "Hello World" 텍스트를 포함하는 TextView 요소가 들어 있습니다.
app > manifests > AndroidManifest.xml
앱과 각 구성 요소의 기본적인 특징을 설명하는 매니페스트 파일입니다.
Gradle Scripts > build.gradle
이 이름을 가진 파일이 2개 있는데, 하나는 전체 프로젝트에 대한 "Project: My First App"이고, 다른 하나는 각 앱 모듈에 대한 "Module: app"입니다. 새 프로젝트에는 처음에는 하나의 모듈만 있습니다. 모듈의 build.file을 사용하여 Gradle 플러그 인이 앱을 빌드하는 방법을 제어합니다. Android 개발자 가이드에서 빌드를 구성하는 자세한 방법을 알아보세요.
Android 운영 체제는 Java 또는 Kotlin으로 작성된 애플리케이션을 지원하도록 설계되었으며, 시스템의 아키텍처에 포함된 도구를 활용합니다. Android UI 및 의도 처리와 같은 여러 시스템 기능은 Java 인터페이스를 통해서만 노출됩니다. 몇 가지 어려움이 있음에도 불구하고 Android NDK(네이티브 개발 키트)를 통해 C 또는 C++ 코드를 사용하려는 경우가 있습니다. 그 중 하나가 게임 개발입니다. 게임은 일반적으로 OpenGL 또는 Vulkan으로 작성된 사용자 지정 렌더링 논리를 사용하고 게임 개발에 초점을 맞춘 풍부한 C 라이브러리를 활용하기 때문입니다. C 또는 C++를 사용하면 디바이스의 성능을 쥐어짜서 짧은 대기 시간을 확보하거나 물리학 시뮬레이션처럼 컴퓨팅이 많은 애플리케이션을 실행하는 데 도움이 될 수 있습니다. 그러나 NDK는 대부분의 초보 Android 프로그래머에게 적합하지 않습니다. NDK를 사용해야 하는 특별한 목적이 없다면 Java, Kotlin 또는 플랫폼 간 프레임워크 중 하나를 사용하는 것이 좋습니다.
C/C++ 지원을 사용하여 새 프로젝트를 만들려면 다음을 수행합니다.
Android Studio 마법사의 프로젝트 선택 섹션에서 네이티브 C++* 프로젝트 형식을 선택합니다. 다음을 선택하고 나머지 필드를 입력하고, 다음을 다시 선택합니다.
마법사의 C++ 지원 사용자 지정 섹션에서 C++ 표준 필드를 사용하여 프로젝트를 사용자 지정할 수 있습니다. 드롭다운 목록을 사용하여 원하는 C++ 표준화를 선택합니다. 도구 체인 기본값을 선택하면 기본 CMake 설정이 사용됩니다. 마침을 선택합니다.
Android Studio가 새 프로젝트를 만든 후, 프로젝트 창에서 네이티브 원본 파일, 헤더, CMake 또는 ndk 빌드의 빌드 스크립트, 프로젝트의 일부인 미리 빌드된 라이브러리가 들어 있는 cpp 폴더를 찾을 수 있습니다.
src/main/cpp/
폴더에서 "Hello From C++"라는 문자열을 반환하는 간단한stringFromJNI()
함수를 제공하는 샘플 C++native-lib.cpp
원본 파일도 찾을 수 있습니다. 또한 모듈의 루트 디렉터리에는 네이티브 라이브러리를 빌드하는 데 필요한 CMake 빌드 스크립트CMakeLists.txt
가 있습니다.
프로젝트에 C 및 C++ 코드를 추가하는 방법에 대한 자세한 내용은 Android 개발자 가이드를 참조하세요. C++ 통합을 사용하는 Android NDK 샘플을 찾으려면 GitHub의 Android NDK 샘플 리포지토리를 참조하세요. Android에서 C++ 게임을 컴파일하고 실행하려면 Google Play Game 서비스 API를 사용합니다.
디바이스 사용자는 애플리케이션이 특정 방식으로 보이고 동작하기를 기대합니다. 사용자는 살짝 밀기, 탭, 음성 제어 등 어떤 방법을 사용하든 애플리케이션의 모양과 사용 방법에 대한 기대를 갖게 됩니다. 혼동과 불편을 줄이려면 이러한 기대 수준이 일관적이어야 합니다. Android는 시각적 패턴 및 탐색 패턴에 대한 Google Material Design 기반을 호환성, 성능 및 보안에 대한 품질 지침과 결합하는 플랫폼 및 디바이스의 기대 수준에 대한 가이드를 제공합니다.
Android 디자인 설명서에서 자세히 알아보세요.
또한 Microsoft는 Microsoft 모바일 앱의 전체 포트폴리오에서 끊김 없는 환경을 제공하기 위해 디자인 지침을 제공합니다.
Windows developer 피드백
Windows developer은(는) 오픈 소스 프로젝트입니다. 다음 링크를 선택하여 피드백을 제공해 주세요.