| /**************************************************************************** |
| ** |
| ** Copyright (C) 2020 The Qt Company Ltd. |
| ** Contact: https://www.qt.io/licensing/ |
| ** |
| ** This file is part of the documentation of the Qt Toolkit. |
| ** |
| ** $QT_BEGIN_LICENSE:FDL$ |
| ** Commercial License Usage |
| ** Licensees holding valid commercial Qt licenses may use this file in |
| ** accordance with the commercial license agreement provided with the |
| ** Software or, alternatively, in accordance with the terms contained in |
| ** a written agreement between you and The Qt Company. For licensing terms |
| ** and conditions see https://www.qt.io/terms-conditions. For further |
| ** information use the contact form at https://www.qt.io/contact-us. |
| ** |
| ** GNU Free Documentation License Usage |
| ** Alternatively, this file may be used under the terms of the GNU Free |
| ** Documentation License version 1.3 as published by the Free Software |
| ** Foundation and appearing in the file included in the packaging of |
| ** this file. Please review the following information to ensure |
| ** the GNU Free Documentation License version 1.3 requirements |
| ** will be met: https://www.gnu.org/licenses/fdl-1.3.html. |
| ** $QT_END_LICENSE$ |
| ** |
| ****************************************************************************/ |
| |
| /*! |
| \page android.html |
| \title Qt for Android |
| \brief Provides information about Android support in Qt. |
| \ingroup supportedplatform |
| |
| Qt for Android enables you to run Qt 5 applications on Android devices. |
| All Qt modules (essentials and add-ons) are supported except the following: |
| |
| \list |
| \li Qt WebEngine |
| \li Qt Serial Port |
| \li Qt Virtual Keyboard |
| \li Platform-specific extras: Qt Mac Extras, Qt Windows Extras, and |
| Qt X11 Extras |
| \endlist |
| |
| The following configurations are supported: |
| |
| \include supported-platforms.qdocinc android |
| |
| The following list summarizes what you can do with Qt for Android: |
| |
| \list |
| \li Run \l{Qt Widgets}{Widget-based} and \l{QML Applications}{QML} |
| applications on a device or an emulator. |
| \li Support for the \l{Material Style}{Material Style} with |
| Qt Quick Controls. |
| \li Handle \l{Qt Multimedia}{Multimedia} content in your |
| Qt Quick 2 applications. |
| \li Get \l{Qt Sensors}{sensor} readings. |
| \li Retrieve positioning data using satellite or network information. |
| \li Connect and exchange data with \l{Qt Bluetooth}{Bluetooth} |
| and \l{Qt NFC}{NFC}-enabled devices. |
| \li Integrate Java code into your application using \l{Qt Android Extras}. |
| \li Develop secure applications using OpenSSL library. |
| \li Create \l{Android Services}. |
| \li Create and deploy Application Package (APK) and Android App Bundle (AAB) |
| packages using Qt Creator. |
| \endlist |
| |
| The following topics provide more details about how to use Qt for Android: |
| \list |
| \li \l{Getting Started with Qt for Android}{Getting Started} |
| \li \l{Porting to Android}{Porting a Qt Application} |
| \li \l{Qt for Android Examples}{Qt Examples on Android} |
| \li \l{Deploying an Application on Android} |
| \li \l{Qt Creator: Deploying Applications to Android Devices} |
| \li \l{Adding OpenSSL Support for Android} |
| \li \l{Android Services}{Creating Android Services} |
| \li \l{Third-party Android Libraries} |
| {Including third-party Android libraries in an application} |
| \li \l{Publishing to Google Play} |
| \li \l{Android Platform Notes} |
| \li \l{Qt for Android - Building from Source} |
| \li \l{Android GNU C++ run-time licensing} |
| \endlist |
| */ |
| |
| /*! |
| \page android-getting-started.html |
| \title Getting Started with Qt for Android |
| \brief Provides instructions to install and configure your development environment. |
| |
| \section1 Installing the Prerequisites |
| |
| In order to use \l{Qt for Android}, you need the following: |
| |
| \list |
| \li \l {Java SE Development Kit} (JDK) or \l{ OpenJDK} (on Linux) |
| version 6 up to 8. Versions higher than 8 might cause issues for |
| \l {android-sdk}{the Android SDK command-line tools}. |
| |
| \li \l{Gradle} for building application packages (APK) and app bundles |
| (AAB) for Android devices. Gradle is delivered with Qt 5.9, and later. |
| Because Gradle scripts are not delivered with Android SDK tools since |
| version 26.0.0, they are delivered with Qt 5.9 and 5.6.3. |
| |
| \note Using Ant to build APKs is no longer supported. |
| |
| \target android-sdk |
| \li \l{Android: The Android SDK Tools}{The Android SDK Tools} |
| to install the following packages that are required to compile Qt |
| applications for Android: |
| |
| \list |
| \li Platform tools |
| \li Build tools |
| \li At least one SDK platform |
| \li \l {android-ndk}{The Android NDK}, which contains toolchains |
| and debuggers for Android. |
| \endlist |
| |
| \note Qt Creator 4.12 or later can set up the SDK Tools, NDK, and |
| essential packages automatically. For more information, see |
| \l {Qt Creator: Specifying Android Device Settings}. |
| |
| \note If your Qt version is earlier than v5.9, use the SDK tools package |
| v25.2.5 or earlier. |
| |
| \target android-ndk |
| \li \l{Android: The Android NDK}{The Android NDK} |
| can be installed using the \c sdkmanager tool. Alternatively, you can |
| download it and extract it manually to a path of your choosing. |
| Different Qt versions depend on different NDK versions, as listed below: |
| |
| \list |
| \li Qt 5.14.0 or later, Qt 5.13.2 or later, and Qt 5.12.6 or later |
| \list |
| \li NDK r20b or r21 |
| \li \e android-clang |
| \li \note Qt 5.14.0 and 5.14.1 with NDK r21 have a bug fixed at |
| \l {QTBUG-81461}. |
| \endlist |
| \li Qt 5.12.0 to 5.12.5 and Qt 5.13.0 to 5.13.1 |
| \list |
| \li NDK r19c |
| \li \e android-clang |
| \endlist |
| \li Qt 5.11 and below |
| \list |
| \li NDK r10e |
| \li GCC toolchain |
| \endlist |
| \endlist |
| \endlist |
| |
| After installing the SDK tools, update the Android SDK, and then |
| install the essential packages using \l {Android: Android Studio} |
| {Android Studio}, the Qt Creator \l {Qt Creator: Managing Android SDK Packages} |
| {SDK Manager UI}, or the \l {Android: sdkmanager}{sdkmanager} command |
| line tool. |
| |
| \note Make sure to unpack the Android SDK and NDK to a writeable location that Qt Creator |
| can access later. Otherwise, Qt Creator won't be able to use \c sdkmanager or find all |
| components even if they were installed manually. |
| |
| \section2 Updating the Android SDK |
| |
| Use the \c sdkmanager command line tool to update the packages list and then |
| install the essential packages: |
| |
| \badcode |
| cd <ANDROID_SDK_ROOT>/tools/bin/ |
| ./sdkmanager --update |
| ./sdkmanager --install "platform-tools" "platforms;android-29" "build-tools;29.0.2" "ndk-bundle" |
| \endcode |
| |
| To use the \l {Android: Android Emulator}{Android Emulator}, install it by |
| entering: |
| |
| \badcode |
| ./sdkmanager --install "emulator" "patcher;v4" |
| \endcode |
| |
| \section1 Host Specific Configuration |
| |
| \section2 Windows |
| |
| The default USB driver on Windows does not allow debugging using |
| Android Debug Bridge (ADB) tool. You must install the additional USB driver |
| provided by the \e extras Android SDK package. To install it, run the following: |
| |
| \badcode |
| sdkmanager.bat --install "extras;google;usb_driver" |
| \endcode |
| |
| After the package installation is complete, install the driver from |
| \c{<ANDROID_SDK_ROOT>/extras/google/usb_driver}. Try running a few basic |
| \l{Android: adb}{adb} commands now and check whether your Android device |
| responds to them. |
| |
| \section2 Linux 64-bit |
| |
| If you're developing on a 64-bit Linux machine, you must install the |
| following dependencies in order to run 32-bit executables like \c adb, which |
| allows Qt Creator to find devices to deploy to: |
| |
| \badcode |
| sudo apt-get install libstdc++6:i386 libgcc1:i386 zlib1g:i386 libncurses5:i386 |
| \endcode |
| |
| \target emulator dependencies |
| To run the Android emulator, the following dependencies are also necessary: |
| |
| \badcode |
| sudo apt-get install libsdl1.2debian:i386 |
| \endcode |
| |
| \section2 Qt Creator IDE |
| |
| The Qt Creator IDE can be used to develop Qt applications for Android. For more |
| information, see \l{Qt Creator: Connecting Android Devices}. |
| |
| \section1 Testing Your Setup |
| |
| Now you can test your development setup by running the examples shipped with the |
| Qt installation. For more information, see \l {Qt for Android Examples}. |
| |
| To develop a simple application from scratch, see |
| \l {Qt Creator: Creating a Mobile Application}. |
| */ |