한국어
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 85857
159 QML 강좌 - 동적 Listing (ListView) file makersweb 2019.06.01 10082
158 QtConcurrent를 이용하여 쓰레드를 만드는 방법과 MapReduce file makersweb 2016.01.24 9461
157 안드로이드 Qt 프로그래밍 file makersweb 2018.11.30 8815
156 Qml 기본 컴포넌트 강좌 (2) [2] file makersweb 2019.01.05 8616
155 Qt SQL을 이용한 가벼운 데이터베이스 다루기 [1] file 운영자 2019.01.23 6955
154 QML내에서의 시그널, 슬롯 시스템 makersweb 2019.09.29 6937
153 QLabel의 텍스트 색과 배경색을 변경 makersweb 2020.02.25 6607
152 z-order 를 컨트롤 하기위한 방법 makersweb 2015.05.13 6587
151 QPushButton 의 커스텀 이미지버튼 file makersweb 2019.11.05 6384
150 QtInstallerFramework로 온라인 설치프로그램(Online Installer)만드는 방법 [4] file makersweb 2019.05.28 6260
149 Qt Quick Controls 2사용 및 스타일 설정 file makersweb 2019.06.07 6243
148 Qml 사용자 ScrollBar 구현 file makersweb 2015.07.24 6220
147 Windows에서 라즈베리파이3 Qt 어플리케이션 개발 및 원격 실행 file makersweb 2018.02.23 6075
146 QQuickImageProvider 를 이용한 Qml 에서 이미지 표시 makersweb 2015.10.18 5995
145 Qml 및 C++개발시 유용한 팁 [3] makersweb 2018.04.06 5922
144 Windows환경에서 mingw로 Qt 5.10 정적(static)빌드 file makersweb 2018.02.01 5692
143 Qt 어플리에이션 전역에 폰트 설정 makersweb 2018.01.24 5580
142 Qt기반의 오픈소스 프로젝트들 makersweb 2019.05.15 5414
141 Qml 기본 컴포넌트 강좌 (4) - 모델 리스팅(Listing) file 운영자 2019.02.23 5298
140 C++로 작성한 클래스를 QML에서 생성 file makersweb 2021.02.10 5274