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를 사용하여 개발을 시작할 수 있도록 하는 다음 단계를 제공합니다.

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

네이티브 Android

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

플랫폼 간

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

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

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

플랫폼 간 프레임워크 선택

Xamarin Native(Xamarin.Android)

  • UI 코드: Android Designer를 사용한 XML 및 재질 테마
  • 논리 코드: C# 또는 F#
  • 일부 기본 Android 요소를 계속 사용할 수 있지만 다른 플랫폼(iOS, Windows)에 대한 코드 기반 재사용에 좋습니다.
  • UI 코드가 아닌 논리 코드만 플랫폼 간에 공유됩니다.
  • 디바이스별 사용자 인터페이스가 있는 더 복잡한 앱에 적합합니다.

Xamarin Forms(Xamarin.Forms)

  • UI 코드: XAML 및 .NET(Visual Studio 포함)
  • 논리 코드: C#
  • Android, iOS 및 Windows 디바이스 앱에서 논리 및 UI 코드의 약 60~90%를 공유합니다.
  • Button, Label, Entry, ListView, StackLayout, Calendar, TabbedPage 등과 같은 일반적인 사용자 컨트롤을 사용합니다. 단추를 만들고 Xamarin Forms는 바인딩 라이브러리를 사용하여 C#에서 Java 또는 Swift 코드를 호출하는 각 플랫폼의 기본 단추를 호출하는 방법을 알아냅니다.
  • 내부 또는 LOB(사업 부문) 앱, 프로토타입 또는 MVP와 같은 간단한 앱에 적합합니다. 간단한 사용자 인터페이스를 사용하여 다소 표준적이거나 일반적으로 보일 수 있는 모든 앱.

React Native

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

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용 게임을 개발하는 또 다른 일반적인 경로는 게임 엔진을 사용하는 것입니다. Unity with Visual Studio, Unreal Engine, MonoGame with Xamarin, UrhoSharp with Xamarin, SkiaSharp with Xamarin.Forms CocoonJS, App Game Kit, Fusion, Corona SDK, Cocos 2d와 같은 많은 무료 오픈 소스 엔진을 사용할 수 있습니다.

다음 단계