diff options
author | Leena Miettinen <riitta-leena.miettinen@qt.io> | 2023-03-16 16:55:31 +0100 |
---|---|---|
committer | Leena Miettinen <riitta-leena.miettinen@qt.io> | 2023-03-21 10:35:39 +0000 |
commit | 5633533e0d485de15aa9ab03bf8a1d6229364558 (patch) | |
tree | 32594435841ef3ca47f7c8397df076401615c864 /doc | |
parent | 8db072d68d61172577dc7e0a3b552d0c4feb1f17 (diff) | |
download | qt-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')
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 Binary files differnew file mode 100644 index 0000000000..91dbba8327 --- /dev/null +++ b/doc/qtcreator/images/extraimages/images/5OiIqFTjUZI.jpg 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 Binary files differdeleted file mode 100644 index 8e3b7c43e0..0000000000 --- a/doc/qtcreator/images/qtcreator-android-build-apk-step.png +++ /dev/null diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.png b/doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.png Binary files differdeleted file mode 100644 index 60678658b1..0000000000 --- a/doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.png +++ /dev/null diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.webp b/doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.webp Binary files differnew file mode 100644 index 0000000000..b596da36f8 --- /dev/null +++ b/doc/qtcreator/images/qtcreator-android-manifest-editor-app-icon.webp diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-package.png b/doc/qtcreator/images/qtcreator-android-manifest-editor-package.png Binary files differdeleted file mode 100644 index 843ca804bf..0000000000 --- a/doc/qtcreator/images/qtcreator-android-manifest-editor-package.png +++ /dev/null diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-package.webp b/doc/qtcreator/images/qtcreator-android-manifest-editor-package.webp Binary files differnew file mode 100644 index 0000000000..bc4546b838 --- /dev/null +++ b/doc/qtcreator/images/qtcreator-android-manifest-editor-package.webp diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.png b/doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.png Binary files differdeleted file mode 100644 index 3918c8fb7a..0000000000 --- a/doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.png +++ /dev/null diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.webp b/doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.webp Binary files differnew file mode 100644 index 0000000000..84c434e53d --- /dev/null +++ b/doc/qtcreator/images/qtcreator-android-manifest-editor-permissions.webp diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-services.png b/doc/qtcreator/images/qtcreator-android-manifest-editor-services.png Binary files differdeleted file mode 100644 index d9850e54ea..0000000000 --- a/doc/qtcreator/images/qtcreator-android-manifest-editor-services.png +++ /dev/null diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.png b/doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.png Binary files differdeleted file mode 100644 index d90e58b33f..0000000000 --- a/doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.png +++ /dev/null diff --git a/doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.webp b/doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.webp Binary files differnew file mode 100644 index 0000000000..b03558c66c --- /dev/null +++ b/doc/qtcreator/images/qtcreator-android-manifest-editor-splash-screen.webp diff --git a/doc/qtcreator/images/qtcreator-android-sdk-manager.png b/doc/qtcreator/images/qtcreator-android-sdk-manager.png Binary files differdeleted file mode 100644 index 7f24683d74..0000000000 --- a/doc/qtcreator/images/qtcreator-android-sdk-manager.png +++ /dev/null diff --git a/doc/qtcreator/images/qtcreator-android-sdk-manager.webp b/doc/qtcreator/images/qtcreator-android-sdk-manager.webp Binary files differnew file mode 100644 index 0000000000..89a1900c90 --- /dev/null +++ b/doc/qtcreator/images/qtcreator-android-sdk-manager.webp diff --git a/doc/qtcreator/images/qtcreator-build-settings-android-apk.webp b/doc/qtcreator/images/qtcreator-build-settings-android-apk.webp Binary files differnew file mode 100644 index 0000000000..a0d28c9ecb --- /dev/null +++ b/doc/qtcreator/images/qtcreator-build-settings-android-apk.webp 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. */ |