Qt는 계속해서 각 릴리스에서 Android 지원을 개선하는 것을 목표로 하고 있고 Qt 6.2는 새로운 API, 기능 업데이트 및 버그 수정과 관련하여 Android에 대한 많은 개선 사항을 제공한다.
Qt 6.2에서 Android의 주요 변경 사항을 몇 가지 소개한다.
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 매니페스트는 모든 Android 앱의 중요한 부분이며 앱 이름, 아이콘 설정부터 사용자 지정 Activity 및 Service 에 이르기까지 앱에 대한 다양한 세부 정보에 사용된다.
Qt 5에서 매니페스트는 Qt 라이브러리 및 자산의 빌드 및 패키징 관리의 일부를 처리하는 데 사용된다. 이는 매니페스트가 상대적으로 장황하고 사용자가 수정할 수 있는지 명확하지 않은 많은 메타 데이터를 포함한다는 것을 의미한다.
이제 배포 관리를 위한 모든 속성이 숨겨져 매니페스트를 가볍게 유지하고 사용자 별 메타 데이터만 포함한다. 매니페스트에 대한 자세한 내용은 Qt Android 매니페스트 문서에서 설명한다.
이 변경사항과 관련하여 Qt 5에서 사용되었던 Ministro 는 최신 Android 버전에서 더 이상 지원되지 않기 때문에 Qt 5를 사용하는 앱의 매니페스트 파일에서 제거해야 한다. 다음은 해당 속성의 목록이다.
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 | 86894 |
15 | Qt 6의 비동기 API | makersweb | 2020.10.19 | 1271 |
14 | Qt 6에서 QList 변경사항 | makersweb | 2020.10.08 | 1050 |
13 | Qt로 XML 파싱 : Qt 6에서 업데이트된 (Parsing XML with Qt: Updates for Qt 6) [1] | j2doll | 2020.01.16 | 1019 |
12 | Qt 6.0의 개발 호스트 및 대상 플랫폼 | makersweb | 2020.09.16 | 1013 |
11 | Qt 5 코드를 Qt 6로 포팅하기 위해 도움이 되는 Clazy Framework | makersweb | 2021.03.01 | 986 |
10 | Qt 5.15 및 Qt 6의 출시 일정 | makersweb | 2020.04.09 | 965 |
9 | Qt 6의 C++ 프로퍼티 바인딩 예제 | makersweb | 2021.11.01 | 904 |
8 | Qt 6 에서 프로퍼티 바인딩 | makersweb | 2021.04.03 | 821 |
7 | 싱글 샷(Single-Shot) 시그널/슬롯 연결 | makersweb | 2021.05.12 | 807 |
6 | Qt5Compat 라이브러리를 사용하여 Qt5에서 Qt6로 포팅 [2] | makersweb | 2020.12.05 | 754 |
5 | QRhi 에 대해서 | makersweb | 2023.12.29 | 692 |
4 | 최초의 Qt 6.0 스냅샷 제공 (First Qt 6.0 Snapshot Available) | j2doll | 2020.06.21 | 644 |
» | 안드로이드용 Qt 6.2 | makersweb | 2021.10.02 | 557 |
2 | Qt Quick Controls 2에 네이티브 데스크탑 스타일 추가 | makersweb | 2020.11.23 | 527 |
1 | Qt 6.4에 추가될 Qt Quick 3D Physics | makersweb | 2022.08.07 | 395 |