aboutsummaryrefslogtreecommitdiffstats
path: root/doc/targets/qbs-target-android.qdoc
blob: 46081db0ddfd47d4e0a27255324f5a4cf9ea2df0 (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
/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of Qbs.
**
** $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$
**
****************************************************************************/
/*!
    \contentspage index.html
    \page qbs-target-android.html
    \ingroup platforms

    \title Building for Android
    \brief Platform notes for Android.

    To develop applications for Android, you need development tools provided by
    the Android SDK from Google, and (optionally) a C/C++ toolchain provided by
    the Android NDK.

    \note \QBS does not yet support the Kotlin programming language.

    \section1 Creating Android Application Packages

    On Android, applications are distributed in a specially structured type of
    ZIP package called an APK. The following files should be created and bundled
    into an APK:

    \list
        \li Android assets.
        \li Android resource files.
        \li AndroidManifest.xml, which provides meta-information about your
            application.
        \li Compiled Java code, which serves as the entry point into your
            application and that automatically executes the native code in your
            application (if there is any).
        \li Shared libraries containing native code.
    \endlist

    You can use the \l{Application} item to build application
    packages for Android.

    If the \l{qbs::targetPlatform}{target platform} is \c{"android"}, then the Application item has
    a dependency on the \l{Android.sdk} module, which
    contains the properties and rules to create Android application packages
    from source files.

    You can use the \l{DynamicLibrary} item to build native
    Android libraries that are bundled into the APK. The \c qbs.architectures
    property specifies the architectures to build for, with the default value
    \c armv7a.
    If you have only one native library, you can simply list its sources
    within the main Application item, and it will get built and packaged
    automatically.

    The \l{DynamicLibrary} item, as well as the \l CppApplication item,
    has a dependency on the \l{Android.ndk} module,
    and contains the properties and rules to create native libraries.
*/