summaryrefslogtreecommitdiffstats
path: root/doc/src/platforms/android/android.qdoc
blob: 3c2c0c360d82f20e6972fa52e48e0e43994e5493 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
// 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 Android enables you to develop Qt applications for Android devices,
    and supports a wide range of features and use-cases.

    To download and install Qt for Android, follow the instructions on the
    \l{Getting Started with Qt for Android} page. 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

    \table 50%
    \header \li {4,1} Target Devices used in Automated Testing
        \header \li Device \li OS Version \li Architecture \li Form Factor
        \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 4}
             \li Android 10 (API 29)
             \li armv7
             \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.230519.001] (API 34)
            \li arm64_v8a
            \li Mobile
        \row \li \l{Motorola Moto G5 Plus}
            \li Android 8 [UP1A.230519.001] (API 27)
            \li arm64_v8a
            \li Mobile
    \endtable
    \note Qt for Android support is inclusive of \b{but not limited to} these devices.

    \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.

    To learn about developing with Qt for Android, here are the main topics
    to check:

    \list
        \li \l {Getting Started with Qt for Android}
        \li \l {Deploying an Application on Android}
        \li \l {How Qt for Android Works}
        \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 Android Manifest File Configuration}
    \endlist

    The following topics also provide more details about Qt for Android:

    \annotatedlist android-platform-extra-topics

    Qt's vibrant and active \l{https://www.qt.io/developers}{community site}
    houses a wiki, a forum, and additional learning guides and presentations.

    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{Qt Creator: Creating a Mobile Application}
        \li \l{Qt Creator: Specifying Android Device Settings}
    \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 Qt Creator IDE, to get you started developing Android apps.

    \youtube 5OiIqFTjUZI

    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

    In order to develop with \l{Qt for Android}, you will need the following
    prerequisites:

    \list
        \li \l {Java Development Kit (JDK)}
        \li \l {Android: Android command line tools}{Android Command Line Tools}
            which includes:
            \list
                \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 version.
                \li \l{Android: Android SDK Platform Tools}{Android SDK Platform Tools}:
                    for deploying and managing Android dependencies.
            \endlist
    \endlist

    The easiest way to manage these dependencies is by using Qt Creator's built in
    Android development setup. For more information, see
    \l{Qt Creator: Specifying Android Device Settings}.

    \section2 Manually Installing the Prerequisites

    If you prefer to manually install the prerequisites please follow
    these next steps.

    \section3 Java Development Kit (JDK)

    Qt for Android development requires JDK \JdkVer or above, provided by any of the
    following supported distributions:

    \list
        \li \l{Adoptium}
        \li \l{OpenJDK}
        \li \l{Java SE Development Kit}
    \endlist

    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:

    \badcode \JdkVer
    sudo apt-get install openjdk-\1-jdk
    export JAVA_HOME=/usr/lib/jvm/java-\1-openjdk-amd64
    \endcode

    Or on \macOS:

    \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

    Download the latest version of the
    \l{Android: Android command line tools}{Android SDK Command Line Tools}
    for your operating system and extract it to the appropriate path as stated below.

//! [Android SDK Paths]
    The Android SDK is commonly installed by Qt Creator or Android Studio
    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]

    Or use your OS's package manager, for example for \macOS:

    \badcode
    brew install android-commandlinetool
    \endcode

    \section3 Android SDK Mandatory Packages

    Make sure to install the SDK Platform, Platform Tools, and Build Tools.
    For Qt \QtVer, use:

    \badcode \AndroidPlatformVer \AndroidBuildToolsVer
    sdkmanager "platform-tools" "platforms;android-\1" "build-tools;\2"
    \endcode

    \section3 Android NDK

    Qt \QtVer uses NDK \NdkFullVer, you can install it by running:

    \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" "patcher;v4"
    \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
    provided by the \e extras Android SDK package. Install it by running the following:

    \badcode
    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 Qt Creator:

    \badcode
    sudo apt-get install libstdc++6 libncurses5
    \endcode

    \target emulator dependencies
    To run the Android emulator, the following dependencies are also necessary:

    \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 {Qt Creator: Creating a Mobile Application}.
*/