한국어
Qt
 

Qt 6 안드로이드용 Qt 6.2

makersweb 2021.10.02 14:50 조회 수 : 137

Qt는 계속해서 각 릴리스에서 Android 지원을 개선하는 것을 목표로 하고 있고 Qt 6.2는 새로운 API, 기능 업데이트 및 버그 수정과 관련하여 Android에 대한 많은 개선 사항을 제공한다.

Qt 6.2에서 Android의 주요 변경 사항을 몇 가지 소개한다.

 

QtAndroid 네임스페이스

Qt 6의 Qt Extras 모듈에 대해 수행한 작업에 이어 Qt 5의 QtAndroid 네임스페이스에서 제공하는 일부 기능이 이제 QNativeInterface::QAndroidApplication 에서 제공된다.

예를 들어 다음 스니펫을 사용하여 Android의 메인 UI 스레드에서 시스템 UI 가시성을 변경할 수 있다.

#include <QCoreApplication>

QNativeInterface::QAndroidApplication::runOnAndroidMainThread([]() {
   QJniObject activity = QNativeInterface::QAndroidApplication::context();
   // Hide system ui elements or go full screen
   activity.callObjectMethod("getWindow", "()Landroid/view/Window;")
           .callObjectMethod("getDecorView", "()Landroid/view/View;")
           .callMethod<void>("setSystemUiVisibility", "(I)V", 0xffffffff);
});

이전에 앱 권한 요청 API는 QtCore 에서 재설계되었으나 다음 Qt 릴리스에서 준비될 때까지 아직 공개되지 않았다. 여전히 누락된 기능 또는 권한 API에 의존하는 클라이언트는 임시 해결책으로 비공개 헤더 <QtCore/private/qandroidextras_p.h>를 포함할 수 있다.

 

Android Manifest

Android 매니페스트는 모든 Android 앱의 중요한 부분이며 앱 이름, 아이콘 설정부터 사용자 지정 Activity 및 Service 에 이르기까지 앱에 대한 다양한 세부 정보에 사용된다.

Qt 5에서 매니페스트는 Qt 라이브러리 및 자산의 빌드 및 패키징 관리의 일부를 처리하는 데 사용된다. 이는 매니페스트가 상대적으로 장황하고 사용자가 수정할 수 있는지 명확하지 않은 많은 메타 데이터를 포함한다는 것을 의미한다.

이제 배포 관리를 위한 모든 속성이 숨겨져 매니페스트를 가볍게 유지하고 사용자 별 메타 데이터만 포함한다. 매니페스트에 대한 자세한 내용은 Qt Android 매니페스트 문서에서 설명한다.

이 변경사항과 관련하여 Qt 5에서 사용되었던 Ministro 는 최신 Android 버전에서 더 이상 지원되지 않기 때문에 Qt 5를 사용하는 앱의 매니페스트 파일에서 제거해야 한다. 다음은 해당 속성의 목록이다.

  • app.qt_sources_resource_id
  • app.repository
  • app.bundled_libs_resource_id
  • app.bundle_local_qt_libs
  • app.use_local_qt_libs
  • app.libs_prefix
  • app.load_local_libs_resource_id
  • app.load_local_jars
  • app.static_init_classes
  • app.qt_libs_resource_id
  • app.ministro_not_found_msg
  • app.ministro_needed_msg
  • app.fatal_error_msg

 

Android SDK 업데이트

Google Play 스토어는 스토어에 게시할 때 앱에서 사용되는 API 수준 요구사항에 대한 업데이트를 자주한다. Qt는 이러한 요구 사항을 최신 상태로 유지하므로 현재 기본 타겟 SDK 수준은 30(Android 11)이다.

Qt 빌드에 사용되는 빌드 도구 및 플랫폼 버전도 30으로 설정된다.

추가로 Android Gradle 플러그인이 Android 11의 <queries>를 지원하는 버전 4.1.3으로 업데이트되었다. 또한 이 업데이트를 통해 패키지가 이미 Gradle 에 의해 정렬된 최신 Gradle 플러그인 버전을 사용하여 패키지에 서명할 때 발생하는 버그가 수정되었다.

 

기타 변경 사항은 다음 링크에서 확인 할 수 있다.

https://www.qt.io/blog/qt-6.2-for-android

번호 제목 글쓴이 날짜 조회 수
공지 Qt프로그래밍(QtQuick) Beginner를 위한 글 읽는 순서 운영자 2019.01.05 35057
151 Qt Android 앱에 AdMob 배너달기 file makersweb 2021.12.04 88
150 Qt 6의 C++ 프로퍼티 바인딩 예제 makersweb 2021.11.01 169
149 QML에서 앵커(anchors)로 위치 지정 file makersweb 2021.10.05 348
» 안드로이드용 Qt 6.2 makersweb 2021.10.02 137
147 Qt 응용프로그램에서 PDF 문서 렌더링 file makersweb 2021.09.23 113
146 QML에서 Websocket 서버와 통신 file makersweb 2021.09.18 121
145 QML 코딩 규칙 makersweb 2021.09.05 613
144 QML 에서 QR코드 생성 file makersweb 2021.08.20 231
143 앱을 종료할 때 QML 바인딩 오류를 피하는 방법 makersweb 2021.08.08 112
142 Qt 응용프로그램에서 Lottie Animation사용 file makersweb 2021.05.30 375
141 싱글 샷(Single-Shot) 시그널/슬롯 연결 makersweb 2021.05.12 267
140 응용프로그램 자동실행 설정 (on Windows) makersweb 2021.05.08 228
139 Qt 6 에서 프로퍼티 바인딩 makersweb 2021.04.03 345
138 QML과 JavaScript 의 숫자 관련 내장된 함수 makersweb 2021.03.28 297
137 Qt 5 코드를 Qt 6로 포팅하기 위해 도움이 되는 Clazy Framework file makersweb 2021.03.01 360
136 C++로 작성한 클래스를 QML에서 생성 file makersweb 2021.02.10 1425
135 Qt MQTT의 pus/sub 튜토리얼 file makersweb 2021.02.06 616
134 Qt 를 사용하거나 기반으로 하는 응용프로그램 file makersweb 2021.01.30 1355
133 Loader를 사용하여 동적으로 QML 로드 makersweb 2021.01.19 606
132 QThread 및 QMutex 예제 makersweb 2021.01.12 523