Android デプロイ設定
Androidアプリケーションは、アプリケーションパッケージ(APK)、Android App Bundles(AAB)、またはAndroid Archives(AAR)と呼ばれるZIPファイルとしてパッケージ化されます。APKファイルをデバイスにインストールして実行することができます。AAB ファイルは Google Play ストアにアップロードできます。
Qt for Androidには、armv7a、arm64-v8a、x86、x86-64 用のバイナリがあります。アプリケーションで複数の異なる ABI をサポートするには、各 ABI 用のバイナリを含む AAB をビルドします。Google Playストアは、AABを使用して、ダウンロードを要求するデバイス用に最適化されたAPKパッケージを生成し、パブリッシャーキーで自動的に署名します。
Qt Creator は、Androidアプリケーションの以下のデプロイ方法をサポートしています:
- スタンドアロンで配布可能なアプリケーションパッケージ(APK)として。
- Google Playストアで配布するためのアプリバンドル(AAB)として。
- AARとして。これはAndroidライブラリであるという点で、APKやAAB形式とは根本的に異なります。Android アプリモジュールの依存関係として使用することはできますが、単独で実行することはできません。
すべてのQtバージョンはAABをサポートしていません。Qt 6.3.0 以降では、CMake でビルドしたアプリケーションのマルチ AAB ビルドをサポートしています。AAR は Qt 6.8.0 以降でサポートされています。詳細については、Android でアプリケーションをデプロイするを参照してください。
アプリケーションパッケージの設定を指定するには、Projects >Build Settings >Build Android APK と進み、Details を選択します。
アプリケーションを実行するためのオプションの詳細については、Androidの実行設定を参照してください。
アプリケーションのパッケージ化
アプリケーションを APK パッケージとしてバンドルするのは簡単ではないため、Qt にはandroiddeployqtツールがあります。Qt for Android キットを使用してアプリケーションをデプロイするとき、Qt Creator はこのツールを実行して必要なファイルを作成し、APK にバンドルします。詳細については、Android Package Templates を参照してください。
androiddeployqt ツールが作成したパッケージを表示するには、Open package location after build を選択します。
デプロイ設定の指定
アプリケーションをデプロイするための設定を指定するには、Projects >Deploy Settings にアクセスし、Active deployment configuration でデプロイ設定を選択します。

プロジェクトにデプロイ設定を追加するには、Add を選択します。
現在の配置方法の名前を変更するには、Rename を選択します。
現在のデプロイ方法を削除するには、Remove を選択します。
Qt Creator キットセレクタで選択した Android デバイスにパッケージをデプロイします。デバイスを追加するには、Manage を選択します。
アプリケーションの追加起動オプションの指定についての詳細は、Android Run Settingsを参照してください。
デバイスから以前にインストールしたファイルを削除するには、Uninstall the existing app before deployment を選択します。
サードパーティアプリケーションなどのビルド済みAPKをデバイスにインストールするには、Install an APK File を選択します。
パッケージの設定の指定
androiddeployqt ツールの設定を指定するには、Projects >Build Settings >Build Android APK と進み、Details を選択します。

androiddeployqt ツールは設定に基づいて APK を作成します。利用可能なオプションの詳細については、androiddeployqt を参照してください。
androiddeployqt ツールが実行していることに関する情報は、Compile Output で確認できます。詳細情報を表示するには、Verbose output を選択します。
デバッグサーバーのバイナリをパッケージに含めるには、Add debug server を選択します。
API レベルの選択
Android build platform SDK フィールドで、アプリケーションのビルドに使用するAPI レベルを選択します。通常は、利用可能な最も高い API レベルを選択します。
通常、ビルドにはAndroid SDKビルド・ツールの最高バージョンを使用する必要があります。必要に応じて、Android build-tools version フィールドで別のバージョンを選択します。
AABのビルド
アプリケーションをローカルでテストする場合は、Qt Creator 、パッケージをデバイスにインストールして実行できるため、APK形式を使用します。Google Playストアに配布する場合は、Build Android App Bundle (*.aab) を選択してAABを作成します。
CMakeでビルドする場合、Initial Configuration のCMake セクションで選択したABIを表示できます。ANDROID_ABI キーの値として、追加の ABI を設定できます:

Qbsまたはqmakeでビルドする場合は、Build Steps のABIs フィールドでABIを選択できます:

AARのビルド
Build Steps セクションで AAR ターゲットを選択します。

Androidパッケージへの署名
アプリケーションを公開するには、証明書と対応する秘密鍵で構成され、エイリアスで識別される公開鍵と秘密鍵のペアを使用して署名する必要があります。この鍵ペアは、あなたのアプリケーションの将来のバージョンが実際にあなたによって作成されたものであることを確認するために使用されます。
警告 鍵ペアを紛失すると、アプリケーションを更新することができないので、鍵ペアは安全な場所に保管し、バッ クアップをとってください。
Qt Creator を使って鍵ストアと自己署名証明書を生成することができます。生成された証明書は、X.509 v3 デジタル証明書の構造を持っています。これには、証明書のバージョン、シリアル番号、有効期間、データの暗号化に使用されるアルゴリズムのID、証明書を発行した組織、証明書のサブジェクト(所有者)に関する情報が含まれています。自己署名証明書の場合、証明書の発行者と所有者は同じである。さらに、証明書には、証明書の署名に使用されたアルゴリズムに関する情報と、証明書の署名が記載されている。
パスワードはキーストアを保護する。さらに、各エイリアスを個別のパスワードで保護することもできます。
Androidアプリケーションに署名するときは、証明書があるキーストアと、キーストアから証明書エイリアスを選択する必要があります。署名プロセスは、エイリアスの公開鍵(証明書)をAPKに埋め込みます。
キーストアと自己署名証明書を作成するには、以下の手順に従います:
- Keystore 」フィールドで「Create 」を選択し、「Create a Keystore and a Certificate 」ダイアログでキー・ペアを1つ持つ新しいキーストアを作成する:

- Keystore グループで、キーストアを保護するパスワードを入力する。
- Certificate グループで、証明書のキー・サイズと有効期間を指定します。鍵ペアを保護するために別のパスワードを指定することも、鍵ストアのパスワードを使用することもできます。
- Certificate Distinguished Names グループで、鍵ペアの発行者および所有者を識別する、自分自身および自分の会社または組織に関する情報を入力します。
- Save を選択する。
- Keystore File Name ダイアログで、鍵ストアの名前を入力し、場所を選択します。
- Keystore ダイアログで、キーストアのパスワードを入力して、キーストアにキー・ペアを作成します。
キーペアを使用してAndroidパッケージに署名するには、「パッケージの設定を指定する」で説明するSign package グループ設定を設定します:
- Keystore 」フィールドで、「Choose 」を選択して既存のキーストアを選択します。
- Certificate alias 」フィールドで、鍵ストアが持つ鍵ペアのリストからエイリアスを選択します。
- Android パッケージの署名にエイリアスを使用するには、Sign package を選択します。
外部ライブラリの追加
Qt Creator は、アプリケーションが使用するQtライブラリを自動的に検出し、依存関係として追加します。アプリケーションに外部ライブラリが必要な場合は、Projects >Build Settings >Build Android APK と進み、Additional Libraries でライブラリを指定します。ライブラリはアプリケーションのライブラリフォルダにコピーされ、起動時にロードされます。
OpenSSLライブラリを追加するには、Additional Libraries グループでInclude prebuilt OpenSSL libraries を選択します。これにより、Android OpenSSL グループのdevice settingsで定義された OpenSSL インクルード・プロジェクトが追加されます。これはqmakeやCMakeプロジェクトに使用できます。
それ以外の場合は、必要なlibssl.so とlibcrypto.so ライブラリのパスをAdditional Libraries フィールドに手動で追加します。
マニフェスト・ファイルの編集
設定オプションを使用して、androiddeployqt ツールに必要なすべての設定を指定できます。Android マニフェスト ファイルが必要なのは、アプリケーション アイコンなどの Android 固有の設定を指定する場合だけです。ただし、Play ストアでパッケージを公開するにはマニフェスト ファイルが必要です。マニフェストファイルの詳細については、「Qt for Android マニフェストファイルの設定」を参照してください。
ビルドシステムとして CMake を使用する場合は、モバイルデバイスのチュートリアルで説明したように、CMakeList.txt ファイルで Android パッケージのソースディレクトリQT_ANDROID_PACKAGE_SOURCE_DIR を指定する必要があります。
Qt Creator を使用して Android マニフェスト・ファイルを作成し、Android Manifest Editor で開くには、次の手順に従います:
- Projects >Build Settings >Build Android APK に移動し、Create Templates を選択します。
- Android package source directory のパスを確認します。

- Qt アプリケーションの Java 部分を拡張する場合は、Copy the Gradle files to Android directory を選択します。
- Finish を選択して、テンプレート ファイルを
androidディレクトリにコピーし、マニフェスト ファイルを開いて編集します。
次の表は、設定できるオプションをまとめたものです。
| オプション | 値 |
|---|---|
| Package name | アプリケーションの有効なパッケージ名。たとえば、org.example.myapplication 。アプリケーションと共に APK にパッケージされた自動生成 Java ランチャーがアプリケーションを起動します。 |
| Version code | アプリケーションのあるバージョンが他のバージョンより新しいかどうかを決定する、パッケージの内部バージョン番号。 |
| Version name | ユーザーに見えるバージョン番号。 |
| Minimum required SDK | マニフェストファイルに手動で設定した場合の、アプリケーションの実行に必要な最小 API レベル。 |
| Target SDK | マニフェスト ファイルで手動で設定した場合の、アプリケーションのターゲット API レベル。 |
| Application name | アプリケーション名。 |
| Activity name | アクティビティ名。 |
| Style extraction | 使用するUI スタイルを決定するために Qt が使用するメソッド。パッケージ名の詳細については、スタイル抽出を参照してください。 |
| Screen orientation | 画面の向きを決定する方法。 |
| Application icon | 画面の解像度に応じて、アプリケーション・アイコンとして使用する画像。 |
| Splash screen | 画面の向きと解像度に応じて、スプラッシュ・スクリーンとして表示する画像。 |
| Permissions | アプリケーションが必要とするパーミッション。 |
トップヘッダで、XML Source タブを選択し、XML 形式のファイルを編集します。
パッケージ名
Androidアプリケーションのパッケージ名は通常、ピリオド(.)一般的に、パッケージ名は組織のトップレベルドメイン名で始まり、組織のドメイン名、サブドメイン名が逆順に続きます。その後、組織はそのパッケージの特定の名前を選ぶことができる。パッケージ名は可能な限りすべて小文字で書くべきである。たとえば、org.qtproject.example 。
パッケージ名の曖昧性をなくすための完全な規則と、インターネットドメイン名をパッケージ名として直接使用できない場合のパッケージ名の規則については、Java言語仕様のセクション7.7で説明されています。
パッケージ名の詳細については、Android Application Fundamentalsを参照してください。
画面の向き
センサーの読み取り値やユーザーの好みに応じて、画面の向きを決定するためのさまざまなオプションを指定できます。次の表に、使用可能なオプションを示します。
| 向き | 説明 |
|---|---|
| 指定なし | システムが向きを選択します。使用されるポリシー、および特定のコンテキストでの選択は、デバイスによって異なる場合があります。 |
| 背後 | アクティビティスタックのすぐ下にあるアクティビティと同じ向きを使用します。 |
| 横向き | ディスプレイの横幅が縦幅よりも大きい、横長の方向。 |
| 縦 | 縦長で、横幅よりも縦幅の方が大きく表示されます。 |
| 逆ランドスケープ | 通常の横向きとは逆方向の横向き。 |
| 逆ポートレート | 通常のポートレートの逆方向のポートレート方向。 |
| センサー・ランドスケープ | 横向きですが、デバイスのセンサーに基づき、通常の横向きにも逆横向きにもなります。ユーザーがセンサーベースの回転をロックしている場合でも、センサーが使用されます。 |
| センサー縦向き | 縦向きですが、デバイスセンサーに基づき、通常の縦向きまたは逆縦向きのいずれかになります。ユーザーがセンサーベースの回転をロックしている場合でも、センサーは使用されます。 |
| ユーザー横向き | 横向きですが、デバイスセンサーとユーザーの好みに応じて、通常または逆横向きになります。 |
| ユーザー縦向き | 縦向きですが、デバイスセンサーとユーザーの好みに応じて、通常または逆縦向きになります。 |
| センサー | 向きはデバイスの向きセンサーによって決定されます。ディスプレイの向きは、ユーザーのデバイスの持ち方に依存します。ユーザーがデバイスを回転させると変わります。ただし、デバイスによっては、デフォルトでは4つの方向すべてに回転しないものもあります。4つの方向すべてを許可するには、フルセンサーオプションを選択します。ユーザーがセンサーベースの回転をロックした場合でも、センサーは使用されます。 |
| フルセンサー | 方向はデバイスの方向センサーによって4つの方向のいずれかに決定されます。これはセンサーオプションと似ていますが、デバイスの通常の動作に関係なく、4つの可能な画面の向きのいずれかを許可する点が異なります。例えば、あるデバイスは通常逆縦や逆横を使いませんが、このオプションはそれらを有効にします。 |
| センサーなし | 物理的な方向センサーを参照せずに方向を決定する。センサーは無視されるので、ユーザーがデバイスをどのように動かしてもディスプレイは回転しません。 |
| ユーザー | ユーザーの現在の好みの向き。 |
| フルユーザー | ユーザーがセンサーベースの回転をロックしている場合、このオプションはuserオプションと同じように動作します。それ以外の場合は、フルセンサーオプションと同じように動作し、4つの可能な画面の向きのいずれかを許可します。 |
| ロック | 向きを現在の回転にロックします。 |
アイコン
低DPI、中DPI、高DPI、超高DPIのディスプレイで、アプリケーションアイコンやスプラッシュスクリーンとして表示する画像を設定できます。以下のリストは、各カテゴリに通常関連するDPI値をまとめたものです:
- 低密度(LDPI):~120dpi。
- 中密度(MDPI):~160dpi:~160dpi。
- 高密度(HDPI):~240dpi
- 超高密度(XHDPI):~320dpi
- 超超高密度(XXHDPI):~480dpi
- 超超高密度(XXXHDPI):~640dpi
Application icon タブでアイコンの設定を指定します。最も解像度の高い画像をMaster icon として選択します。Qt Creator は、必要に応じて、低、中、高、および超高DPIディスプレイ用にリサイズされたバージョンを生成して設定します。または、各解像度用のアイコンを個別に設定します。
![]()
スプラッシュ画面
Splash screen タブでスプラッシュ画面の設定を指定します。デバイスの向きと画面解像度に応じて、スプラッシュ画面として表示する画像を選択します。

デフォルトでは、アクティビティを描画するとスプラッシュスクリーンは非表示になります。QNativeInterface::QAndroidApplication::hideSplashScreen()が呼び出されるまで表示し続けるには、Sticky splash screen を選択します。
Image show mode で、スプラッシュ・スクリーンをデバイス・ディスプレイの中央に表示するか、ディスプレイいっぱいに拡大縮小するかを選択します。
Background color で背景色を設定します。
最も解像度の高い画像をMaster image 、Portrait master image 、Landscape master image として選択する。
すべての設定をリセットするか、すべての画像を削除するには、Clear All を選択します。
権限の設定
Android 6.0(API 23)以降、アプリケーションは実行時にパーミッションを要求する必要があります(QCoreApplication::requestPermission ()を参照)。これより低いAndroid APIレベルのアプリケーションをインストールする場合、ユーザーはこれらのパーミッションを許可する必要があります。その後、Android OSがアプリケーションに適切なデータと機能へのアクセスを許可します。

android.permission.ACCESS_BACKGROUND_LOCATION Qt ライブラリで必要なパーミッションを追加するには、Include default permissions for Qt modules とInclude default features for Qt modules を選択します。 Qt Positioning.
パーミッションを追加するには、リストからパーミッションを選択し、Add を選択します。
How To: Build and Run」、「How To: Develop for Android」、「Android Run Settings」、「Kits」も参照してください 。
Copyright © The Qt Company Ltd. and other contributors. 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.