qtdoc/doc/src/platforms/android/android.qdoc

398 lines
14 KiB
Plaintext
Raw Normal View History

Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
// Copyright (C) 2023 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only
/*!
\page android.html
\title Qt for Android
\brief Provides information about Android support in Qt.
\ingroup supportedplatform
\nextpage android-getting-started.html
Qt for \tm Android enables you to develop Qt applications for Android devices,
and supports a wide range of features and use-cases.
To start your Qt for Android application, download and install Qt for Android
and use the \QC IDE, follow the instructions on the
\l{Getting Started with Qt for Android} page.
If you have an existing Android application, try \l{Qt Quick for Android}. It includes
\l{\QtTAS}{plugin} for Google's Android Studio. Find it on the IntelliJ marketplace.
This enables you to add Qt Quick content to your Android app as a \l {Android: View}{View}.
To build Qt from source, see
\l{Qt for Android - Building from Source}{Building from Source}.
\target android-supported-configurations
\section1 Supported Configurations
\include supported-platforms.qdocinc android
\section1 Explore Qt for Android
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
To learn about developing with Qt for Android, here are the main topics
to check:
\list
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\li \l {Getting Started with Qt for Android}
\li \l {Deploying an Application on Android}
\li \l {How Qt for Android Works}
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\li \l {Qt for Android - Building from Source}{Building Qt for Android from Source}
\li \l {Building Qt for Android Projects from Command Line}
\li \l {The androiddeployqt Tool}
\li \l {Qt for Android Manifest File Configuration}
\li \l{Qt Jenny: Java Code Generator}
\endlist
The following topics also provide more details about Qt for Android:
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\annotatedlist android-platform-extra-topics
\section1 Android Fragments
You cannot use \l{Android: Fragments}{Android Fragments} in a Qt for Android application.
However, Qt does offer its own modular components and views with QML. You can combine
multiple components in one QML view. For more information, see \l{Qt Qml}.
If you are integrating \l{Qt Quick for Android} into an Android application, the
\l QtQuickView API can be used inside fragments.
Qt's vibrant and active \l{https://www.qt.io/developers}{community site}
houses a wiki, a forum, and additional learning guides and presentations.
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
For information about licensing, check \l {Android GNU C++ Run-time Licensing}.
\section1 Where to Go from Here
We invite you to explore the rest of Qt. We prepared overviews which help
you decide which APIs to use and our examples demonstrate how to use our
APIs.
\list
\li \l{Qt Overviews} - list of topics about application development
\li \l{Qt Examples and Tutorials}{Examples and Tutorials} - code samples and tutorials
\li \l{Qt Reference Pages} - a listing of C++ and QML APIs
\li \l{\QC: Tutorial: Mobile application}
\li \l{\QC: Set up Android development environment}
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\endlist
*/
/*!
\page android-getting-started.html
\title Getting Started with Qt for Android
\brief Provides instructions to install and configure your development environment.
\previouspage android.html
\nextpage android-how-it-works.html
The video below is a beginner's guide to using the Qt for Android toolchain,
including the \QC IDE, to get you started developing Qt for Android apps.
\youtube 5OiIqFTjUZI
To learn the basics of getting started with Qt for Android, take the
\l {https://www.qt.io/academy/course-catalog#getting-started-with-qt-for-android-}
{Getting Started with Qt for Android} course in Qt Academy.
The rest of this page has more detailed getting started information.
To download and install Qt for Android, follow the instructions on the
\l{Getting Started with Qt} page.
\section1 Android Development Prerequisites
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
In order to develop with \l{Qt for Android}, you will need the following
prerequisites:
\list
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\li \l {Java Development Kit (JDK)}
\li \l {Android: Android command line tools}{Android Command Line Tools}
which includes:
\list
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\li \l{Android: The Android NDK}{Android NDK}: for building C++ code.
\li \l{Android: Android SDK Platforms}{Android SDK Platform} and
\l{Android: Android SDK Build Tools}{Android SDK Build Tools}: for building
Android apps for specific API versions.
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\li \l{Android: Android SDK Platform Tools}{Android SDK Platform Tools}:
for deploying and managing Android dependencies.
\endlist
\endlist
The easiest way to manage the dependencies is by using \QC's built-in
Android development setup. When you first open \QC after installing Qt for
Android, you are asked if you want to run the Android setup wizard. This also
sets up OpenSSL for Android.
\section2 Using an existing SDK location
If you already have an Android SDK setup, you don't need to run this wizard. Instead, in
\QC go to \uicontrol{Preferences > Devices > Android} and browse to your existing JDK
and SDK paths. See common \l{Android SDK paths}. For more information, see
\l{\QC: Set up Android development environment}.
\section2 Manually Installing the Prerequisites
If you prefer to manually install the prerequisites please follow
these next steps.
\section3 Java Development Kit (JDK)
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
Qt for Android development requires JDK \JdkVer or above, provided by any of the
following supported distributions:
\list
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\li \l{Adoptium}
\li \l{OpenJDK}
\li \l{Java SE Development Kit}
\endlist
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
Install your preferred JDK. If your installer doesn't set the
\c JAVA_HOME environment variable that points to the location of
the installed JDK, you can set it manually. For example on Linux:
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\badcode \JdkVer
sudo apt-get install openjdk-\1-jdk
export JAVA_HOME=/usr/lib/jvm/java-\1-openjdk-amd64
\endcode
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
Or on \macOS:
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\badcode \JdkVer
brew install openjdk@\1
sudo ln -sfn "$(brew --prefix openjdk@\1)/libexec/openjdk.jdk" \
"/Library/Java/JavaVirtualMachines/openjdk-\1.jdk"
export JAVA_HOME="$(/usr/libexec/java_home -v \1)"
\endcode
\section3 Android SDK Command Line Tools
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
Download the latest version of the
\l{Android: Android command line tools}{Android SDK Command Line Tools}
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
for your operating system and extract it to the appropriate path as stated below.
\section4 Android SDK paths
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
//! [Android SDK Paths]
The Android SDK is commonly installed by \QC or Android Studio
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
in the following locations:
\list
\li Linux: ~/Android/Sdk/
\li \macos: ~/Library/Android/sdk/
\li Windows: C:\\Users\\<USER>\\AppData\\Local\\Android\\Sdk\\
\endlist
//! [Android SDK Paths]
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
Or use your OS's package manager, for example for \macOS:
\badcode
brew install android-commandlinetools
\endcode
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\section3 Android SDK Mandatory Packages
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
Make sure to install the SDK Platform, Platform Tools, and Build Tools.
For Qt \QtVer, use:
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\badcode \AndroidPlatformVer \AndroidBuildToolsVer
sdkmanager "platform-tools" "platforms;android-\1" "build-tools;\2"
\endcode
\section3 Android NDK
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
Qt \QtVer uses NDK \NdkFullVer, you can install it by running:
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\badcode \NdkFullVer
sdkmanager "ndk;\1"
\endcode
For example for \macOS:
\section3 Emulator
If you wish to use the \l{Android: Android Emulator}{Android Emulator},
you can install it by running:
\badcode
sdkmanager "emulator"
\endcode
\section3 Platform Specific Configurations
\section4 Windows
The default USB driver on Windows does not allow debugging using
Android Debug Bridge (ADB) tool. You must install the additional USB driver
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
provided by the \e extras Android SDK package. Install it by running the following:
\badcode
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
sdkmanager.bat "extras;google;usb_driver"
\endcode
\section4 Linux
The following dependencies are needed for using tools such as \c adb or \c gdb which
can be used by \QC:
\badcode
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
sudo apt-get install libstdc++6 libncurses5
\endcode
\target emulator dependencies
To run the Android emulator, the following dependencies are also necessary:
Android: update the docs and remove outdated or misleading parts I noticed many parts of the Android docs are still mentioning outdated or straight wrong information or in other cases, lots of duplicated information. This is an attempt to remedy that all at once. What's included in this patch: * Extend the supported platforms table to include relevant information like JDK, Gradle and AGP versions (this needs the following patch 46c1414c3bc782f128b24480d5c8367eeb58157b). * In getting started or building Qt pages, made the dependencies tools version more dynamic using the macros to have less manual maintenance. * Removed unneeded or redundant steps in gettings started and building Qt pages to have the page more lightweight and straight to the point. * In deployment page, re-wrote the page to more efficiently go through the relevant parts that a user would want to know about developing, extending and deploying a Qt Android app. * Added missing info about Gradle, Gradle wrapper and AGP. * use \annotedlist to collection CMake variables/properties to dynamically add new values instead of having to do it manually. * Convert the Android environment variable list to a table which is better formatted. * The main Android page had an \annotatedlist with all pages, but the pages were scattered and it's not easy to know which are the most relevant pages for someone new, so I moved the most important pages outside of the annoted list. * Added CMake snippets or command or prioritized them over qmake in relevant places. * Refactored many pages to avoid duplication and add links to the same information instead. * In OpenSSL page, prioritize using the pre-built libs over building them manually, since that's what most users would end up doing. * In publishing to the store, added parts about using CMake multi-abi feature. * In 3rdparty page, added parts about include shared libraries and not only jar dependencies as it was. * In platforms notes, removed or moved many parts that were mentioned elsewhere many times already. * Moved 'Where to Go from Here' section in main page to end as it makes sense to go through the Android specific parts and then go elsewhere only after that. Task-number: QTBUG-115020 Pick-to: 6.7 Change-Id: I05e73f4a6af216b73b3892b0ec3b1b25174ff0b5 Reviewed-by: Nicholas Bennett <nicholas.bennett@qt.io> Reviewed-by: Rami Potinkara <rami.potinkara@qt.io>
2023-12-16 01:14:08 +00:00
\section3 Testing the Setup
Now you can test your development setup by running the examples shipped with the
Qt installation. For more information, see
\l{Qt Examples And Tutorials#Mobile}{Mobile Examples}.
To develop a simple application from scratch, see
\l {\QC: Tutorial: Mobile application}.
*/
/*!
\page android-supported-versions-selection-guidelines.html
\title Qt for Android Supported Versions Selection Guidelines
\brief Provides information about supported Android versions under a Qt release.
To keep the supported versions to a level thats maintainable
by Qt, especially for LTS releases which are expected to live for a period of
3 years, Qt for Android has guidelines for selecting the supported
versions for a given Qt release. This makes the selection clear and
transparent, and help shape proper expectations of support for each Qt for
Android release.
\section1 Minimum Supported Version
The guidelines for selecting the minimum supported version are:
\list
\li Evaluate the minimum version once a year for the fall release of Qt,
which would also cover LTS releases.
\li Target at least 90% of the cumulative usage in the market as listed
on \l {https://apilevels.com}{apilevels.com} at the time of the
platform freeze deadline of a given fall release.
\li The selection is done 1 month before the platform freeze, at which
time we check what versions would fit the 90% range, and decide
whether to select a more recent minimum version or not and to what
new minimum version.
\li The changes are communicated to the Qt development mailing list,
and reflected in the release change log and Qt for Android documentation.
\li In exceptional cases where a change is needed to a version that doesnt
respect the criteria above, it will be announced at the time of the
platform freeze deadline along with reasons for the decision.
\endlist
The minimum version changes will be reflected in our CI test runs, and in
the build system (i.e. CMake and androiddeployqt), thus the released libraries
would require said minimum version to run. To target older versions a Qt
rebuild with appropriate build system changes would be needed. Even if such
builds might work for older versions, note that they would fall outside
of Qt official support scope. Although, the official Qt for Android libraries
might or might not work for builds targeting older versions than the minimum
for the release.
\section1 Maximum Supported Version
In a spring Qt release, we aim to support an Android version which was
released by Google in the fall of the year before. This becomes the new
maximum supported version by Qt.
Qt LTS releases would also support new Android versions coming out to market
for up to two years after the initial Qt LTS patch release. This allows users
to target newer Android versions to comply with Google Play Store target
SDK publishing policies. In effect, new Android versions released in this
two year period will become the maximum versions supported for the LTS
release in the following patch release of the Qt LTS version.
\section1 Target Devices used in Automated Testing
\target target-android-devices-in-rta
Below is a list of Android devices in automated testing of Qt for Android
releases, it is inclusive of \b {but not limited to} these devices:
\table 50%
\header \li Device \li OS Version \li Architecture \li Form Factor
\row \li \l{Pixel 3a}
\li Android 10 (API 29)
\li arm64_v8a
\li Mobile
\row \li \l{Pixel 2}
\li Android 11 (API 30)
\li arm64_v8a
\li Mobile
\row \li \l{Pixel 2 XL}
\li Android 11 (API 30)
\li arm64_v8a
\li Mobile
\row \li \l{Pixel 4A}
\li Android 12 (API 31)
\li armv7, arm64_v8a
\li Mobile
\row \li \l{Pixel 6}
\li Android 13 (API 33)
\li arm64_v8a
\li Mobile
\row \li \l{Pixel 6 Pro}
\li Android 12 (API 31)
\li arm64_v8a
\li Mobile
\row \li \l{Pixel 6a}
\li Android 14 (API 34)
\li arm64_v8a
\li Mobile
\row \li \l{Pixel 7}
\li Android 13 (API 33)
\li arm64_v8a
\li Mobile
\row \li \l{Pixel 7 Pro}
\li Android 13 (API 33)
\li arm64_v8a
\li Mobile
\row \li \l{Pixel 7a}
\li Android 14 (API 34)
\li arm64_v8a
\li Mobile
\row \li \l{Samsung Galaxy S10}
\li Android 9 (API 28)
\li armv7, arm64_v8a
\li Mobile
\row \li \l{Samsung Galaxy S21}
\li Android 12 (API 31)
\li armv7, arm64_v8a
\li Mobile
\row \li \l{Samsung Galaxy Tab S4}
\li Android 10 (API 29)
\li armv7, arm64_v8a
\li Tablet
\row \li \l{Nothing Phone 1}
\li Android 14 [UP1A.231005.007] (API 34)
\li arm64_v8a
\li Mobile
\row \li \l{Samsung Galaxy Tab A9+}
\li Android 14 [UP1A.231005.007] (API 34)
\li arm64_v8a
\li Tablet
\row \li \l{Pixel 6a}
\li Android 15 [AP3A.241105.007] (API 35)
\li arm64_v8a
\li Mobile
\row \li \l{Pixel 8}
\li Android 15 [BP1A.250505.005.B1] (API 35)
\li arm64_v8a
\li Mobile
\row \li \l{Pixel Tablet}
\li Android 16 [BP22.250325.007] (API 36)
\li arm64_v8a
\li Tablet
\row \li \l{Samsung Galaxy A26}
\li Android 15 (API 35)
\li arm64_v8a
\li Tablet
\endtable
\note The above table is accurate at the time of this Qt patch release only.
It may change during the patch release cycle and should only be used as a
reference for what the Qt Company can rapidly reproduce bugs on.
*/