이 페이지에서

Qt Quick Android용

Qt Quick Android 개요

이 접근 방식의 기본 원칙은 앱이 비교적 일반적인 Android 앱의 특성을 유지할 수 있도록 Qt Qml API를 내장된 방식으로 제공하는 것입니다. 이 접근 방식은 Qt 애플리케이션의 크로스 플랫폼 특성을 활용하는 대신, 보다 표준적인 Android 중심의 방식을 채택합니다. 기존 Android 애플리케이션에 유용한 Qt 기능을 추가하는 데 가장 적합합니다.

  • Android가 Qt 콘텐츠를 생성하고 제어합니다.
  • 개발에는 Qt Tools for Android Studio 플러그인이 설치된 Android Studio가 사용됩니다.
  • Qt 콘텐츠의 경우 Qt Creator 또는 Qt Design Studio 이 사용됩니다.
  • 주요 언어는 Java와 Kotlin이며, 3D 콘텐츠와 같은 특정 부분에는 QML이 사용됩니다.
  • 원하는 Android API는 무엇이든 사용할 수 있지만, Java 코드와 QML 간의 통신을 더 세밀하게 제어하고 싶다면 JNI를 사용할 수 있습니다. 자세한 내용은 QJniObject 및 QJniEnvironment 을 참조하십시오.

Qt for Android와의 차이점

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

Android용 Qt와 Android용 Qt Quick의 워크플로우 비교

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

  • Qt는 Android 앱을 생성하고 제어합니다.
  • Qt Creator, Qt Design Studio, 또는 Visual Studio를 사용할 수 있습니다.
  • 주요 언어는 C++과 QML입니다.
  • Android 관련 세부 사항은 더 숨겨져 있으며, Qt가 내부적으로 이를 처리합니다.
  • 아직 Qt API로 제공되지 않는 Android API를 사용하려면 JNI를 사용해야 합니다. QJniObject 및 QJniEnvironment 를 참조하십시오.

Qt for Android의 아키텍처에 대한 자세한 내용은 ‘Qt for Android의 작동 방식’을 참조하십시오.

Android용 Qt Quick 의 작동 방식

Qt Quick Android용 xml-ph-0000@deepl.internal는 프로젝트에서 QML 콘텐츠를 Android View로 삽입할 수 있게 해주는 Android API를 제공합니다.

Android 앱에 Qt Quick이 통합된 모습을 보여주는 아키텍처 다이어그램

API

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

Java 클래스

인터페이스

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

API 예제

Android API용 Qt Quick 에서는 main() 의 변경 사항이 필요합니다.

일반적인 Qt Quick 애플리케이션의 main.cpp 파일은 다음과 같습니다:

#include <QGuiApplication>
#include <QQmlApplicationEngine>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    QQmlApplicationEngine engine;
    QObject::connect(
        &engine,
        &QQmlApplicationEngine::objectCreationFailed,
        &app,
        []() { QCoreApplication::exit(-1); },
        Qt::QueuedConnection);
    engine.loadFromModule("MyQtQuickProject", "Main");

    return app.exec();
}

main() 에서는 QML 엔진을 생성하거나, 나중에 Qt Quick 의 뷰 API에서 처리할 QML을 로드할 필요가 없습니다. main() 에 필요한 내용은 다음과 같습니다:

#include <QGuiApplication>

int main(int argc, char *argv[])
{
    QGuiApplication app(argc, argv);

    return app.exec();
}

Android용 Qt Quick 실행 예제

Qt Quick Android API 예제는 Android Studio 프로젝트입니다.

Android용 Qt Quick API 예제는 Android Studio 프로젝트 형태로 제공됩니다. 프로젝트 폴더는 Qt 설치 위치에서 찾을 수 있습니다.

예를 들어, Windows의 기본 설치 경로에서는 다음 위치에서 찾을 수 있습니다:

C:\Qt\Examples\Qt-<patch-release-number>\platforms\android\<example-name>

이 프로젝트들은 해당 Qt 버전과 호환되는 Qt Gradle 플러그인 버전을 사용하도록 이미 구성되어 있습니다.

도구

Qt Gradle 플러그인과 Qt Tools for Android Studio 플러그인은 편리한 개발을 위해 Qt에서 제공합니다. Gradle 플러그인은 빌드 툴체인의 일부로 IDE와 별도로 사용할 수 있습니다. Qt Tools for Android Studio는 이 플러그인을 사용하여 Android Studio에서 프로젝트를 빌드합니다.

다음 단계

다음 추가 주제는 Android용 Qt Quick 에 적용됩니다:

Android Fragments with Qt Quick for Android

Android 프래그먼트에서 Qt Quick 뷰를 사용하는 방법에 대한 튜토리얼.

© 2026 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.