한국어
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 85860
39 Qt Bluetooth 관련 기능 확인 사항 makersweb 2018.07.10 763
38 Q_D매크로와 d-pointer file makersweb 2019.05.07 759
37 Qt for MCU 1.0 릴리즈 makersweb 2019.12.10 751
36 싱글 샷(Single-Shot) 시그널/슬롯 연결 makersweb 2021.05.12 751
35 2020년에 변경되는 Qt 오퍼 (Qt offering changes 2020) [2] j2doll 2020.01.31 720
34 단일 인스턴스 Qt 응용 프로그램(Single-instance Application) makersweb 2022.06.23 700
33 Qt 응용프로그램에서 PDF 문서 렌더링 file makersweb 2021.09.23 677
32 Qt5Compat 라이브러리를 사용하여 Qt5에서 Qt6로 포팅 [2] makersweb 2020.12.05 672
31 Qt Bluetooth Low Energy 개요 makersweb 2022.02.13 661
30 QML에서 D-Bus 통신 file makersweb 2023.03.15 650
29 클라우드용 Qt file makersweb 2024.01.16 641
28 Qt Marketplace 발표 makersweb 2019.12.02 617
27 Embedded Linux 에서 Qt 및 Graphics Stack file 운영자 2020.05.27 612
26 QProcess 보안 권고 리뷰 file makersweb 2022.09.18 597
25 최초의 Qt 6.0 스냅샷 제공 (First Qt 6.0 Snapshot Available) j2doll 2020.06.21 591
24 QML과 코루틴(Coroutines) makersweb 2020.11.03 577
23 OpacityMask 예제 file makersweb 2023.01.26 566
22 clazy 로 13개의 시그널, 슬롯 오류 해결 makersweb 2022.08.23 566
21 응용프로그램 자동실행 설정 (on Windows) makersweb 2021.05.08 563
20 Qt Safe Renderer 개요 file makersweb 2022.09.08 543