Android プラットフォームに関する注意事項
このページでは、Android 上での Qt アプリケーションのビルドと実行に関する情報を提供します。サポートされるAndroid のバージョンとAPI レベルについては、サポートされる Android のバージョンを参照してください。
プラグインとインポート
アプリケーションが他のモジュールに依存するプラグインを使用する場合、これらのモジュールをアプリケーションの依存関係にリストする必要があります。詳細については、依存関係の検出を参照してください。
Qt GUIの依存性
Android アプリには通常 GUI 要素が含まれるため、Qt for Android プラグインは主に GUI を提供するために構築されており、さまざまな QPA 抽象機能を実装しています。その結果、Qt for Android アプリのデプロイにはQt GUI への依存が伴うことが予想されます。さらに、Qt Creator は Gradle によるビルドとデプロイのみをサポートしており、コマンドラインやシェルによる実行はサポートされていません。
OpenGL に関する特別な考慮事項
最近のデバイスは、2.0に加えてOpenGL ES 3.0または3.1をサポートしています。適切なOpenGLコンテキストを取得するには、QSurfaceFormat::setVersion ()を介して要求されたバージョンを設定します。
注意: OpenGL ES 3.xの機能を使用すると、2.0しかサポートしていない古いデバイスではアプリケーションが壊れてしまいます。
既知の問題
予測テキスト
一部のデバイスのバグにより、ImhNoPredictiveText
で予測テキストをオフにすると、このプロパティは無視され、予測テキストは有効になります。これを回避するには、QT_ANDROID_ENABLE_WORKAROUND_TO_DISABLE_PREDICTIVE_TEXT
環境変数を1
に設定します。ただし、副作用として、この環境変数が Gboard などの他のキーボードで問題を引き起こす可能性があります。日本語のような言語を使用している場合、GboardではQWERTYキーボードしか表示されません。この環境変数はキーボードが表示されるたびに照会されるので、必要に応じて回避策のオン・オフを切り替えることが可能です。
ディスプレイカットアウトモード
Android LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGESはサポートされていません。詳細については、QTBUG-114437を参照してください。
テキストグリフのキャッシュ
一部の OpenGL ドライバにバグがあるため、Qt がテキストグリフをキャッシュするために使用するメカニズムが、すべての Android デバイスで期待通りに動作せず、テキストが乱れて表示されます。この問題を解決するために、回避策が用意されていますが、メモリ消費量が増加し、テキスト描画のパフォーマンスにも影響する可能性があります。この回避策は現在、すべてのデバイスでデフォルトで使用されています。
この回避策は、QT_ANDROID_DISABLE_GLYPH_CACHE_WORKAROUND
環境変数を1またはtrue に設定することで無効にできます。ただし、対象となるすべてのデバイスでテキストが正しく表示されることを確認した後に行ってください。
制限事項
Qt モジュールの中には、Android でサポートされていない機能や制限があるものがあります。詳細はQTBUG-72086 を参照してください。
よくある質問
- カスタム Activity を作成するには、
QtActivity
とAndroid Activity のどちらを使うべきですか?QtActivity
Android Activity は を拡張し、Qt ライブラリをロードしたり、イベントや Android と Qt 間のネイティブコールを処理するために必要なロジックを実装しています。一般的に、ネイティブコールを使用する場合は、 を拡張する必要があります。そうでない場合は、 を拡張することで動作します。Activity
QtActivity
Activity
QtService
とAndroid Service のどちらを使うべきですか?QtActivity
と同じ理由が当てはまります。ネイティブコールのようにQtライブラリをロードする必要がある機能を使用している場合を除きます。- Android Fragmentは Qt で使えますか?QtのFragmentに相当するものは何ですか?
Android Fragments は Qt では使用できません。しかし、QtはQMLを使った独自のモジュールコンポーネントとビューを提供しています。1つのQMLビューに複数のコンポーネントを組み合わせることができます。詳しくはQt Qmlを参照してください。
©2024 The Qt Company Ltd. ここに含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 ここで提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。