Qt Quick アンドロイド用
Qt Quick for Android 概要
このアプローチの基本は、アプリが比較的典型的な Android アプリのままであるように、Qt QML API を組み込み方式で提供することです。このアプローチでは、Qt アプリケーションのクロスプラットフォーム性を活用する代償として、より標準的な Android を中心としたアプローチを提供します。既存のAndroidアプリケーションにQtの望ましい機能を追加する場合に最適です。
- Android が Qt のコンテンツを作成し、制御します。
- 開発には Android Studio とQt Tools for Android Studioプラグインを使用します。
- Qt コンテンツには、Qt Creator またはQt Design Studio を使用します。
- 主な言語はJavaとKotlinで、3Dコンテンツなど特定の部分にはQMLを使用します。
- AndroidのAPIは自由に使うことができますが、JavaコードとQML間の通信をよりコントロールしたい場合はJNIを使うことができます。QJniObject とQJniEnvironment を参照してください。
Qt for Androidとの違い
これらのアプローチの最も顕著な違いは、プロジェクトの構造です。Qt for Android アプリケーションは、Android または他のプラットフォーム用にビルドできる CMake プロジェクトです。一方、Qt Quick for Android プロジェクトは、QML コンテンツを含む Android プロジェクトで、Android 用にのみビルドできます。
Qt for Android アプローチの主な目的は、Qt にアプリのアーキテクチャとボイラープレートコードの大部分を処理させ、コンテンツに集中させることです。完全で信頼性の高いクロスプラットフォームアプローチを提供します。
- QtはAndroidアプリを作成し、制御します。
- Qt Creator, Qt Design StudioまたはVisual Studioを使用できます。
- 主な言語はC++とQMLです。
- Qtはこれらを内部的に処理します。
- QtのAPIとしてまだ提供されていないAndroidのAPIを使用するには、JNIを使用する必要があります。QJniObject とQJniEnvironment を参照してください。
Qt for Android のアーキテクチャの詳細については、How Qt for Android Worksを参照してください。
Qt Quick for Android の仕組み
Qt Quick Qt for Android は、QML コンテンツをAndroid Viewとしてプロジェクトに挿入するためのAndroid API を提供します。
API
これらは、AndroidアプリにQMLを埋め込むために利用するJavaやKotlinの公開APIです。
- Qt Quick ビュー Android クラス
- QtAbstractItemModel Androidクラス
- QtAbstractListModel Androidクラス
- インターフェース QtQmlStatusChangeListener(QtQmlStatus 列挙型を使用)
- QtModelIndex Androidクラス
これらのクラスを使用するには、build.gradle
ファイルに以下を含める必要があります:
packagingOptions.jniLibs.useLegacyPackaging true
注: QMLコンポーネントのJavaコード生成に関する詳細は、QT_ANDROID_GENERATE_JAVA_QTQUICKVIEW_CONTENTSCMake変数を参照してください。
APIの例
- Qt Quick Android Studio プロジェクト用
- QtAbstractListModelをQMLに公開する
- Android StudioプロジェクトでQtAbstractItemModelを使う
ツーリング
Qt Tools for Android StudioプラグインとQt Gradle Pluginは、開発を容易にするために Qt から提供されています。Gradle Plugin はビルドツールチェインの一部として IDE から独立して使用することができます。Qt Tools for Android Studioは、Android Studioでプロジェクトをビルドするためにプラグインを使用します。
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.