Windows 기반 Android 개발 개요

Android 앱 개발을 위해 Windows 10 또는 Windows 11 컴퓨터에서 개발 환경을 설정할 수 있도록 하는 가이드입니다. Android는 Google LLC의 상표입니다. Windows 운영 체제를 사용하여 Android 디바이스 및 다른 디바이스 플랫폼에서 작동하는 앱을 빌드하는 데 관심이 있는 개발자인 경우 이 가이드를 참조하세요.

또한 Android용 Windows 하위 시스템을 사용하여 Amazon Appstore를 사용하는 Windows 11 디바이스에서 실행되도록 Android 애플리케이션을 업데이트하고 테스트하는 방법을 알아볼 수 있습니다. 자세히 알아보기.

개발 환경으로서의 Windows

Windows 운영 체제를 사용하여 Android 디바이스 앱을 개발하기 위한 여러 경로가 있습니다. 이러한 경로는 기본 Android 개발, 플랫폼 간 개발Android 게임 개발의 세 가지 주요 유형으로 나뉩니다. 이 개요는 Android 앱 개발을 위해 따라야 할 개발 경로를 결정하는 데 도움이 되고 Windows를 사용하여 개발을 시작할 수 있도록 하는 다음 단계를 제공합니다.

*플랫폼 간 앱에 Xamarin을 사용한 경우 Xamarin에서 .NET MAUI로 마이그레이션을 참조하세요.

또한 이 가이드에서는 Windows를 사용하여 다음을 수행하는 방법에 대한 팁을 제공합니다.

네이티브 Android

Windows에서 기본 Android 개발은 앱이 Android(iOS 또는 Windows 디바이스가 아님)만 대상으로 한다는 것을 의미합니다. Android Studio 또는 Visual Studio를 사용하여 Android 운영 체제용으로 특별히 설계된 에코시스템 내에서 개발할 수 있습니다. 성능은 Android 디바이스에 최적화되고, 사용자 인터페이스 모양과 느낌은 디바이스의 다른 기본 앱과 일관되며, 사용자 디바이스의 모든 기능을 쉽게 액세스하고 활용할 수 있습니다. 기본 형식으로 앱을 개발하면 Android 디바이스를 위해 특별히 설정된 모든 상호 작용 패턴 및 사용자 환경 표준을 따르기 때문에 '느낌이 좋은' 앱이 될 것입니다.

플랫폼 간

플랫폼 간 프레임워크는 Android, iOS 및 Windows 디바이스 간에(대부분) 공유할 수 있는 단일 코드베이스를 제공합니다. 플랫폼 간 프레임워크를 사용하면 앱이 디바이스 플랫폼에서 동일한 모양, 느낌 및 경험을 유지하는 데 도움이 될 뿐만 아니라 업데이트 및 수정 사항의 자동 롤아웃을 통해 이점을 얻을 수 있습니다. 다양한 디바이스별 코드 언어를 이해해야 하는 대신 앱은 일반적으로 하나의 언어로 공유 코드베이스에서 개발됩니다.

플랫폼 간 프레임워크는 가능한 한 기본 앱과 유사한 모양과 느낌을 목표로 하지만 기본적으로 개발된 앱만큼 원활하게 통합되지 않으며 속도 저하 및 성능 저하로 고통받을 수 있습니다. 또한 플랫폼 간 앱을 빌드하는 데 사용되는 도구에 서로 다른 각 디바이스 플랫폼에서 제공하는 기능 중 일부가 없을 수 있으므로 잠재적으로 해결 방법이 필요할 수 있습니다.

코드베이스는 일반적으로 페이지, 단추 컨트롤, 레이블, 목록 등과 같은 사용자 인터페이스를 만들기 위한 UI 코드와, 웹 서비스 호출, 데이터베이스 액세스, 하드웨어 기능 호출 및 상태 관리를 위한 논리 코드로 구성됩니다. 평균적으로 이 중 90%를 재사용할 수 있지만 일반적으로 각 디바이스 플랫폼에 맞게 코드를 사용자 지정해야 합니다. 이 일반화는 빌드 중인 앱 유형에 따라 크게 달라지지만 의사 결정에 도움이 될 약간의 컨텍스트를 제공합니다.

플랫폼 간 프레임워크 선택

.NET MAUI

  • C#과 XAML을 사용하여 네이티브 모바일 및 데스크톱 앱을 만들기 위한 플랫폼 간 프레임워크입니다.
  • WORA(Write Once Run Anywhere) dev 경험이 가능한 단일 통합 API에서 각 네이티브 플랫폼의 모든 측면에 깊이 액세스할 수 있으며, 단일 공유 코드 베이스에서 Android, iOS, macOS 및 Windows에서 실행할 수 있는 앱을 개발합니다.
  • 플랫폼 전반에서 UI 레이아웃과 디자인을 공유합니다.
  • Xamarin.Forms의 오픈 소스 발전은 모바일에서 데스크톱 시나리오로 확장되었으며, 성능 및 확장성을 위해 UI 컨트롤도 다시 빌드되었습니다.
  • Xamarin.Android 프로젝트를 .NET MAUI로 마이그레이션

React Native

  • UI 코드: JavaScript
  • 논리 코드: JavaScript
  • React Native의 목표는 코드를 한 번 작성하고 모든 플랫폼에서 실행하는 것이 아니라 한 번 배우고(React 방식) 어디에서나 작성하는 것입니다.
  • 커뮤니티에는 Xcode 또는 Android Studio를 사용하지 않고 앱을 빌드하려는 사용자를 지원하기 위해 Expo 및 Create React Native App과 같은 도구가 추가되었습니다.
  • .NET MAUI(C#)와 마찬가지로 React Native(JavaScript)는 (Java/Kotlin 또는 Swift를 작성할 필요 없이) 네이티브 UI 요소를 호출합니다.

PWA(프로그레시브 웹앱)

  • UI 코드: HTML, CSS, JavaScript
  • 논리 코드: JavaScript
  • PWA는 웹 및 기본 앱 기능을 모두 활용할 수 있도록 표준 패턴으로 구축된 웹앱입니다. 프레임워크 없이 빌드할 수 있지만 고려해야 할 몇 가지 인기 있는 프레임워크는 IonicApache Cordova입니다.
  • PWA는 디바이스(Android, iOS 또는 Windows)에 설치할 수 있으며 서비스 작업자의 통합 덕분에 오프라인에서 작동할 수 있습니다.
  • PWA는 웹 URL만 사용하여 앱 스토어 없이 배포 및 설치할 수 있습니다. Microsoft Store 및 Google Play 스토어에서는 PWA를 나열할 수 있지만 Apple Store에서는 현재 나열하지 않고 있지만 12.2 이상을 실행하는 iOS 디바이스에는 여전히 설치할 수 있습니다.
  • 자세히 알아보려면 MDN에서 이 PWA 소개를 확인합니다.

게임 개발

게임은 일반적으로 OpenGL 또는 Vulkan으로 작성된 사용자 지정 렌더링 논리를 사용하기 때문에 Android용 게임 개발은 표준 Android 앱 개발과는 다른 경우가 많습니다. 이러한 이유로 게임 개발을 지원하는 많은 C 라이브러리를 사용할 수 있기 때문에 개발자는 Android NDK(네이티브 개발 키트)와 함께 Visual Studio가 포함된 C/C++를 사용하여 Android용 게임을 만드는 것이 일반적입니다. 게임 개발을 위한 C/C++ 시작하기.

Android 게임 개발에 대한 자세한 지침은 Android 개발자 사이트: 게임 개발 기본 사항을 참조하세요. IDE(예: Android Studio 또는 Visual Studio)를 사용하는 것뿐만 아니라 게임 엔진(예: Unity, Unreal, Defold, Godot)을 사용하는 방법에 대한 지침을 찾을 수 있습니다.

다음 단계