summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorLeena Miettinen <riitta-leena.miettinen@qt.io>2023-03-16 16:55:31 +0100
committerLeena Miettinen <riitta-leena.miettinen@qt.io>2023-03-21 10:35:39 +0000
commit5633533e0d485de15aa9ab03bf8a1d6229364558 (patch)
tree32594435841ef3ca47f7c8397df076401615c864 /doc
parent8db072d68d61172577dc7e0a3b552d0c4feb1f17 (diff)
downloadqt-creator-5633533e0d485de15aa9ab03bf8a1d6229364558.tar.gz
Doc: Update Android docs
Fixes: QTCREATORBUG-28858 Task-number: QTCREATORBUG-28721 Change-Id: Id18a2ad0f88600362a5d10e36b3e3d95e5d19644 Reviewed-by: Assam Boudjelthia <assam.boudjelthia@qt.io>
Diffstat (limited to 'doc')
-rw-r--r--doc/qtcreator/images/extraimages/images/5OiIqFTjUZI.jpgbin0 -> 57742 bytes
-rw-r--r--doc/qtcreator/images/extraimages/qtcreator-extraimages.qdocconf3
-rw-r--r--doc/qtcreator/images/qtcreator-android-build-apk-step.pngbin13157 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.pngbin24737 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.webpbin0 -> 15356 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-android-manifest-editor-package.pngbin11248 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-android-manifest-editor-package.webpbin0 -> 4646 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.pngbin5383 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.webpbin0 -> 2754 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-android-manifest-editor-services.pngbin5924 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.pngbin10588 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.webpbin0 -> 5304 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-android-sdk-manager.pngbin10398 -> 0 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-android-sdk-manager.webpbin0 -> 11794 bytes
-rw-r--r--doc/qtcreator/images/qtcreator-build-settings-android-apk.webpbin0 -> 7334 bytes
-rw-r--r--doc/qtcreator/src/android/androiddev.qdoc123
-rw-r--r--doc/qtcreator/src/android/deploying-android.qdoc303
17 files changed, 199 insertions, 230 deletions
diff --git a/doc/qtcreator/images/extraimages/images/5OiIqFTjUZI.jpg b/doc/qtcreator/images/extraimages/images/5OiIqFTjUZI.jpg
new file mode 100644
index 0000000000..91dbba8327
--- /dev/null
+++ b/doc/qtcreator/images/extraimages/images/5OiIqFTjUZI.jpg
Binary files differ
diff --git a/doc/qtcreator/images/extraimages/qtcreator-extraimages.qdocconf b/doc/qtcreator/images/extraimages/qtcreator-extraimages.qdocconf
index af81e51192..200058d4a4 100644
--- a/doc/qtcreator/images/extraimages/qtcreator-extraimages.qdocconf
+++ b/doc/qtcreator/images/extraimages/qtcreator-extraimages.qdocconf
@@ -1,2 +1,3 @@
{HTML.extraimages,qhp.QtCreator.extraFiles} += \
- images/commercial.png
+ images/commercial.png \
+ images/5OiIqFTjUZI.jpg
diff --git a/doc/qtcreator/images/qtcreator-android-build-apk-step.png b/doc/qtcreator/images/qtcreator-android-build-apk-step.png
deleted file mode 100644
index 8e3b7c43e0..0000000000
--- a/doc/qtcreator/images/qtcreator-android-build-apk-step.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.png b/doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.png
deleted file mode 100644
index 60678658b1..0000000000
--- a/doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.webp b/doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.webp
new file mode 100644
index 0000000000..b596da36f8
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-package.png b/doc/qtcreator/images/qtcreator-android-manifest-editor-package.png
deleted file mode 100644
index 843ca804bf..0000000000
--- a/doc/qtcreator/images/qtcreator-android-manifest-editor-package.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-package.webp b/doc/qtcreator/images/qtcreator-android-manifest-editor-package.webp
new file mode 100644
index 0000000000..bc4546b838
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-android-manifest-editor-package.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.png b/doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.png
deleted file mode 100644
index 3918c8fb7a..0000000000
--- a/doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.webp b/doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.webp
new file mode 100644
index 0000000000..84c434e53d
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-services.png b/doc/qtcreator/images/qtcreator-android-manifest-editor-services.png
deleted file mode 100644
index d9850e54ea..0000000000
--- a/doc/qtcreator/images/qtcreator-android-manifest-editor-services.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.png b/doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.png
deleted file mode 100644
index d90e58b33f..0000000000
--- a/doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.webp b/doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.webp
new file mode 100644
index 0000000000..b03558c66c
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-android-sdk-manager.png b/doc/qtcreator/images/qtcreator-android-sdk-manager.png
deleted file mode 100644
index 7f24683d74..0000000000
--- a/doc/qtcreator/images/qtcreator-android-sdk-manager.png
+++ /dev/null
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-android-sdk-manager.webp b/doc/qtcreator/images/qtcreator-android-sdk-manager.webp
new file mode 100644
index 0000000000..89a1900c90
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-android-sdk-manager.webp
Binary files differ
diff --git a/doc/qtcreator/images/qtcreator-build-settings-android-apk.webp b/doc/qtcreator/images/qtcreator-build-settings-android-apk.webp
new file mode 100644
index 0000000000..a0d28c9ecb
--- /dev/null
+++ b/doc/qtcreator/images/qtcreator-build-settings-android-apk.webp
Binary files differ
diff --git a/doc/qtcreator/src/android/androiddev.qdoc b/doc/qtcreator/src/android/androiddev.qdoc
index 2c39ce3e51..a171476b13 100644
--- a/doc/qtcreator/src/android/androiddev.qdoc
+++ b/doc/qtcreator/src/android/androiddev.qdoc
@@ -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
diff --git a/doc/qtcreator/src/android/deploying-android.qdoc b/doc/qtcreator/src/android/deploying-android.qdoc
index 6375140fd8..0e1c2e7fde 100644
--- a/doc/qtcreator/src/android/deploying-android.qdoc
+++ b/doc/qtcreator/src/android/deploying-android.qdoc
@@ -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
-
- 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.
+ \section2 Setting Permissions
- \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.
*/