Files
qt-creator/doc/qtcreator/src/android/androiddev.qdoc

318 lines
14 KiB
Plaintext
Raw Normal View History

/****************************************************************************
**
** Copyright (C) 2019 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Creator documentation.
**
** 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.
**
****************************************************************************/
/*!
\contentspage index.html
\page creator-developing-android.html
\previouspage creator-connecting-mobile.html
\if defined(qtdesignstudio)
\nextpage creator-developing-generic-linux.html
\else
\nextpage creator-developing-baremetal.html
\endif
\title Connecting Android Devices
You can connect Android devices to the development PC to run, debug,
and analyze applications built for them from \QC. Devices with Android
version 4.1 (API level 16) or later are supported.
If you have a tool chain for building applications for Android devices
installed on the development PC, you can add it to \QC. You can then add a
\l{glossary-buildandrun-kit}{kit}
with the Android device type, the tool chain, and the Qt version for Android,
to build applications for and run them on Android devices. You can also
allow \QC to automatically configure the kit.
The Android Debug Bridge (adb) command line tool is integrated to \QC to
enable you to deploy applications to connected Android devices, to run
the applications on them, and to read logs from them. It includes a client
and server that run on the development host and a daemon that runs on the
emulator or device.
\section1 Requirements
To use \QC to develop Qt applications for Android, you need the following:
\list
\li \l{http://www.oracle.com/technetwork/java/javase/downloads/index.html}
{Java SE Development Kit (JDK)} version 6, or later.
You can also use \l{http://openjdk.java.net/}{OpenJDK} on Linux.
\note Android SDK Tools have issues with JDK versions later than 8.
\li \l{http://www.gradle.org}{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.
\li A tool chain for building applications for Android devices provided
by the \l{http://developer.android.com/tools/sdk/ndk/index.html}
{Android NDK} from Google.
\note To develop with Qt 5.14.0 or later, you need Android NDK r20
or later.
\li \l{http://developer.android.com/sdk/index.html}{Android SDK Tools}
The following Android SDK packages and tools are required for
development:
\list
\li Platform tools
\li Build tools
\li At least one SDK platform
\endlist
\li On Windows, you also need the following:
\list
\li Android Debug Bridge (ADB) driver on the Windows platform to
enable USB debugging. The default USB driver on Windows does not
allow debugging. For more information about obtaining the USB
driver, see \l{http://developer.android.com/sdk/win-usb.html}.
After installing the driver, try running a few basic
\l{http://developer.android.com/tools/help/adb.html}{adb}
commands to check that your device responds to them.
\endlist
\note When using the command line tools instead of Android Studio,
it is recommended to create an empty folder and extract the
downloaded archive into this folder.
The sdkmanager will install downloaded packages next to the
\c tools folder that contains all command line tools.
You must specify the path to the folder where you extracted the
files as Android SDK location inside the Android settings.
\endlist
\section1 Setting Up the Development Environment
You must download and install the latest Android NDK and SDK, and then
update or install the tools and packages needed for development. However,
if your Qt version is earlier than v5.9, use the SDK tools package v25.2.5
or earlier.
The SDK tool used to update and install the other SDK tools and packages
depends on the Android SDK Tools version that you have installed:
\list
\li Android SDK Tools version 25.2.5, or earlier
Use the
\l{https://developer.android.com/studio/tools/help/android.html}
{android} tool that comes with the SDK Tools package. For example,
on Ubuntu the following command starts the SDK update:
\code
./android update sdk
\endcode
\li Android SDK Tools version 25.3.0, or later
Use the
\l{https://developer.android.com/studio/command-line/sdkmanager.html}
{sdkmanager} command line tool for SDK package management and the
\l{https://developer.android.com/studio/command-line/avdmanager.html}
{avdmanager} tool for Android Virtual Device (AVD) management.
\endlist
In addition, you must install Qt for Android as part of Qt 5.2, or later.
\note You can build a 64-bit version of Qt for Android yourself. However,
for such a Qt version, the minimum required Android version on devices
is 5.0 (API level 21).
For more information, see \l{Qt for Android}.
\section2 Specifying Android Device Settings
To configure connections between \QC and Android devices:
\list 1
\li Select \uicontrol Tools > \uicontrol Options > \uicontrol Devices >
\uicontrol Android.
\image qtcreator-options-android1.png "Android options"
\li In the \uicontrol {JDK location} field, add the path to the JDK.
Select the \inlineimage icons/download-icon.png
(\uicontrol Download) button to go to the site where you can
download the JDK. \QC checks the JDK installation and reports
errors.
\li In the \uicontrol {Android Settings} group, add paths to the Android
NDK and SDK.
Select \inlineimage icons/download-icon.png
to go to the sites where you can download the Android NDK and SDK.
The SDK Manager checks the Android NDK and SDK installations,
reports errors, and offers to install the necessary packages.
\image qtcreator-options-android2.png "Android NDK and SDK checks"
For more information, see \l {Managing Android SDK Packages}.
\li Select the \uicontrol {Automatically create kits for Android tool chains}
check box to allow \QC to create the kits for you. \QC displays a
warning if it cannot find a suitable Qt version.
\li Select \uicontrol File > \uicontrol {New File or Project} > \uicontrol Application >
\uicontrol {Qt Quick Application} > \uicontrol Choose, and
follow the instructions of the wizard to create a project. For more
information, see
\if defined(qtcreator)
\l{Creating Qt Quick Projects}.
\else
\l{Creating UI Prototype Projects}.
\endif
\li To specify settings for deploying applications to Android, select
\uicontrol Projects > \uicontrol Run for the \uicontrol Android kit, and then select
\uicontrol Details to view the \uicontrol {Deploy configurations}. For more
information about the options you have, see
\l{Deploying Applications to Android Devices}.
\li Enable debugging on your Android device.
Debugging is enabled in different ways on different Android devices.
Look for \uicontrol {USB Debugging} under \uicontrol {Developer Options}. On
some devices \uicontrol {Developer Options} is hidden and becomes visible
when you tap the \uicontrol {Build number} field in \uicontrol Settings >
\uicontrol About several times.
\li Connect the Android device to the development PC with a USB cable.
You might be asked to select a device in the
\uicontrol {Select Android Devices} dialog.
\endlist
\section2 Managing Android SDK Packages
Since Android SDK Tools version 25.3.0, only a command-line tool,
\l{https://developer.android.com/studio/command-line/sdkmanager.html}
{sdkmanager}, is provided by Android for SDK package management. To make SDK
management easier, \QC provides an SDK Manager for installing, updating, and
removing SDK packages. You can still use sdkmanager for advanced SDK
management.
When you add paths to the Anroid NDK and SDK in the device options, the
SDK Manager checks that all the necessary SDK packages have been installed.
If packages are missing or updates are needed, the SDK Manager offers to
add and remove packages, as necessary. Before taking action, it prompts you
to accept the changes it is about to make. In addition, it prompts you to
accept Google licenses, as necessary.
To view the installed Android SDK packages, select \uicontrol Tools >
\uicontrol Options > \uicontrol Devices > \uicontrol Android >
\uicontrol {SDK Manager}.
\image qtcreator-android-sdk-manager.png "Android SDK Manager"
To filter the packages, select \uicontrol Available, \uicontrol Installed,
or \uicontrol All in \uicontrol {Show Packages}.
To update the installed Android SDK packages, select
\uicontrol {Update Installed}. Select the packages to update, and then
select \uicontrol Apply.
To specify advanced sdkmanager settings, select
\uicontrol {Advanced Options} and enter arguments in the
\uicontrol {SDK Manager arguments} field. The available arguments are listed
and described in \uicontrol {Available arguments}.
To manage packages installed from Android SDK Tools version 25.2.5, or
earlier, you can use the native Android SDK Manager. The \QC SDK Manager and
the native SDK Manager are mutually exclusive, because they are used for
different Android SDK Tools versions. If you have the native SDK Manager
installed, you can open it by selecting \uicontrol {Native SDK Manager}.
\section1 Selecting Android Devices
When you deploy an application to an Android device with Android
version 4.2 or later, the \uicontrol {Select Android Devices} dialog opens. It
lists the devices that are connected to the development PC. and their
status. You can select devices from the \uicontrol {Compatible Devices} list for
deployment.
If \QC determines that a device is not ready for deployment, it places the
device in the \uicontrol {Incompatible Devices} list, with information about the
issue. For example, you might need to authorize the connection on the
device. After you authorize the connection on the device, select
\uicontrol {Refresh Device List}. The device is moved to the
\uicontrol {Compatible Devices} list and you can select it for deployment.
Other reasons for placing a device on the \uicontrol {Incompatible Devices} are
that the Android version on the device is too old or that the tool chain
used for building does not match the Android architecture on the device
(for example, you cannot deploy an ARM build on an x86 device).
\image qtcreator-android-select-devices.png "Select Android Devices dialog"
AVDs are also listed. To create new AVDs, select
\uicontrol {Create Android Virtual Device}.
To set a device as the default device for a particular Android architecture,
select the \uicontrol {Always use this device for architecture} check box. The
\uicontrol {Select Android Devices} dialog will not appear until you switch to
another project or restart \QC.
\section1 Using the Android Emulator
To run your application on the Android Emulator, you must create Android
virtual devices (AVD). Select \uicontrol Tools > \uicontrol Options >
\uicontrol Devices > \uicontrol Android >
\uicontrol Add. If you run an application without a device connected to the
development PC and without an AVD specified, \QC asks you to add an AVD.
To manage AVDs, select \uicontrol {Start AVD Manager}.
\note The Android Emulator has a bug that prevents it from starting on some
systems. If the Android Emulator does not start, you can try starting it
manually by running the \c {emulator-arm} command from the command line.
\section1 Debugging on Android Devices
Select a \l{glossary-build-config}{debug build configuration} to build
the application for debugging.
\note \QC cannot debug applications on Android devices if Android Studio is
running. If the following message is displayed in the \uicontrol Output
pane, close Android Studio and try again: \e {Ignoring second debugger -
accepting and dropping.}
*/