Doc: Update Android docs
Fixes: QTCREATORBUG-28858 Task-number: QTCREATORBUG-28721 Change-Id: Id18a2ad0f88600362a5d10e36b3e3d95e5d19644 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
BIN
doc/qtcreator/images/extraimages/images/5OiIqFTjUZI.jpg
Normal file
After Width: | Height: | Size: 56 KiB |
@@ -1,2 +1,3 @@
|
||||
{HTML.extraimages,qhp.QtCreator.extraFiles} += \
|
||||
images/commercial.png
|
||||
images/commercial.png \
|
||||
images/5OiIqFTjUZI.jpg
|
||||
|
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 24 KiB |
After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 4.5 KiB |
Before Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 2.7 KiB |
Before Width: | Height: | Size: 5.8 KiB |
Before Width: | Height: | Size: 10 KiB |
After Width: | Height: | Size: 5.2 KiB |
Before Width: | Height: | Size: 10 KiB |
BIN
doc/qtcreator/images/qtcreator-android-sdk-manager.webp
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
doc/qtcreator/images/qtcreator-build-settings-android-apk.webp
Normal file
After Width: | Height: | Size: 7.2 KiB |
@@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2022 The Qt Company Ltd.
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
/*!
|
||||
@@ -8,36 +8,37 @@
|
||||
|
||||
\title Connecting Android Devices
|
||||
|
||||
You can connect Android devices to the development PC using USB cables
|
||||
to build, run, debug, and analyze applications from \QC. Devices with
|
||||
Android version 4.1 (API level 16) or later are supported when developing
|
||||
with Qt 5 and devices with Android version 6.0 (API level 23) when
|
||||
developing with Qt 6.
|
||||
You can connect Android devices to the development PC using USB cables to
|
||||
build, run, debug, and analyze applications from \QC.
|
||||
|
||||
To develop for Android, you must have a tool chain for building applications
|
||||
for Android devices installed on the development PC. \QC can automatically
|
||||
To develop for Android, you must install a tool chain for building
|
||||
applications for Android devices on the development PC. \QC can automatically
|
||||
download and install the tool chain and create a suitable build and run
|
||||
\l{glossary-buildandrun-kit}{kit} that has the tool chain and the Qt
|
||||
version for Android for the device's architecture.
|
||||
|
||||
Starting from Qt 5.14.0, the Qt for Android package has all the
|
||||
architectures (ABIs) installed as one.
|
||||
|
||||
To enable helpful code editing features for Java, such as code completion,
|
||||
highlighting, function tooltips, and navigating in code, add a
|
||||
\l{Java Language Server}{Java language server}.
|
||||
|
||||
The Android Debug Bridge (adb) command line tool is integrated to \QC to
|
||||
enable you to deploy applications to connected Android devices, to run
|
||||
them, and to read their logs. It includes a client and server that run on
|
||||
\QC integrates the Android Debug Bridge (\c adb) command line tool for
|
||||
deploying applications to Android devices, running them, and reading their
|
||||
logs. The \c adb tool includes a client and server that run on
|
||||
the development host and a daemon that runs on the emulator or device.
|
||||
|
||||
The following video shows the whole process from installing Qt for Android
|
||||
to debugging an application on an Android device:
|
||||
|
||||
\youtube 5OiIqFTjUZI
|
||||
|
||||
\section1 Requirements
|
||||
|
||||
To use \QC to develop Qt applications for Android, you need
|
||||
\l{Qt for Android} 5.2, or later, and the tool chain that \QC
|
||||
can automatically download, install, and configure for you.
|
||||
For more information, see \l{Manually Installing the Prerequisites}.
|
||||
\l {Qt for Android} and a tool chain that \QC can automatically
|
||||
download, install, and configure for you. For more information
|
||||
about the requirements for developing with a particular Qt version,
|
||||
see the documentation for that Qt version. The links in this manual
|
||||
lead to the latest released Qt reference documentation.
|
||||
|
||||
\section1 Specifying Android Device Settings
|
||||
|
||||
@@ -58,42 +59,39 @@
|
||||
\uicontrol Android on Windows and Linux or \uicontrol {\QC} >
|
||||
\uicontrol Preferences > \uicontrol Devices > \uicontrol Android on
|
||||
\macos.
|
||||
\image qtcreator-options-android-main.png "Android preferences"
|
||||
\image qtcreator-options-android-main.png {Android preferences}
|
||||
\li In the \uicontrol {JDK location} field, set the path to the JDK.
|
||||
\QC checks the JDK installation and reports errors.
|
||||
|
||||
By default, \QC tries to find a supported \l{AdoptOpenJDK} or
|
||||
\l{OpenJDK} installation. If none is found, you must set the path
|
||||
manually. If you don't have a supported JDK installed, select
|
||||
\l{OpenJDK} installation. If it cannot find one, you must set the
|
||||
path manually. If you have not installed a supported JDK, select
|
||||
\inlineimage icons/online.png
|
||||
to open the JDK download web page in the default browser.
|
||||
|
||||
\note We recommended using a 64-bit JDK because the 32-bit one
|
||||
might cause issues with \c cmdline-tools, and some packages might
|
||||
not be listed.
|
||||
\note Use a 64-bit JDK because the 32-bit one might cause issues with
|
||||
\c cmdline-tools, and some packages might not appear in the list.
|
||||
\li In the \uicontrol {Android SDK location} field, set the path to the
|
||||
folder where you want the \l{Android SDK Command-line Tools} to be
|
||||
installed.
|
||||
folder to install the \l{Android SDK Command-line Tools}.
|
||||
\li Select \uicontrol {Set Up SDK} to automatically download and extract
|
||||
the Android SDK Command-line Tools to the selected path.
|
||||
|
||||
The SDK Manager checks whether the tool chain is installed.
|
||||
If packages are missing or updates are needed, the SDK Manager
|
||||
offers to add or remove those packages. Before taking action, it
|
||||
prompts you to accept the changes it is about to make. In addition,
|
||||
it prompts you to accept Google licenses, as necessary.
|
||||
\li The installed NDK versions are listed in
|
||||
\uicontrol {Android NDK list}.
|
||||
The locked items were installed by the SDK Manager,
|
||||
and can only be modified from the \uicontrol {Android SDK Manager}
|
||||
dialog. For more information, see \l{Managing Android NDK Packages}.
|
||||
The SDK Manager checks that you have the necessary tools. If you need
|
||||
more packages or updates, the SDK Manager offers to add or remove
|
||||
the appropriate packages. Before taking action, it prompts you to
|
||||
accept the changes. In addition, it prompts you to accept Google
|
||||
licenses, as necessary.
|
||||
\li The \uicontrol {Android NDK list} lists the installed NDK versions.
|
||||
The SDK Manager installed the locked items. You can modify them only
|
||||
from the \uicontrol {Android SDK Manager} dialog. For more
|
||||
information, see \l{Managing Android NDK Packages}.
|
||||
\li Select the \uicontrol {Automatically create kits for Android tool chains}
|
||||
check box to allow \QC to create the kits for you. \QC displays a
|
||||
warning if it cannot find a suitable Qt version.
|
||||
\li Optionally, in the \uicontrol {Android OpenSSL Settings} group, set
|
||||
the path to the prebuilt OpenSSL libraries.
|
||||
|
||||
For Qt applications that require OpenSSL support, \QC allows to
|
||||
For Qt applications that require OpenSSL support, you can
|
||||
quickly add the \l {Android OpenSSL support} to your project.
|
||||
For more information, see \l{Adding External Libraries}.
|
||||
\li Select \uicontrol {Download OpenSSL} to download the OpenSSL
|
||||
@@ -103,21 +101,20 @@
|
||||
|
||||
\section2 Manual Setup
|
||||
|
||||
\note We recommend that you use the latest Android SDK Command-Line Tools.
|
||||
Using Android SDK Tools version 25.2.5 or earlier is not supported because
|
||||
they cannot be fully integrated with \QC.
|
||||
\note Use the latest Android SDK Command-Line Tools. \QC does not support
|
||||
Android SDK Tools version 25.2.5 or earlier because it cannot fully
|
||||
integrate them.
|
||||
|
||||
However, if the automatic setup does not meet your needs, you can download
|
||||
and install Android SDK Command-line Tools, and then install or update the
|
||||
NDKs, tools and packages needed for development. For more information, see
|
||||
necessary NDKs, tools, and packages. For more information, see
|
||||
\l{Getting Started with Qt for Android}.
|
||||
|
||||
\section2 Viewing Android Tool Chain Settings
|
||||
|
||||
The Android SDK Command-Line Tools download URL, the essential
|
||||
packages list, and the appropriate NDK for each Qt version are defined in a JSON
|
||||
configuration file. The file is located under the user's \QC
|
||||
resource folder:
|
||||
A JSON configuration file defines the Android SDK Command-Line Tools download
|
||||
URL, the essential packages list, and the appropriate NDK for each Qt version.
|
||||
The file is in the \QC resource folder:
|
||||
|
||||
\badcode
|
||||
# Linux and macOS
|
||||
@@ -127,8 +124,8 @@
|
||||
C:\Users\Username\AppData\Local\QtProject\qtcreator\android\sdk_definitions.json
|
||||
\endcode
|
||||
|
||||
For example, the SDK configuration file defines the NDK version 19.2.5345600
|
||||
to be used for Qt 5.12.0 to 5.12.5 and Qt 5.13.0 to 5.13.1 versions:
|
||||
For example, the SDK configuration file sets the NDK version 19.2.5345600
|
||||
for use with Qt 5.12.0 to 5.12.5 and Qt 5.13.0 to 5.13.1:
|
||||
|
||||
\badcode
|
||||
"specific_qt_versions": [
|
||||
@@ -150,10 +147,10 @@
|
||||
Linux or \uicontrol {\QC} > \uicontrol Preferences > \uicontrol Devices >
|
||||
\uicontrol Android on \macos.
|
||||
|
||||
\image qtcreator-options-android-sdk-tools.png "Android NDK and SDK checks"
|
||||
\image qtcreator-options-android-sdk-tools.png {Android NDK and SDK checks}
|
||||
|
||||
The locked versions were installed by the SDK Manager, and can only
|
||||
be modified from the \uicontrol {Android SDK Manager} dialog.
|
||||
The SDK Manager installed the locked items. You can modify them only
|
||||
in the \uicontrol {Android SDK Manager} dialog.
|
||||
For more information, see \l{Managing Android SDK Packages}.
|
||||
|
||||
To manually download NDKs, select \inlineimage icons/online.png
|
||||
@@ -173,7 +170,7 @@
|
||||
tool, \l {sdkmanager}, for SDK package management. To make SDK management
|
||||
easier, \QC has an SDK Manager for
|
||||
installing, updating, and removing SDK packages. You can still use
|
||||
sdkmanager for advanced SDK management.
|
||||
\c sdkmanager for advanced SDK management.
|
||||
|
||||
To view the installed Android SDK packages, select \uicontrol Edit >
|
||||
\uicontrol Preferences > \uicontrol Devices > \uicontrol Android >
|
||||
@@ -181,7 +178,7 @@
|
||||
\uicontrol Preferences > \uicontrol Devices > \uicontrol Android >
|
||||
\uicontrol {SDK Manager} on \macos.
|
||||
|
||||
\image qtcreator-android-sdk-manager.png "Android SDK Manager"
|
||||
\image qtcreator-android-sdk-manager.webp {Android SDK Manager}
|
||||
|
||||
You can show packages for the release channel you select in
|
||||
\uicontrol {Show Packages} > \uicontrol Channel. Common channel IDs include
|
||||
@@ -194,27 +191,27 @@
|
||||
\uicontrol {Update Installed}. Select the packages to update, and then
|
||||
select \uicontrol Apply.
|
||||
|
||||
To specify advanced sdkmanager settings, select
|
||||
To specify advanced \c sdkmanager settings, select
|
||||
\uicontrol {Advanced Options} and enter arguments in the
|
||||
\uicontrol {SDK Manager arguments} field. The available arguments are listed
|
||||
and described in \uicontrol {Available arguments}.
|
||||
\uicontrol {SDK Manager arguments} field. \uicontrol {Available arguments}
|
||||
lists the arguments with descriptions.
|
||||
|
||||
\image qtcreator-android-sdk-manager-arguments.png "Android SDK Manager Arguments dialog"
|
||||
\image qtcreator-android-sdk-manager-arguments.png {Android SDK Manager Arguments dialog}
|
||||
|
||||
\section1 Managing Android Virtual Devices (AVD)
|
||||
|
||||
The available AVDs are listed in \uicontrol Edit > \uicontrol Preferences
|
||||
To view the available AVDs, select \uicontrol Edit > \uicontrol Preferences
|
||||
> \uicontrol Devices on Windows and Linux or \uicontrol {\QC} >
|
||||
\uicontrol Preferences > \uicontrol Devices > on \macos. You can add more
|
||||
AVDs.
|
||||
|
||||
\image qtcreator-android-avd-manager.png "Android device in Devices"
|
||||
\image qtcreator-android-avd-manager.png {Android device in Devices}
|
||||
|
||||
You can see the status of the selected device in \uicontrol {Current state}.
|
||||
To update the status information, select \uicontrol Refresh.
|
||||
|
||||
To start an AVD, select \uicontrol {Start AVD}. Usually, you don't need to
|
||||
start AVDs separately because they are automatically started when you
|
||||
start AVDs separately because \QC starts them when you
|
||||
select them in the \l{Building for Multiple Platforms}{kit selector} to
|
||||
\l{Deploying to Android}{deploy applications} to them.
|
||||
|
||||
@@ -223,7 +220,7 @@
|
||||
|
||||
To specify options for starting an AVD, select \uicontrol {AVD Arguments}.
|
||||
|
||||
\image qtcreator-android-avd-arguments.png "Startup options for AVDs"
|
||||
\image qtcreator-android-avd-arguments.png {Startup options for AVDs}
|
||||
|
||||
Specify the options in \uicontrol {Emulator command-line startup options}.
|
||||
For available options, see \l{Start the emulator from the command line}.
|
||||
@@ -247,7 +244,7 @@
|
||||
or \uicontrol {\QC} > \uicontrol Preferences > \uicontrol Devices >
|
||||
\uicontrol Add > \uicontrol {Android Device} on \macos to open the
|
||||
\uicontrol {Create New AVD} dialog.
|
||||
\image qtcreator-android-create-avd.png "Create New AVD dialog"
|
||||
\image qtcreator-android-create-avd.png {Create New AVD dialog}
|
||||
\li Set the name, definition, architecture, target API level, and
|
||||
SD card size of the device.
|
||||
\li Select \uicontrol OK to create the AVD.
|
||||
@@ -258,9 +255,9 @@
|
||||
|
||||
\section1 Debugging on Android Devices
|
||||
|
||||
Debugging is enabled in different ways on different Android devices.
|
||||
You enable debugging in different ways on different Android devices.
|
||||
Look for \uicontrol {USB Debugging} under \uicontrol {Developer Options}. On
|
||||
some devices \uicontrol {Developer Options} is hidden and becomes visible
|
||||
some devices, \uicontrol {Developer Options} is hidden and becomes visible
|
||||
only when you tap the \uicontrol {Build number} field in \uicontrol Settings
|
||||
> \uicontrol About several times. For more information, see
|
||||
\l {Configure on-device developer options}.
|
||||
@@ -269,7 +266,7 @@
|
||||
the application for debugging.
|
||||
|
||||
\note \QC cannot debug applications on Android devices if Android Studio is
|
||||
running. If the following message is displayed in \l {Application Output},
|
||||
running. If the following message appears in \l {Application Output},
|
||||
close Android Studio and try again:
|
||||
|
||||
\badcode
|
||||
|
@@ -1,4 +1,4 @@
|
||||
// Copyright (C) 2022 The Qt Company Ltd.
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
|
||||
|
||||
/*!
|
||||
@@ -8,24 +8,25 @@
|
||||
|
||||
\title Deploying to Android
|
||||
|
||||
On Android, applications are distributed in specially structured types of
|
||||
ZIP packages called Application Packages (APK) or Android App Bundles (AAB).
|
||||
APK files can be downloaded to and executed on a device, whereas AAB is
|
||||
intended to be interpreted by the Google Play store and is used to generate
|
||||
APK files.
|
||||
Android applications are packaged as ZIP files called Application Packages
|
||||
(APK) or Android App Bundles (AAB). You can install and run APK files on a
|
||||
device. You can upload AAB files to the Google Play store.
|
||||
|
||||
\l{Qt for Android} has binaries for armv7a, arm64-v8a, x86, and x86-64.
|
||||
To support several different ABIs in your application, build an AAB that
|
||||
has binaries for each of the ABIs. The Google Play store uses the
|
||||
AAB to generate optimized APK packages for the devices issuing the download
|
||||
request and automatically signs them with your publisher key.
|
||||
has binaries for each of the ABIs. The Google Play store uses the AAB
|
||||
to generate optimized APK packages for the devices that request download
|
||||
and automatically signs them with your publisher key.
|
||||
|
||||
\QC supports the following methods of deployment for Android applications:
|
||||
|
||||
\list
|
||||
\li As a stand-alone, distributable application package (APK).
|
||||
\li Since Qt 5.14.0, as an app bundle (AAB), intended for distribution
|
||||
in the Google Play store.
|
||||
\li As an app bundle (AAB) for distribution in the Google Play store.
|
||||
|
||||
All Qt versions do not support AABs. Qt 6.3.0 and later support
|
||||
multi-abi builds for applications that you build with CMake. For
|
||||
more information, see \l{Qt for Android - Building User Projects}.
|
||||
\endlist
|
||||
|
||||
\note Since \QC 4.12, Ministro is not supported.
|
||||
@@ -39,56 +40,27 @@
|
||||
|
||||
\section1 Packaging Applications
|
||||
|
||||
Because bundling applications as APK packages is not
|
||||
trivial, Qt 5 has a deployment tool called \c androiddeployqt.
|
||||
When you deploy an application using a \e {Qt for Android kit}, \QC uses
|
||||
the \c androiddeployqt tool to create the necessary files and to bundle them
|
||||
into an APK:
|
||||
|
||||
\list
|
||||
|
||||
\li Java files, which serve as the entry point into your application and
|
||||
that automatically load Qt and execute the native code in your
|
||||
application.
|
||||
|
||||
\li AndroidManifest.xml, which has meta-information about your
|
||||
application.
|
||||
|
||||
\li Other XML files, which specify the dependencies of your application.
|
||||
|
||||
\li Resource files.
|
||||
|
||||
\li Libraries and QML files, which can be included in the project
|
||||
depending on the deployment method that you select.
|
||||
|
||||
\li Gradle wrappers that are needed to download and use Gradle.
|
||||
|
||||
\li Gradle script that is needed by Java IDEs, such as Android Studio.
|
||||
It allows the user to extend the Java part without copying our Java
|
||||
sources. It also allows the IDEs to offer code completion, syntax
|
||||
highlighting, and so on.
|
||||
|
||||
\endlist
|
||||
|
||||
The Gradle wrappers and scripts are bundled only if you use Gradle to build
|
||||
the application packages. For more information, see
|
||||
\l{Connecting Android Devices}.
|
||||
Because bundling applications as APK packages is not trivial, Qt has the
|
||||
\l {The androiddeployqt Tool}{androiddeployqt} tool. When you deploy an
|
||||
application using a \e {Qt for Android kit}, \QC runs the tool to
|
||||
create the necessary files and to bundle them into an APK. For more
|
||||
information, see \l{Android Package Templates}.
|
||||
|
||||
To view the packages that the \c androiddeployqt tool created, select the
|
||||
\uicontrol {Open package location after build} check box.
|
||||
|
||||
\section2 Specifying Deployment Settings
|
||||
|
||||
The available deployment settings are listed in the \uicontrol Method field.
|
||||
The \uicontrol Method field lists deployment settings.
|
||||
To add deployment methods for a project, select \uicontrol Add.
|
||||
|
||||
\image qtcreator-android-deployment-settings.png "Deployment settings"
|
||||
\image qtcreator-android-deployment-settings.png {Deployment settings}
|
||||
|
||||
To rename the current deployment method, select \uicontrol Rename.
|
||||
|
||||
To remove the current deployment method, select \uicontrol Remove.
|
||||
|
||||
The packages are deployed on the Android device that you select in the
|
||||
\QC deploys the packages on the Android device that you select in the
|
||||
\l{Building for Multiple Platforms}{kit selector}. To add devices, select
|
||||
\uicontrol Manage.
|
||||
|
||||
@@ -107,14 +79,13 @@
|
||||
\uicontrol Projects > \uicontrol {Build & Run} > \uicontrol Build >
|
||||
\uicontrol {Build Android APK} > \uicontrol Details.
|
||||
|
||||
\image qtcreator-android-build-apk-step.png "Build Android APK step"
|
||||
\image qtcreator-build-settings-android-apk.webp {Build Android APK step}
|
||||
|
||||
The \c androiddeployqt tool uses the configuration information to
|
||||
create APKs. For more information about the available options, see
|
||||
\l{androiddeployqt}.
|
||||
The \c androiddeployqt tool create APKs based on the settings. For more
|
||||
information about the available options, see \l{androiddeployqt}.
|
||||
|
||||
You can view information about what the \c androiddeployqt tool is doing in
|
||||
\l {Compile Output}. To view additional information, select the
|
||||
\l {Compile Output}. To view more information, select the
|
||||
\uicontrol {Verbose output} check box.
|
||||
|
||||
Select \uicontrol {Add debug server} to include the debug server binary
|
||||
@@ -122,36 +93,31 @@
|
||||
|
||||
\section3 Selecting API Level
|
||||
|
||||
In the \uicontrol {Android build platform SDK} field, you can select the
|
||||
API level to use for building the application. Usually, you should select
|
||||
the highest API level available.
|
||||
In the \uicontrol {Android build platform SDK} field, select the
|
||||
\l{What is API Level?}{API level} to use for building the application.
|
||||
Usually, you should select the highest API level available.
|
||||
|
||||
\note For Qt 5.12.0 to 5.12.5 and Qt 5.13.0 to 5.13.1, Android build
|
||||
platform SDK 28 should be used. For more recent versions than Qt 5.13.1,
|
||||
build platform SDK 29 or the most recent one should be used.
|
||||
|
||||
This field does not specify the minimum supported API level nor the target
|
||||
API level, which you can specify in the Android manifest. See
|
||||
\l{Editing Manifest Files}. For more information about Android API levels, see
|
||||
\l{What is API Level?}.
|
||||
Usually, you should use the highest version of the Android SDK
|
||||
build-tools for building. If necessary, select another version
|
||||
in the \uicontrol {Android build-tools version} field.
|
||||
|
||||
\section3 Building AABs
|
||||
|
||||
For testing the application locally, use the APK format because
|
||||
the package can be uploaded directly to the device and run. For
|
||||
distribution to the Google Play store, create an AAB by selecting
|
||||
\QC can install and run the package on the device. For distribution
|
||||
to the Google Play store, create an AAB by selecting
|
||||
the \uicontrol {Build Android App Bundle (*.aab)} check box.
|
||||
|
||||
When building with CMake, you can view the selected ABIs in
|
||||
\uicontrol {Initial Configuration} in the \uicontrol CMake section.
|
||||
You can set additional ABIs as values of the \c ANDROID_ABI key:
|
||||
|
||||
\image qtcreator-android-cmake-settings.png "CMake settings for building AABs"
|
||||
\image qtcreator-android-cmake-settings.png {CMake settings for building AABs}
|
||||
|
||||
When building with Qbs or qmake, you can select the ABIs in the
|
||||
\uicontrol ABIs field in the \uicontrol {Build Steps}:
|
||||
|
||||
\image qtcreator-android-build-steps.png "qmake settings for building AABs"
|
||||
\image qtcreator-android-build-steps.png {qmake settings for building AABs}
|
||||
|
||||
\section3 Signing Android Packages
|
||||
|
||||
@@ -174,12 +140,12 @@
|
||||
certificate has information about the algorithm that is used to sign
|
||||
the certificate, as well as the signature of the certificate.
|
||||
|
||||
The keystore is protected by a password. In addition, you can protect each
|
||||
A password protects the keystore. In addition, you can protect each
|
||||
alias with its individual password.
|
||||
|
||||
When you sign an Android application, you must select a keystore that
|
||||
has certificates and a certificate alias from the keystore. The public
|
||||
key (certificate) for the alias is embedded into the APK during signing.
|
||||
has certificates and a certificate alias from the keystore. The signing
|
||||
process embeds the public key (certificate) for the alias into the APK.
|
||||
|
||||
To create a keystore and a self-signed certificate:
|
||||
|
||||
@@ -250,8 +216,92 @@
|
||||
You can use the configuration options to specify all the settings you need
|
||||
for the \c androiddeployqt tool. You only need an Android manifest file
|
||||
to specify Android-specific settings, such as the application icon.
|
||||
However, the manifest file is needed when you want to publish the package
|
||||
in the Play Store.
|
||||
However, you need the manifest file to publish the package in the Play Store.
|
||||
For more information about manifest files, see
|
||||
\l {Qt Android Manifest File Configuration}.
|
||||
|
||||
If you use CMake as the build system, you must specify the Android package
|
||||
source directory, \c QT_ANDROID_PACKAGE_SOURCE_DIR, in the CMakeList.txt
|
||||
file, as instructed in the \l{Locking Device Orientation}
|
||||
{mobile device tutorial}.
|
||||
|
||||
To use \QC to create an Android manifest file and to open it in the Android
|
||||
Manifest Editor:
|
||||
|
||||
\list 1
|
||||
|
||||
\li Select \uicontrol Projects > \uicontrol Build >
|
||||
\uicontrol {Build Android APK} > \uicontrol {Create Templates}.
|
||||
|
||||
\li Check the path in \uicontrol {Android package source directory}.
|
||||
|
||||
\image qtcreator-android-create-template.png {Create Template dialog}
|
||||
|
||||
\li Select \uicontrol {Copy the Gradle files to Android directory} if you
|
||||
plan to extend the Java part of your Qt application.
|
||||
|
||||
\li Select \uicontrol Finish to copy the template files to the \c android
|
||||
directory and to open the manifest file for editing.
|
||||
|
||||
\image qtcreator-android-manifest-editor-package.webp {Package info in Android Manifest Editor}
|
||||
|
||||
\endlist
|
||||
|
||||
The following table summarizes the options you can set.
|
||||
|
||||
\table
|
||||
\header
|
||||
\li Option
|
||||
\li Value
|
||||
\row
|
||||
\li \uicontrol {Package name}
|
||||
\li A valid \l{Package Names}{package name} for the application.
|
||||
For example, \c {org.example.myapplication}.
|
||||
An automatically generated Java launcher that is packaged with the
|
||||
application into an APK launches the application.
|
||||
\row
|
||||
\li \uicontrol {Version code}
|
||||
\li An internal version number for the package that determines whether
|
||||
one version of the application is more recent than another.
|
||||
\row
|
||||
\li \uicontrol {Version name}
|
||||
\li The version number that is visible to users.
|
||||
\row
|
||||
\li \uicontrol {Minimum required SDK}
|
||||
\li The minimum API level required to run the application if you set it
|
||||
manually in the manifest file.
|
||||
\row
|
||||
\li \uicontrol {Target SDK}
|
||||
\li The targeted API level of the application if you set it manually in
|
||||
the manifest file.
|
||||
\row
|
||||
\li \uicontrol {Application name}
|
||||
\li The application's name.
|
||||
\row
|
||||
\li \uicontrol {Activity name}
|
||||
\li An activity name.
|
||||
\row
|
||||
\li \uicontrol {Style extraction}
|
||||
\li The method that Qt uses to determine which \l{Styling}{UI style}
|
||||
to use.
|
||||
\row
|
||||
\li \uicontrol {Screen orientation}
|
||||
\li How to determine \l{Screen Orientation}{screen orientation}.
|
||||
\row
|
||||
\li \uicontrol {Application icon}
|
||||
\li Images to use as \l{Icons}{application icons} depending on screen
|
||||
resolution.
|
||||
\row
|
||||
\li \uicontrol {Splash screen}
|
||||
\li Images to display as \l{Splash Screens}{splash screens} depending on
|
||||
the screen orientation and resolution.
|
||||
\row
|
||||
\li \uicontrol Permissions
|
||||
\li The \l{Setting Permissions}{permissions} that the application needs.
|
||||
\endtable
|
||||
|
||||
On the top header, select the \uicontrol {XML Source} tab to edit the file
|
||||
in XML format.
|
||||
|
||||
\section2 Package Names
|
||||
|
||||
@@ -378,7 +428,7 @@
|
||||
\li Locks the orientation to its current rotation, whatever that is.
|
||||
\endtable
|
||||
|
||||
\section2 Icons and Splash Screens
|
||||
\section2 Icons
|
||||
|
||||
You can set different images to be shown as application icons and splash
|
||||
screens on low, medium, high, and extra high DPI displays. The following
|
||||
@@ -399,16 +449,17 @@
|
||||
high, and extra high DPI displays, as needed. Alternatively, set the icons
|
||||
for each resolution separately.
|
||||
|
||||
\image qtcreator-android-manifest-editor-app-icon.png "Application icons in Android Manifest Editor"
|
||||
\image qtcreator-android-manifest-editor-app-icon.webp {Application icons in Android Manifest Editor}
|
||||
|
||||
\section2 Splash Screens
|
||||
|
||||
Specify settings for splash screens in the \uicontrol {Splash screen} tab.
|
||||
Select images to display as splash screens depending on the device
|
||||
orientation and screen resolution.
|
||||
|
||||
\image qtcreator-android-manifest-editor-splash-screen.png "Splash screens in Android Manifest Editor"
|
||||
\image qtcreator-android-manifest-editor-splash-screen.webp {Splash screens in Android Manifest Editor}
|
||||
|
||||
By default, the splash screen is hidden automatically
|
||||
when an activity is drawn. To keep it visible until
|
||||
By default, drawing an activity hides the splash screen. To keep it visible until
|
||||
\l{https://doc.qt.io/qt-6/qnativeinterface-qandroidapplication.html#hideSplashScreen}
|
||||
{QNativeInterface::QAndroidApplication::hideSplashScreen()} is
|
||||
called, select the \uicontrol {Sticky splash screen} check box.
|
||||
@@ -424,102 +475,22 @@
|
||||
|
||||
Select \uicontrol {Clear All} to reset all settings or remove all images.
|
||||
|
||||
\section2 Android Manifest Editor
|
||||
\section2 Setting Permissions
|
||||
|
||||
If you use qmake as the build system, you can create an Android manifest
|
||||
file and edit it in \QC.
|
||||
|
||||
To create an Android manifest file and to open it in the Android Manifest
|
||||
Editor:
|
||||
|
||||
\list 1
|
||||
|
||||
\li Select \uicontrol Projects > \uicontrol Build >
|
||||
\uicontrol {Build Android APK} > \uicontrol {Create Templates}.
|
||||
|
||||
\li Check the path in \uicontrol {Android package source directory}.
|
||||
|
||||
\image qtcreator-android-create-template.png "Create Template dialog"
|
||||
|
||||
\li Select \uicontrol {Copy the Gradle files to Android directory} if you
|
||||
plan to extend the Java part of your Qt application.
|
||||
|
||||
\li Select \uicontrol Finish to copy the template files to the \c android
|
||||
directory and to open the manifest file for editing.
|
||||
|
||||
\li In the \uicontrol {Package name} field, enter a valid
|
||||
\l{Package Names}{package name} for the application.
|
||||
For example, \c {org.example.myapplication}.
|
||||
The application is launched by an automatically generated Java launcher
|
||||
that is packaged with the application into an Android package (.apk).
|
||||
|
||||
\image qtcreator-android-manifest-editor-package.png "Package info in Android Manifest Editor"
|
||||
|
||||
\li You can specify an internal version number for the package in the
|
||||
\uicontrol {Version code} field. It is used to determine whether one version of
|
||||
the application is more recent than another. In the \uicontrol {Version name}
|
||||
field, specify the version number that is shown to users.
|
||||
|
||||
\li In the \uicontrol {Minimum required SDK} field, select the minimum API level
|
||||
required to run the application. The minimum supported API level for \QC is
|
||||
android-9. However, Qt versions might have different minimum API levels, and
|
||||
therefore \QC does not allow you to select an API level that the Qt version
|
||||
specified for the kit does not support.
|
||||
|
||||
\li In the \uicontrol {Target SDK} field, select the targeted API level of the
|
||||
application. This affects the activation of some compatibility features in
|
||||
the OS. The value used by the \c androiddeployqt tool by default is 14, which
|
||||
means that the overflow button in the system navigation bar will not be
|
||||
enabled by default.
|
||||
|
||||
\li In the \uicontrol {Application name} field, set the application's name.
|
||||
|
||||
\li In the \uicontrol {Activity name} field, set an activity name.
|
||||
|
||||
\li In the \uicontrol {Style extraction} field, set the method that Qt
|
||||
uses to \l{Styling}{determine which UI style to use}.
|
||||
|
||||
\li In the \uicontrol {Screen orientation} field, select the option for
|
||||
determining \l{Screen Orientation}{screen orientation}.
|
||||
|
||||
\li In \uicontrol {Application icon}, specify images to use as application
|
||||
icons depending on screen resolution.
|
||||
|
||||
\li In \uicontrol {Splash screen}, select images to display as splash
|
||||
screens depending on the screen orientation and resolution.
|
||||
|
||||
\li In \uicontrol {Android services}, select \uicontrol Add to add a service.
|
||||
You must enter at least a service class name for a new service. If you select
|
||||
\uicontrol {Run in external process}, you also need to enter a process name.
|
||||
If you select \uicontrol {Run in external library}, you need to enter a library name.
|
||||
Service arguments are mandatory for a service that is not run in an external
|
||||
library. For more information about writing service code and structure of services,
|
||||
see \l{Android Services}.
|
||||
|
||||
\image qtcreator-android-manifest-editor-services.png "Android services in Android Manifest Editor"
|
||||
|
||||
\li In the \uicontrol Permissions field, you can specify the permissions that your
|
||||
application needs. Starting from Android 6.0 (API 23), permissions have to be
|
||||
requested at runtime (see \l{QtAndroidPrivate::requestPermission()}). For
|
||||
lower Android API levels, users are asked to grant the permissions when they
|
||||
Starting from Android 6.0 (API 23), applications have to request permissions
|
||||
at runtime (see \l{QtAndroidPrivate::requestPermission()}). For
|
||||
lower Android API levels, users have to grant the permissions when they
|
||||
install the application. Android OS then grants the application access to the
|
||||
appropriate data and features.
|
||||
|
||||
\image qtcreator-android-manifest-editor-permissions.png "Permissions in Android Manifest Editor"
|
||||
\image qtcreator-android-manifest-editor-permissions.webp {Permissions in Android Manifest Editor}
|
||||
|
||||
\li Select the \uicontrol {Include default permissions for Qt modules} and
|
||||
Select the \uicontrol {Include default permissions for Qt modules} and
|
||||
\uicontrol {Include default features for Qt modules} check boxes to add the
|
||||
permissions needed by Qt libraries. This can be
|
||||
\c {android.permission.WRITE_EXTERNAL_STORAGE} for \l{Qt Core} or
|
||||
\c {android.permission.ACCESS_COARSE_LOCATION} for
|
||||
\l{https://doc.qt.io/qt-5.15/qtlocation-index.html}{Qt Location}.
|
||||
|
||||
\li To add a permission, select it from the list, and then click \uicontrol Add.
|
||||
|
||||
\endlist
|
||||
|
||||
On the top header, select the \uicontrol {XML Source} tab to edit the file
|
||||
in XML format.
|
||||
\c {android.permission.ACCESS_BACKGROUND_LOCATION} for \l{Qt Positioning}.
|
||||
|
||||
To add a permission, select it from the list, and then click \uicontrol Add.
|
||||
*/
|
||||
|
||||
|