한국어
Qt
 

Qt 6 안드로이드용 Qt 6.2

makersweb 2021.10.02 14:50 조회 수 : 490

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 85345
176 가상키보드(Qt Virtual Keyboard)를 사용하는 방법 [32] file makersweb 2019.05.03 219962
175 콘솔에서 사용자 입력받기 file makersweb 2020.03.22 51789
174 QString 문자열 다루기 예제 운영자 2019.01.26 39601
173 Windows에서 Qt 설치 따라하기 file makersweb 2019.10.14 30791
172 Qt의 시그널 슬롯 시스템 file makersweb 2015.10.20 23430
171 QThread 소개 및 예제 makersweb 2019.12.25 19230
170 QtCreator Design으로 GUI만들기 (QML로 만드는 Hello World -2) [1] file makersweb 2019.05.26 14768
169 초보자를 위한 첫번째 프로젝트 - QML로 만드는 Hello World file makersweb 2018.03.16 14357
168 Qt 프로그래밍의 시작 makersweb 2015.10.25 14324
167 Qml과 C++로 구현하는 GUI어플리케이션 file makersweb 2018.12.25 13828
166 QML과 QtQuick 모듈 개념과 기본 타입들 makersweb 2019.04.26 13324
165 Windows에서 라즈베리파이3용 Qt5.10.0 크로스컴파일 [20] file makersweb 2018.02.23 12717
164 Qt의 오픈소스 라이센스 소개 file makersweb 2019.12.15 12379
163 Qml 기본 컴포넌트 강좌 (1) file makersweb 2019.01.03 11977
162 QtSerialPort를 사용한 시리얼(Serial)통신 [3] makersweb 2019.05.21 11755
161 Qt Installer Framework - 패키징, 설치프로그램 제작 file makersweb 2018.10.14 11601
160 Qt 응용프로그램 배포(windows) file makersweb 2018.10.10 11165
159 Ubuntu Linux에서 Qt Creator 설치 file makersweb 2016.03.06 10647
158 Qt의 스레드간 시그널 슬롯의 커넥션타입 [1] makersweb 2015.10.24 10104
157 QML 강좌 - 동적 Listing (ListView) file makersweb 2019.06.01 10029