한국어
Qt
 

Qt 6 안드로이드용 Qt 6.2

makersweb 2021.10.02 14:50 조회 수 : 504

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 85840
178 Qt Creator 에서 GitHub Copilot 사용하기 file makersweb 2024.04.13 122
177 QtQuick 애플리케이션에 Rive 애니메이션 통합 makersweb 2024.03.31 275
176 클라우드용 Qt file makersweb 2024.01.16 626
175 QRhi 에 대해서 file makersweb 2023.12.29 498
174 Android 애플리케이션 서명 구성 file makersweb 2023.12.17 466
173 QML의 사용자 정의 Image makersweb 2023.09.17 524
172 Base64로 인코딩된 파일을 복원 makersweb 2023.08.06 417
171 QML에서 D-Bus 통신 file makersweb 2023.03.15 636
170 Qt 하이브리드 애플리케이션(Hybrid App) 개발 file makersweb 2023.02.08 851
169 Widgets(C++) 기반의 기본 스타일을 Dark 테마 및 Material 디자인 스타일로 바꾸기 file makersweb 2023.01.28 1120
168 OpacityMask 예제 file makersweb 2023.01.26 553
167 QProcess 예제 (프로그램 재시작) file makersweb 2023.01.25 864
166 하드디스크 드라이브 여유 공간 계산 file makersweb 2023.01.15 480
165 Qt Property(속성) 시스템 makersweb 2023.01.08 1726
164 VTK 를 사용해서 강력한 시각화(3D, Plotting, Chart)Qt 응용프로그램 개발하기 file makersweb 2022.10.16 1579
163 QProcess 보안 권고 리뷰 file makersweb 2022.09.18 590
162 QMake 프로젝트를 CMake 프로젝트로 변환 with qmake2cmake makersweb 2022.09.17 996
161 Qt Safe Renderer 개요 file makersweb 2022.09.08 530
160 clazy 로 13개의 시그널, 슬롯 오류 해결 makersweb 2022.08.23 566
159 Qt 스마트 포인터 (QSharedPointer, QScopedPointer, QPointer) makersweb 2022.08.18 1124