Qt Quick Android용

Qt Quick Android용 개요

이 접근 방식의 기본은 앱이 비교적 일반적인 안드로이드 앱으로 유지될 수 있도록 임베디드 방식으로 Qt Qml API를 제공하는 것입니다. 이 접근 방식은 Qt 애플리케이션의 크로스 플랫폼 특성을 활용하는 대신 보다 표준적인 안드로이드 중심 접근 방식을 제공합니다. 기존 안드로이드 애플리케이션에 바람직한 Qt 기능을 추가하는 데 가장 적합합니다.

  • 안드로이드는 Qt 콘텐츠를 생성하고 제어합니다.
  • 개발에는 안드로이드 스튜디오용 Qt 도구 플러그인이 포함된 안드로이드 스튜디오가 사용됩니다.
  • Qt 콘텐츠의 경우 Qt Creator 또는 Qt Design Studio 이 사용됩니다.
  • 주요 언어는 Java와 Kotlin이며, 3D 콘텐츠와 같은 특정 부분에는 QML이 사용됩니다.
  • 원하는 모든 Android API를 사용할 수 있지만 Java 코드와 QML 간의 통신을 더 잘 제어하려면 JNI를 사용할 수 있습니다. QJniObjectQJniEnvironment 을 참조하세요.

안드로이드용 Qt와 다른 점

이 두 접근 방식의 가장 두드러진 차이점은 프로젝트 구조입니다. 안드로이드용 Qt 애플리케이션은 안드로이드 또는 다른 플랫폼용으로 빌드할 수 있는 CMake 프로젝트인 반면, Qt Quick 안드로이드용 프로젝트는 QML 콘텐츠를 포함하고 안드로이드용으로만 빌드할 수 있는 안드로이드 프로젝트입니다.

안드로이드용 Qt 접근 방식의 주요 목적은 앱의 아키텍처와 상용구 코드에 대한 대부분의 작업을 Qt가 처리하도록 하고 사용자는 콘텐츠에 집중할 수 있도록 하는 것입니다. 이 접근 방식은 완벽하고 안정적인 크로스 플랫폼 접근 방식을 제공합니다.

  • Qt는 안드로이드 앱을 생성하고 제어합니다.
  • Qt Creator, Qt Design Studio또는 Visual Studio를 사용할 수 있습니다.
  • 주요 언어는 C++와 QML입니다.
  • 안드로이드에 대한 세부 사항은 더 숨겨져 있으며, Qt는 이를 내부적으로 처리합니다.
  • 아직 Qt API로 제공되지 않는 안드로이드 API를 사용하려면 JNI를 사용해야 합니다. QJniObjectQJniEnvironment 을 참조하세요.

안드로이드용 Qt의 아키텍처에 대한 자세한 내용은 안드로이드용 Qt의 작동 방식을 참조하십시오.

Android용 Qt Quick 작동 방식

Qt Quick 는 프로젝트에 안드로이드 뷰로 QML 콘텐츠를 삽입할 수 있는 안드로이드 API를 제공합니다.

API

다음은 Android 앱에서 QML을 임베드하는 데 사용할 공용 Java 및 Kotlin API입니다.

이 클래스들을 사용하려면 build.gradle 파일에 다음을 포함시켜야 합니다:

packagingOptions.jniLibs.useLegacyPackaging true

참고: QML 컴포넌트의 Java 코드 생성에 대한 자세한 내용은 QT_ANDROID_GENERATE_JAVA_QTQUICKVIEW_CONTENTS CMake 변수를 참조하세요.

API 예제

툴링

Qt Gradle 플러그 인과 안드로이드 스튜디오용 Qt 도구 플러그인은 손쉬운 개발을 위해 Qt에서 제공합니다. Gradle 플러그인은 빌드 툴체인의 일부로 IDE와 독립적으로 사용할 수 있습니다. 안드로이드 스튜디오용 Qt 도구는 이 플러그인을 사용하여 안드로이드 스튜디오에서 프로젝트를 빌드합니다.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.