From e23031c974c9b051ba639f9ad68f891e2ae87da3 Mon Sep 17 00:00:00 2001 From: David Friedman Date: Fri, 22 May 2015 03:20:03 -0700 Subject: [PATCH] Docs: Final CL for NDK-docs-onto-DAC, pulling all files into a single CL. Change-Id: I3867d70f9d669fa08cd7d533d79e02c15339d4ff --- docs/html-ndk/ndk/downloads/index.jd | 27 +- docs/html-ndk/ndk/guides/abis.jd | 493 ++++++++++++ docs/html-ndk/ndk/guides/android_mk.jd | 891 +++++++++++++++++++++ docs/html-ndk/ndk/guides/application_mk.jd | 241 ++++++ docs/html-ndk/ndk/guides/arch.jd | 31 + docs/html-ndk/ndk/guides/build.jd | 23 + docs/html-ndk/ndk/guides/concepts.jd | 301 +++++++ docs/html-ndk/ndk/guides/cpp-support.jd | 328 ++++++++ docs/html-ndk/ndk/guides/cpu-arm-neon.jd | 109 +++ docs/html-ndk/ndk/guides/cpu-features.jd | 210 +++++ docs/html-ndk/ndk/guides/debug.jd | 17 + docs/html-ndk/ndk/guides/guides_toc.cs | 61 +- .../ndk/guides/images/NDK_build_string.png | Bin 0 -> 22494 bytes .../ndk/guides/images/NDK_build_string@2x.png | Bin 0 -> 44014 bytes .../ndk/guides/images/verification_screen.png | Bin 0 -> 56991 bytes .../ndk/guides/images/verification_screen@2x.png | Bin 0 -> 287252 bytes docs/html-ndk/ndk/guides/index.jd | 17 +- docs/html-ndk/ndk/guides/libs.jd | 20 + .../ndk/guides/md_1__concepts__concepts.html | 4 - docs/html-ndk/ndk/guides/mips.jd | 43 + docs/html-ndk/ndk/guides/ndk-build.jd | 194 +++++ docs/html-ndk/ndk/guides/ndk-gdb.jd | 241 ++++++ docs/html-ndk/ndk/guides/ndk-stack.jd | 84 ++ docs/html-ndk/ndk/guides/prebuilts.jd | 145 ++++ docs/html-ndk/ndk/guides/sample.jd | 11 + docs/html-ndk/ndk/guides/sample_hellojni.jd | 122 +++ docs/html-ndk/ndk/guides/sample_na.jd | 194 +++++ docs/html-ndk/ndk/guides/sample_teapot.jd | 236 ++++++ docs/html-ndk/ndk/guides/setup.html | 520 ++++++++++++ docs/html-ndk/ndk/guides/stable_apis.jd | 501 ++++++++++++ docs/html-ndk/ndk/guides/standalone_toolchain.jd | 575 +++++++++++++ docs/html-ndk/ndk/guides/x86-64.jd | 52 ++ docs/html-ndk/ndk/guides/x86.jd | 215 +++++ 33 files changed, 5895 insertions(+), 11 deletions(-) create mode 100644 docs/html-ndk/ndk/guides/abis.jd create mode 100644 docs/html-ndk/ndk/guides/android_mk.jd create mode 100644 docs/html-ndk/ndk/guides/application_mk.jd create mode 100644 docs/html-ndk/ndk/guides/arch.jd create mode 100644 docs/html-ndk/ndk/guides/build.jd create mode 100644 docs/html-ndk/ndk/guides/concepts.jd create mode 100644 docs/html-ndk/ndk/guides/cpp-support.jd create mode 100644 docs/html-ndk/ndk/guides/cpu-arm-neon.jd create mode 100644 docs/html-ndk/ndk/guides/cpu-features.jd create mode 100644 docs/html-ndk/ndk/guides/debug.jd create mode 100644 docs/html-ndk/ndk/guides/images/NDK_build_string.png create mode 100644 docs/html-ndk/ndk/guides/images/NDK_build_string@2x.png create mode 100644 docs/html-ndk/ndk/guides/images/verification_screen.png create mode 100644 docs/html-ndk/ndk/guides/images/verification_screen@2x.png create mode 100644 docs/html-ndk/ndk/guides/libs.jd delete mode 100644 docs/html-ndk/ndk/guides/md_1__concepts__concepts.html create mode 100644 docs/html-ndk/ndk/guides/mips.jd create mode 100644 docs/html-ndk/ndk/guides/ndk-build.jd create mode 100644 docs/html-ndk/ndk/guides/ndk-gdb.jd create mode 100644 docs/html-ndk/ndk/guides/ndk-stack.jd create mode 100644 docs/html-ndk/ndk/guides/prebuilts.jd create mode 100644 docs/html-ndk/ndk/guides/sample.jd create mode 100644 docs/html-ndk/ndk/guides/sample_hellojni.jd create mode 100644 docs/html-ndk/ndk/guides/sample_na.jd create mode 100644 docs/html-ndk/ndk/guides/sample_teapot.jd create mode 100644 docs/html-ndk/ndk/guides/setup.html create mode 100644 docs/html-ndk/ndk/guides/stable_apis.jd create mode 100644 docs/html-ndk/ndk/guides/standalone_toolchain.jd create mode 100644 docs/html-ndk/ndk/guides/x86-64.jd create mode 100644 docs/html-ndk/ndk/guides/x86.jd diff --git a/docs/html-ndk/ndk/downloads/index.jd b/docs/html-ndk/ndk/downloads/index.jd index ef00069ed881..a8ca73d9ffa1 100644 --- a/docs/html-ndk/ndk/downloads/index.jd +++ b/docs/html-ndk/ndk/downloads/index.jd @@ -1,4 +1,25 @@ -page.title=NDK Downloads -@jd:body +ndk=true +page.template=sdk + +ndk.mac64_download=android-ndk-r10e-darwin-x86_64.bin +ndk.mac64_bytes=388937326 +ndk.mac64_checksum=2cb8893a5701603519d38a7e04c50e81 + +ndk.linux64_download=android-ndk-r10e-linux-x86_64.bin +ndk.linux64_bytes=401522849 +ndk.linux64_checksum=19af543b068bdb7f27787c2bc69aba7f + +ndk.linux32_download=android-ndk-r10e-linux-x86.bin +ndk.linux32_bytes=394281908 +ndk.linux32_checksum=c3edd3273029da1cbd2f62c48249e978 -

downloads \ No newline at end of file +ndk.win64_download=android-ndk-r10e-windows-x86_64.exe +ndk.win64_bytes=419616132 +ndk.win64_checksum=8412bb4991a95e08fda50b5a44d95df7 + +ndk.win32_download=android-ndk-r10e-windows-x86.exe +ndk.win32_bytes=396563176 +ndk.win32_checksum=1a82445baaf62aec3a46386ab1e5772c + +page.title=NDK Downloads +@jd:body \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/abis.jd b/docs/html-ndk/ndk/guides/abis.jd new file mode 100644 index 000000000000..81604b5eefeb --- /dev/null +++ b/docs/html-ndk/ndk/guides/abis.jd @@ -0,0 +1,493 @@ +page.title=ABI Management +@jd:body + +

+ +
+ +

Different Android handsets use different CPUs, which in turn support different instruction sets. +Each combination of CPU and instruction set(s) has its own Application Binary Interface, or +ABI. The ABI defines, with great precision, how an application's machine code is supposed to +interact with the system at runtime. You must specify an ABI for each CPU architecture you want +your app to work with.

+ +

A typical ABI includes the following information:

+ + + +

This page enumerates the ABIs that the NDK supports, and provides information about how each ABI +works.

+ +

Supported ABIs

+ +

Each ABI supports one or more instruction sets. Table 1 provides an at-a-glance overview of +the instruction sets each ABI supports.

+ +

+ Table 1. ABIs and supported instruction sets.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ABISupported Instruction Set(s)Notes
{@code armeabi}
  • ARMV5TE and later
  • +
  • Thumb-1
  • No hard float.
    {@code armeabi-v7a} +
  • armeabi
  • +
  • Thumb-2
  • +
  • VFPv3-D16
  • +
  • Other, optional
  • Hard float when specified as {@code armeabi-v7a-hard}. +Incompatible with ARMv5, v6 devices.
    {@code arm64-v8a}
  • AArch-64
  • +{@code x86}
  • x86 (IA-32)
  • +
  • MMX
  • +
  • SSE/2/3
  • +
  • SSSE3
  • No support for MOVBE or SSE4.
    {@code x86_64} +
  • x86-64
  • +
  • MMX
  • +
  • SSE/2/3
  • +
  • SSSE3
  • +
  • SSE4.1, 4.2
  • +
  • POPCNT
  • {@code mips}
  • MIPS32r1 and later
  • Uses hard-float, and assumes a CPU:FPU clock ratio of 2:1 for maximum +compatibility. Provides neither micromips nor MIPS16.
    {@code mips64}
  • MIPS64r6
  • +
    + +

    More detailed information about each ABI appears below.

    + +

    armeabi

    +

    This ABI is for ARM-based CPUs that support at least +the ARMv5TE instruction set. Please refer to the following documentation for +more details:

    + + + +

    The AAPCS standard defines EABI as a family of similar +but distinct ABIs. Also, Android follows the little-endian + +ARM GNU/Linux ABI.

    + +

    This ABI does not support hardware-assisted floating point +computations. Instead, all floating-point operations use software helper +functions from the compiler's {@code libgcc.a} static library.

    + +

    The armeabi ABI supports ARM’s + +Thumb (a.k.a. Thumb-1) instruction set. The NDK generates Thumb +code by default unless you specify different behavior using the +LOCAL_ARM_MODE variable in your Android.mk +file.

    + +

    armeabi-v7a (armeabi-v7a-hard)

    +

    This ABI extends armeabi to include several + +CPU instruction set extensions. The instruction extensions that this Android-specific +ABI supports are:

    + + + +

    Other extensions that the v7-a ARM spec describes, including + +Advanced SIMD (a.k.a. NEON), VFPv3-D32, and ThumbEE, are optional +to this ABI. Since their presence is not guaranteed, the system should check at runtime +whether the extensions are available. If they are not, you must use alternative code paths. This +check is similar to the one that the system typically performs to check or use +MMX, +SSE2, and other specialized +instruction sets on x86 CPUs.

    + +

    For information about how to perform these runtime checks, refer to +CPU Features. +Also, for information about the NDK's support for building +machine code for NEON, see +NEON Support.

    + +

    The {@code armeabi-v7a} ABI uses the {@code -mfloat-abi=softfp} switch to +enforce the rule that the compiler must pass all double values in core register pairs during +function calls, instead of dedicated floating-point ones. The system can perform all internal +computations using the FP registers. Doing so speeds up the computations greatly.

    + +

    Although the requirement to use core register pairs produces a modest performance hit, it ensures +compatibility with all existing armeabi binaries. If you need the additional +performance, you can specify your ABI as {@code armeabi-v7a-hard} instead. Doing so +allows you to use hard floats, while still linking with Android native APIs +that use {@code softfp}. For more information, refer to the comments in +{@code $NDK/tests/device/hard-float/jni/android.mk}.

    + +

    Note: You cannot specify {@code APP_ABI} as both +{@code armeabi-v7a} and {@code armeabi-v7a-hard}. In either case, the build system places the +shared libraries in the {@code armeabi-v7a/} directory.

    + +

    armeabi-v7a-hard

    +

    This variant of the {@code armeabi-v7a} ABI is unique to the NDK. The NDK build +system adds the following flags in addition to those that it uses for the +{@code armeabi-v7a} ABI:

    + +
    +TARGET_CFLAGS += -mhard-float -D_NDK_MATH_NO_SOFTFP=1
    +TARGET_LDFLAGS += -Wl,--no-warn-mismatch -lm_hard
    +
    + +

    The compiler compiles all code with hard-float, and links it with {@code libm_hard.a}. +This math library is the same one as {@code libm.a}, except that it follows hard-float ABI +conventions. In the APK, the generated shared libraries reside in {@code /lib/armeabi-v7a/}.

    + +

    arm64-v8a

    +

    This ABI is for ARMv8-based CPUs that support AArch64. It also includes the NEON and +VFPv4 instruction sets.

    + +

    For more information, see the +ARMv8 +Technology Preview, and contact ARM for further details.

    + +

    x86

    +

    This ABI is for CPUs supporting the instruction set commonly +referred to as "x86" or "IA-32". Characteristics of this ABI include:

    + + + +

    The ABI does not include any other optional IA-32 instruction set +extensions, such as:

    + +

    You can still use these extensions, as long as you use runtime feature-probing to +enable them, and provide fallbacks for devices that do not support them.

    +

    The NDK toolchain assumes 16-byte stack alignment before a function call. The default tools and +options enforce this rule. If you are writing assembly code, you must make sure to maintain stack +alignment, and ensure that other compilers also obey this rule.

    + +

    Refer to the following documents for more details:

    + + +

    x86_64

    +

    This ABI is for CPUs supporting the instruction set commonly referred to as +"x86-64." It supports instructions that GCC typically generates with the following +compiler flags:

    +
    +-march=x86-64 -msse4.2 -mpopcnt -m64 -mtune=intel
    +
    + +

    These flags target the x86-64 instruction set, according to the GCC +documentation. along with the +MMX, +SSE, +SSE2, +SSE3, +SSSE3, +SSE4.1, +SSE4.2, and +POPCNT +instruction-set extensions. The generated code is an optimization balanced +across the top Intel 64-bit CPUs.

    + +

    For more information on compiler flags, particularly related to performance optimization, +refer to GCC +x86 Performance.

    + +

    This ABI does not include any other optional x86-64 instruction set +extensions, such as:

    + + + +

    You can still use these extensions, as long as you use runtime feature probing to +enable them, and provide fallbacks for devices that do not support them.

    +

    Refer to the following documents for more details:

    + + + +

    mips

    +

    This ABI is for MIPS-based CPUs that support at least the MIPS32r1 instruction set. It includes +the following features:

    + + + +

    For more information, please refer to the following documentation:

    + + + +

    The MIPS-specific documentation is available +here, with +further information +here.

    + + + +

    mips64

    +

    This ABI is for MIPS64 R6. For more information, see +MIPS Architecture.

    + +

    Generating Code for a Specific ABI

    +

    By default, the NDK generates machine code for the armeabi ABI. You can +generate ARMv7-a-compatible machine code, instead, by adding the following line +to your {@code Application.mk} file.

    +
    +APP_ABI := armeabi-v7a
    +
    + +

    To build machine code for two or more distinct ABIs, using spaces as delimiters. For +example:

    + +
    +APP_ABI := armeabi armeabi-v7a
    +
    + +

    This setting tells the NDK to build two versions of your machine code: one +for each ABI listed on this line. For more information on the values you can specify for the +{@code APP_ABI} variable, see Android.mk. +

    + +

    When you build multiple machine-code versions, the build system copies the libraries to your +application project path, and ultimately packages them into your APK, so creating +a fat binary. A fat binary +is larger than one containing only the machine code for a single system; the tradeoff is +gaining wider compatibility, but at the expense of a larger APK.

    + +

    At installation time, the package manager unpacks only the most appropriate +machine code for the target device. For details, see Automatic +extraction of native code at install time.

    + + +

    ABI Management on the Android Platform

    +

    This section provides details about how the Android platform manages native +code in APKs.

    + +

    Native code in app packages

    +

    Both the Play Store and Package Manager expect to find NDK-generated +libraries on filepaths inside the APK matching the following pattern:

    + +
    +/lib/<abi>/lib<name>.so
    +
    + +

    Here, {@code <abi>} is one of the ABI names listed under Supported ABIs, +and {@code <name>} is the name of the library as you defined it for the {@code LOCAL_MODULE} +variable in the {@code Android.mk} file. Since +APK files are just zip files, it is trivial to open them and confirm that the shared native +libraries are where they belong.

    + +

    If the system does not find the native shared libraries where it expects them, it cannot use +them. In such a case, the app itself has to copy the libraries over, and then +perform dlopen().

    + +

    In a fat binary, each library resides under a directory whose name matches a corresponding ABI. +For example, a fat binary may contain:

    + +
    +/lib/armeabi/libfoo.so
    +/lib/armeabi-v7a/libfoo.so
    +/lib/arm64-v8a/libfoo.so
    +/lib/x86/libfoo.so
    +/lib/x86_64/libfoo.so
    +/lib/mips/libfoo.so
    +/lib/mips64/libfoo.so
    +
    + +

    Note: ARMv7-based Android devices running 4.0.3 or earlier +install native libraries from the {@code armeabi} directory instead of the {@code armeabi-v7a} +directory if both directories exist. This is because {@code /lib/armeabi/} comes after +{@code /lib/armeabi-v7a/} in the APK. This issue is fixed from 4.0.4.

    + +

    Android Platform ABI support

    +

    The Android system knows at runtime which ABI(s) it supports, because build-specific system +properties indicate:

    + + + +

    This mechanism ensures that the system extracts the best machine code from +the package at installation time.

    + +

    For best performance, you should compile directly for the primary ABI. For example, a +typical ARMv5TE-based device would only define the primary ABI: {@code armeabi}. By contrast, a +typical, ARMv7-based device would define the primary ABI as {@code armeabi-v7a} and the secondary +one as {@code armeabi}, since it can run application native binaries generated for each of them.

    + +

    Many x86-based devices can also run {@code armeabi-v7a} and {@code armeabi} NDK binaries. For +such devices, the primary ABI would be {@code x86}, and the second one, {@code armeabi-v7a}.

    + +

    A typical MIPS-based device only defines a primary abi: {@code mips}.

    + +

    Automatic extraction of native code at install time

    + +

    When installing an application, the package manager service scans the APK, and looks for any +shared libraries of the form:

    + +
    +lib/<primary-abi>/lib<name>.so
    +
    + +

    If none is found, and you have defined a secondary ABI, the service scans for shared libraries of +the form:

    + +
    +lib/<secondary-abi>/lib<name>.so
    +
    + +

    When it finds the libraries that it's looking for, the package manager +copies them to /lib/lib<name>.so, under the application's +{@code data} directory ({@code data/data/<package_name>/lib/}).

    + +

    If there is no shared-object file at all, the application builds and installs, but crashes at +runtime.

    \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/android_mk.jd b/docs/html-ndk/ndk/guides/android_mk.jd new file mode 100644 index 000000000000..da946794f05c --- /dev/null +++ b/docs/html-ndk/ndk/guides/android_mk.jd @@ -0,0 +1,891 @@ +page.title=Android.mk +@jd:body + +
    + +
    + + +

    This page describes the syntax of the {@code Android.mk} build file, +which glues your C and C++ source files to the Android NDK.

    + +

    Overview

    +

    The {@code Android.mk} file resides in a subdirectory of your project's {@code jni/} directory, +and describes your sources and shared libraries to the build system. It is really a tiny GNU +makefile fragment that the build system parses once or more. The {@code Android.mk} file is useful +for defining project-wide settings that {@code Application.mk}, the build system, and your +environment variables leave undefined. It can also override project-wide settings for specific +modules.

    + +

    The syntax of the {@code Android.mk} allows you to group your sources into +modules. A module is either a static library, a shared library, or a standalone +executable. You can define one or more modules in each {@code Android.mk} file, and +you can use the same source file in multiple modules. The build system only places shared libraries +into your application package. In addition, static libraries can generate shared libraries.

    + +

    In addition to packaging libraries, the build system handles a variety of other details for you. +For example, you don't need to list header files or explicit dependencies between generated files in +your {@code Android.mk} file. The NDK build system computes these relationships automatically for +you. As a result, you should be able to benefit from new toolchain/platform support in future NDK +releases without having to touch your {@code Android.mk} file.

    + +

    The syntax of this file is very close to that used in the {@code Android.mk} files distributed with +the full Android Open Source Project. While the +build system implementation that uses them is different, their similarity is an +intentional design decision aimed at making it easier for application +developers to reuse source code for external libraries.

    + +

    Basics

    +

    Before exploring the syntax in detail, it is useful to start by understanding the basics +of what a {@code Android.mk} file contains. This section uses the {@code Android.mk} file in the +Hello-JNI sample toward that end, explaining the role that each line in the file plays.

    + + +

    An {@code Android.mk} file must begin by defining the {@code LOCAL_PATH} variable: + +

    +LOCAL_PATH := $(call my-dir)
    +
    + +

    This variable indicates the location of the source files in the development tree. Here, the macro +function {@code my-dir}, provided by the build system, returns the path of the current directory +(the directory containing the {@code Android.mk} file itself).

    + +

    The next line declares the {@code CLEAR_VARS} variable, whose value the build system provides. + +

    +include $(CLEAR_VARS)
    +
    + +

    The {@code CLEAR_VARS} variable points to a special GNU Makefile that clears many +{@code LOCAL_XXX} variables for you, such as {@code LOCAL_MODULE}, {@code LOCAL_SRC_FILES}, and +{@code LOCAL_STATIC_LIBRARIES}. Note that it does not clear {@code LOCAL_PATH}. This variable must +retain its value because the system parses all build control files in a single GNU Make execution +context where all variables are global. You must (re-)declare this variable before describing each +module.

    + +

    Next, the {@code LOCAL_MODULE} variable stores the name of the module that you wish to build. +Use this variable once per module in your application.

    + +
    +LOCAL_MODULE := hello-jni
    +
    + +

    Each module name must be unique and not contain any spaces. The build system, when it +generates the final shared-library file, automatically adds the proper prefix and suffix to +the name that you assign to {@code LOCAL_MODULE|. For example, the example that appears above +results in generation of a library called {@code libhello-jni.so}.

    + +

    Note: If your module's name already starts with {@code lib}, the +build system does not prepend an additional {@code lib} prefix; it takes the module name as-is, and +adds the {@code .so} extension. So a source file originally called, for example, {@code libfoo.c} +still produces a shared-object file called {@code libfoo.so}. This behavior is to support libraries +that the Android platform sources generate from {@code Android.mk} files; the names of all such +libraries start with {@code lib}.

    + +

    The next line enumerates the source files, with spaces delimiting multiple files:

    + +
    +LOCAL_SRC_FILES := hello-jni.c
    +
    + +

    The {@code LOCAL_SRC_FILES} variable must contain a list of C and/or C++ source files to build +into a module.

    + +

    The last line helps the system tie everything together:

    + +
    +include $(BUILD_SHARED_LIBRARY)
    +
    + +

    The {@code BUILD_SHARED_LIBRARY} variable points to a GNU Makefile script that collects all the +information you defined in {@code LOCAL_XXX} variables since the most recent {@code include}. This +script determines what to build, and how to do it.

    + +

    There are more complex examples in the samples directories, with commented +{@code Android.mk} files that you can look at. In addition, the +walkthrough of the native-activity sample +disucsses that sample's {@code Android.mk} file in some detail. Finally, the next section explains +the variables from this section in a bit more detail. + + +

    Variables and Macros

    +

    The build system provides many possible variables for use in the the {@code Android.mk} file. +Many of these variables come with preassigned values. Others, you assign.

    + +

    In addition to these variables, you can also define your own arbitrary ones. If you do so, keep +in mind that the NDK build system reserves the following variable names:

    + +

    If you need to define your own convenience variables in an {@code Android.mk} file, we +recommend prepending {@code MY_} to their names. + + +

    NDK-defined variables

    +

    This section discusses the GNU Make variables that the build system defines before parsing your +{@code Android.mk} file. Under certain circumstances, the NDK might parse your {@code Android.mk} +file several times, using a different definition for some of these variables each time.

    + +

    CLEAR_VARS

    +

    This variable points to a build script that undefines nearly all {@code LOCAL_XXX} variables +listed in the "Developer-defined variables" section below. Use this variable to include +this script before describing a new module. The syntax for using it is:

    + +
    +include $(CLEAR_VARS)
    +
    + +

    BUILD_SHARED_LIBRARY

    +

    This variable points to a build script that collects all the information about the module +you provided in your {@code LOCAL_XXX} variables, and determines how to build a target shared +library from the sources you listed. Note that using this script requires that you have already +assigned values to {@code LOCAL_MODULE} and {@code LOCAL_SRC_FILES}, at a minimum (for more +information about these variables, see Module-description variables).

    + +

    The syntax for using this variable is:

    + +
    +include $(BUILD_SHARED_LIBRARY)
    +
    + +

    A shared-library variable causes the build system to generate a library file with a {@code .so} +extension.

    + +

    BUILD_STATIC_LIBRARY

    +

    A variant of {@code BUILD_SHARED_LIBRARY} that is used to build a static library. The build +system does not copy static libraries into your project/packages, but it can use them to build +shared libraries (see {@code LOCAL_STATIC_LIBRARIES} and {@code LOCAL_WHOLE_STATIC_LIBRARIES}, +below). The syntax for using this variable is:

    + +
    +include $(BUILD_STATIC_LIBRARY)
    +
    + +

    A static-library variable causes the build system to generate a library with a {@code .a} +extension.

    + +

    PREBUILT_SHARED_LIBRARY

    +

    Points to a build script used to specify a prebuilt shared library. Unlike in the case of +{@code BUILD_SHARED_LIBRARY} and {@code BUILD_STATIC_LIBRARY}, here the value of +{@code LOCAL_SRC_FILES} cannot be a source file. Instead, it must be a single path to a prebuilt +shared library, such as {@code foo/libfoo.so}. The syntax for using this variable is:

    + +
    +include $(PREBUILT_SHARED_LIBRARY)
    +
    + +

    You can also reference a prebuilt library in another module by using the +{@code LOCAL_PREBUILTS} variable. The following example shows an example of using +{@code LOCAL_PREBUILTS}: + + + +

    For more information about using prebuilts, see +NDK Prebuilt Library Support.

    + + +

    PREBUILT_STATIC_LIBRARY

    +

    The same as {@code PREBUILT_SHARED_LIBRARY}, but for a prebuilt static library. For more +information about using prebuilts, see NDK Prebuilt +Library Support.

    + +

    TARGET_ARCH

    +

    The name of the target CPU architecture as the Android Open Source Project specifies it. +For any ARM-compatible build, use {@code arm}, independent of the CPU architecture revision or +ABI (see TARGET_ARCH_ABI, below).

    + +

    The value of this variable is taken from the APP_ABI variable that you define in the +{@code Android.mk} file, which the system +reads ahead of parsing the {@code Android.mk} file.

    + +

    TARGET_PLATFORM

    +

    The Android API level number for the build system to target. +For example, the Android 5.1 system images correspond to Android API level 22: {@code android-22}. +For a complete list of platform names and corresponding Android system +images, see Android NDK Stable APIs. +The following example shows the syntax for using this variable:

    + +
    +TARGET_PLATFORM := android-22
    +
    + +

    TARGET_ARCH_ABI

    +

    This variable stores the name of the CPU and architecture to target when the build system +parses this {@code Android.mk} file. You can specify one or more of the following values, using +a space as a delimiter between multiple targets. Table 1 shows the ABI setting to use for each +supported CPU and architecture. + +

    + Table 1. ABI settings for different CPUs and architectures.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    CPU and architectureSetting
    ARMv5TE{@code armeabi}
    ARMv7{@code armeabi-v7a}
    ARMv8 AArch64{@code arm64-v8a}
    i686{@code x86}
    x86-64{@code x86_64}
    mips32 (r1){@code mips}
    mips64 (r6){@code mips64}
    All{@code all}
    + +

    The following example shows how to set ARMv8 AArch64 as the target CPU-and-ABI combination:

    + +
    +TARGET_ARCH_ABI := arm64-v8a
    +
    + +

    Note: Up to Android NDK 1.6_r1, this variable is defined as +{@code arm}.

    + +

    For more details about architecture ABIs and associated compatibility +issues, refer to + +Android Native CPU ABI Management

    + +

    New target ABIs in the future will have different values.

    + +

    TARGET_ABI

    +

    A concatenation of target Android API level and ABI, it is especially useful when you want to test against +a specific target system image for a real device. For example, to specify a 64-bit ARM device +running on Android API level 22:

    + +
    +TARGET_ABI := android-22-arm64-v8a
    +
    + +

    Note: Up to Android NDK 1.6_r1, the default value was +{@code android-3-arm}.

    + +

    Module-description variables

    +

    The variables in this section describe your module to the build system. Each module description +should follow this basic flow: +

    + +

    LOCAL_PATH

    +

    This variable is used to give the path of the current file. You must define +it at the start of your {@code Android.mk} file. The following example shows how to do so:

    + +
    +LOCAL_PATH := $(call my-dir)
    +
    + +

    The script to which {@code CLEAR_VARS} points does not clear this variable. Therefore, you only need +to define it a single time, even if your {@code Android.mk} file describes multiple modules.

    + +

    LOCAL_MODULE

    +

    This variable stores the name of your module. It must be unique among all module names, +and must not contain any spaces. You must define it before including any scripts (other than +the one for {@code CLEAR_VARS}). You need not add either the {@code lib} prefix +or the {@code .so} or {@code .a} file extension; the build system makes these modifications +automatically. Throughout your {@code Android.mk} and {@code Application.mk} files, refer to +your module by its unmodified name. For example, the following line results in the generation of a +shared library module called {@code libfoo.so}:

    + +
    +LOCAL_MODULE := "foo"
    +
    + +

    If you want the generated module to have a name other than {@code lib} + the value of +{@code LOCAL_MODULE}, you can use the {@code LOCAL_MODULE_FILENAME} variable to give the +generated module a name of your own choosing, instead.

    + +

    LOCAL_MODULE_FILENAME

    +

    This optional variable allows you to override the names that the build system +uses by default for files that it generates. For example, if the name of your {@code LOCAL_MODULE} +is {@code foo}, you can force the system to call the file it generates {@code libnewfoo}. The +following example shows how to accomplish this:

    + +
    +LOCAL_MODULE := foo
    +LOCAL_MODULE_FILENAME := libnewfoo
    +
    + +

    For a shared library module, this example would generate a file called {@code libnewfoo.so}.

    + +

    Note: You cannot override filepath or file extension.

    + +

    LOCAL_SRC_FILES

    +

    This variable contains the list of source files that the build system uses to generate the +module. Only list the files that the build system actually passes to the compiler, since the build +system automatically computes any associated depencies.

    +

    Note that you can use both relative (to {@code LOCAL_PATH}) and absolute file paths. + +

    We recommend avoiding absolute file paths; relative paths make your +{@code Android.mk} file more +portable.

    + +

    Note: Always use Unix-style forward slashes (/) in build files. +The build system does not handle Windows-style backslashes (\) properly.

    + +

    LOCAL_CPP_EXTENSION

    +

    You can use this optional variable to indicate a file extension other than {@code .cpp} for your +C++ source files. For example, the following line changes the extension to {@code .cxx}. +(The setting must include the dot.) + +

    +LOCAL_CPP_EXTENSION := .cxx
    +
    + +

    From NDK r7, you can use this variable to specify multiple extensions. For instance:

    + +
    +LOCAL_CPP_EXTENSION := .cxx .cpp .cc
    +
    + +

    LOCAL_CPP_FEATURES

    + +

    You can use this optional variable to indicate that your code relies on specific C++ features. +It enables the right compiler and linker flags during the build process. For prebuilt binaries, +this variable also declares which features the binary depends on, thus helping ensure the final +linking works correctly. We recommend that you use this variable instead of enabling +{@code -frtti} and {@code -fexceptions} directly in your {@code LOCAL_CPPFLAGS} definition.

    + +

    Using this variable allows the build system to use the appropriate flags for each module. Using +{@code LOCAL_CPPFLAGS} causes the compiler to use all specified flags for all modules, regardless +of actual need.

    + +For example, to indicate that your code uses RTTI (RunTime Type Information), write:

    + +
    +LOCAL_CPP_FEATURES := rtti
    +
    + +

    To indicate that your code uses C++ exceptions, write:

    + +
    +LOCAL_CPP_FEATURES := exceptions
    +
    + +

    You can also specify multiple values for this variable. For example:

    + +
    +LOCAL_CPP_FEATURES := rtti features
    +
    + +The order in which you describe the values does not matter. + + +

    LOCAL_C_INCLUDES

    +

    You can use this optional variable to specify a list of paths, relative to the +NDK {@code root} directory, to add to the include search path when compiling all sources +(C, C++ and Assembly). For example:

    + +
    +LOCAL_C_INCLUDES := sources/foo
    +
    + +

    Or even:

    + +
    +LOCAL_C_INCLUDES := $(LOCAL_PATH)//foo
    +
    + +

    Define this variable before setting any corresponding inclusion flags via {@code LOCAL_CFLAGS} +or {@code LOCAL_CPPFLAGS}.

    + +

    The build system also uses {@code LOCAL_C_INCLUDES} paths automatically when launching native +debugging with ndk-gdb.

    + + +

    LOCAL_CFLAGS

    + +

    This optional variable sets compiler flags for the build system to pass when building C +and C++ source files. The ability to do so can be useful for specifying additional macro +definitions or compile options.

    + +

    Try not to change the optimization/debugging level in your {@code Android.mk} file. +The build system can handle this setting automatically for you, using the relevant information +in the {@code Application.mk} file. Doing it this way allows the build system to generate useful +data files used during debugging.

    + +

    Note: In android-ndk-1.5_r1, the corresponding flags only applied +to C source files, not C++ ones. They now match the full Android build system behavior. +(You can now use {@code LOCAL_CPPFLAGS} to specify flags for C++ sources only.)

    + +

    It is possible to specify additional include paths by writing: + +

    +LOCAL_CFLAGS += -I<path>,
    +
    + +It is better, however, to use {@code LOCAL_C_INCLUDES} for this purpose, since +doing so also makes it possible to use the paths available for native debugging with ndk-gdb.

    + + +

    LOCAL_CPPFLAGS

    +

    An optional set of compiler flags that will be passed when building C++ +source files only. They will appear after the LOCAL_CFLAGS on the +compiler's command-line.

    + + +

    Note: In android-ndk-1.5_r1, the corresponding flags applied to +both C and C++ sources. This has been corrected to match the full Android build system. +To specify flags for both C and C++ sources, use {@code LOCAL_CFLAGS}.

    + + +

    LOCAL_STATIC_LIBRARIES

    + +

    This variable stores the list of static libraries modules on which the current module depends.

    + +

    If the current module is a shared library or an executable, this variable will force +these libraries to be linked into the resulting binary.

    + +

    If the current module is a static library, this variable simply indicates that other +modules depending on the current one will also depend on the listed +libraries.

    + +

    LOCAL_SHARED_LIBRARIES

    + +

    This variable is the list of shared libraries modules on which this module depends at +runtime. This information is necessary at link time, and to embed the corresponding information +in the generated file.

    + +

    LOCAL_WHOLE_STATIC_LIBRARIES

    +

    This variable is a variant of {@code LOCAL_STATIC_LIBRARIES}, and expresses that the linker +should treat the associated library modules as whole archives. For more information +on whole archives, see the GNU linker's +documentation for the +{@code --whole-archive} flag.

    + +

    This variable is useful when there are circular dependencies among +several static libraries. When you use this variable to build a shared library, it will force +the build system to add all object files from your static libraries to the final binary. The same +is not true, however, when generating executables.

    + + +

    LOCAL_LDLIBS

    + +

    This variable contains the list of additional linker flags for use in building your shared +library or executable. It enables you to use the {@code -l} prefix to pass the name of specific +system libraries. For example, the following example tells the linker to generate a module that +links to {@code /system/lib/libz.so} at load time:

    + +
    +LOCAL_LDLIBS := -lz
    +
    + +

    For the list of exposed system libraries against which you can link in this NDK release, see +Android NDK Stable APIs.

    + +

    Note: If you define this variable for a static library, +the build system ignores it, and {@code ndk-build} prints a warning.

    + +

    LOCAL_LDFLAGS

    + +

    The list of other linker flags for the build system to use when building your shared library +or executable. For example, the following example uses the {@code ld.bfd} linker on ARM/X86 GCC +4.6+, on which {@code ld.gold} is the default

    + +
    +LOCAL_LDFLAGS += -fuse-ld=bfd
    +
    + +

    Note: If you define this variable for a static library, the build +system ignores it, and ndk-build prints a warning.

    + +

    LOCAL_ALLOW_UNDEFINED_SYMBOLS

    + +

    By default, when the build system encounters an undefined reference encountered while trying to +build a shared, it will throw an undefined symbol error. This error can help you catch +catch bugs in your source code.

    + +

    To disable this check, set this variable to {@code true}. Note that this setting may cause the +shared library to load at runtime.

    + +

    Note: If you define this variable for a static library, +the build system ignores it, and ndk-build prints a warning.

    + +

    LOCAL_ARM_MODE

    +

    By default, the build system generates ARM target binaries in thumb mode, where each +instruction is 16 bits wide and linked with the STL libraries in the {@code thumb/} directory. +Defining this variable as {@code arm} forces the build system to generate the module's object +files in 32-bit {@code arm} mode. The following example shows how to do this:

    + +
    +LOCAL_ARM_MODE := arm
    +
    + +

    You can also instruct the build system to only build specific sources in {@code arm} mode by +appending {@code .arm} suffix to the the source filenames. For example, the following example +tells the build system to always compile {@code bar.c} in ARM mode, but to build +{@code foo.c} according to the value of {@code LOCAL_ARM_MODE}.

    + +
    +LOCAL_SRC_FILES := foo.c bar.c.arm
    +
    + +

    + +

    Note: You can also force the build system to generate ARM binaries +by setting {@code APP_OPTIM} in your +Android +NDK & ARM NEON Instruction Set Extension Support and Android +NDK CPU Features Detection Library.

    + +

    Alternatively, you can use the {@code .neon} suffix to specify that the build system only +compile specific source files with NEON support. In the following example, the build system compiles +{@code foo.c} with thumb and neon support, {@code bar.c} with thumb support, and +{@code zoo.c} with support for ARM and NEON:

    + +
    +LOCAL_SRC_FILES = foo.c.neon bar.c zoo.c.arm.neon
    +
    + + +

    If you use both suffixes, {@code .arm} must precede {@code .neon}.

    + +

    LOCAL_DISABLE_NO_EXECUTE

    + +

    Android NDK r4 added support for the "NX bit" security feature. It is +enabled by default, but you can disable it by setting this variable to {@code true}. We do not +recommend doing so without a compelling reason.

    + +

    This feature does not modify the ABI, and is only enabled on kernels +targeting ARMv6+ CPU devices. Machine code with this feature enabled +will run unmodified on devices running earlier CPU architectures.

    +

    For more information, see Wikipedia: NX bit +and The GNU stack kickstart. + +

    LOCAL_DISABLE_RELRO

    + +

    By default, the NDK compiles code with read-only relocations and GOT +protection. This variable instructs the runtime linker to mark certain regions of memory +as read-only after relocation, making certain security exploits (such as GOT overwrites) +more difficult. Note that these protections are only effective on Android API level 16 and higher. +On lower API levels, the code will still run, but without memory protections.

    + +

    This variable is turned on by default, but you can disable it by setting its value to +{@code true}. We do not recommend doing so without a compelling reason.

    + +

    For more information, see +RELRO: +RELocation Read-Only and Security +enhancements in RedHat Enterprise Linux (section 6).

    + +

    LOCAL_DISABLE_FORMAT_STRING_CHECKS

    + +

    By default, the build system compiles code with format string protection. Doing so forces a +compiler error if a non-constant format string is used in a {@code printf}-style function.

    +

    This protection is off by default, but you can disable it by setting its value to +{@code true}. We do not recommend doing so without a compelling reason.

    + + +

    LOCAL_EXPORT_CFLAGS

    + +

    This variable records a set of C/C++ compiler flags to add to the {@code LOCAL_CFLAGS} definition +of any other module that uses this one via the {@code LOCAL_STATIC_LIBRARIES} or +{@code LOCAL_SHARED_LIBRARIES} variables.

    + +

    For example, consider the following pair of modules: {@code foo} and {@code bar}, which depends +on {@code foo}:

    + +
    +include $(CLEAR_VARS)
    +LOCAL_MODULE := foo
    +LOCAL_SRC_FILES := foo/foo.c
    +LOCAL_EXPORT_CFLAGS := -DFOO=1
    +include $(BUILD_STATIC_LIBRARY)
    +
    +
    +include $(CLEAR_VARS)
    +LOCAL_MODULE := bar
    +LOCAL_SRC_FILES := bar.c
    +LOCAL_CFLAGS := -DBAR=2
    +LOCAL_STATIC_LIBRARIES := foo
    +include $(BUILD_SHARED_LIBRARY)
    +
    + +

    Here, the build system passes the flags {@code -DFOO=1} and {@code -DBAR=2} to the compiler when +building {@code bar.c}. It also prepends exported flags to your your module's {@code LOCAL_CFLAGS} +so you can easily override them.

    + +In addition, the relationship among modules is transitive: If {@code zoo} depends on +{@code bar}, which in turn depends on {@code foo}, then {@code zoo} also inherits all flags +exported from {@code foo}.

    + +

    Finally, the build system does not use exported flags when building locally (i.e., building the +module whose flags it is exporting). Thus, in the example above, it does not pass {@code -DFOO=1} +to the compiler when building {@code foo/foo.c}. To build locally, use {@code LOCAL_CFLAGS} +instead.

    + +

    LOCAL_EXPORT_CPPFLAGS

    +

    This variable is the same as {@code LOCAL_EXPORT_CFLAGS}, but for C++ flags only.

    + +

    LOCAL_EXPORT_C_INCLUDES

    +

    This variable is the same as {@code LOCAL_EXPORT_CFLAGS}, but for C include paths. It is useful +in cases where, for example, {@code bar.c} needs to include headers from module {@code foo}.

    + +

    LOCAL_EXPORT_LDFLAGS

    +

    This variable is the same as {@code LOCAL_EXPORT_CFLAGS}, but for linker flags.

    + +

    LOCAL_EXPORT_LDLIBS

    +

    This variable is the same as {@code LOCAL_EXPORT_CFLAGS}, telling the build system to pass names +of specific system libraries to the compiler. Prepend {@code -l} to the name of each library you +specify.

    + +

    Note that the build system appends imported linker flags to the value of your module's +{@code LOCAL_LDLIBS} variable. It does this due to the way Unix linkers work.

    + +

    This variable is typically useful when module {@code foo} is a static library +and has code that depends on a system library. You can then use {@code LOCAL_EXPORT_LDLIBS} to +to export the dependency. For example:

    + +
    +include $(CLEAR_VARS)
    +LOCAL_MODULE := foo
    +LOCAL_SRC_FILES := foo/foo.c
    +LOCAL_EXPORT_LDLIBS := -llog
    +include $(BUILD_STATIC_LIBRARY)
    +
    +include $(CLEAR_VARS)
    +LOCAL_MODULE := bar
    +LOCAL_SRC_FILES := bar.c
    +LOCAL_STATIC_LIBRARIES := foo
    +include $(BUILD_SHARED_LIBRARY)
    +
    + +

    In this example, the build system puts {@code -llog} at the end of the linker command when it +builds {@code libbar.so}. Doing so tells the linker that, because {@code libbar.so} depends +on {@code foo}, it also depends on the system logging library.

    + +

    LOCAL_SHORT_COMMANDS

    +

    Set this variable to {@code true} when your module has a very high +number of sources and/or dependent static or shared libraries. Doing so forces the +build system to use {@code @} syntax for archives containing intermediate object files +or linking libraries.

    + +

    This feature can be useful on Windows, where the command line accepts a maximum of only +of 8191 characters, which can be too small for complex projects. It also impacts the compilation of +individual source files, placing nearly all compiler flags inside list files, too.

    + +

    Note that any value other than {@code true} will revert to the +default behaviour. You can also define {@code APP_SHORT_COMMANDS} in your +{@code Application.mk} file to force this +behavior for all modules in your project.

    + +

    We do not recommend enabling this feature by default, since it makes the build slower.

    + + +

    LOCAL_THIN_ARCHIVE

    + +

    Set this variable to {@code true} when building static libraries. +Doing so will generate a thin archive, a library file that does not contain +object files, but instead just file paths to the actual objects that it would normally +contain.

    +

    This is useful to reduce the size of your build output. The drawback is that +such libraries cannot be moved to a different location (all paths +inside them are relative).

    +

    Valid values are {@code true}, {@code false} or empty. A +default value can be set in your {@code Application.mk} file through the {@code APP_THIN_ARCHIVE} + +variable.

    +

    Note: This is ignored for non-static library modules, or prebuilt +static library ones.

    + +

    LOCAL_FILTER_ASM

    +

    Define this variable as a shell command that the build system will use to filter the +assembly files extracted or generated from the files you specified for {@code LOCAL_SRC_FILES}.

    +

    Defining this variable causes the following things to occur:

    + + +

    For example:

    + +
    +LOCAL_SRC_FILES  := foo.c bar.S
    +LOCAL_FILTER_ASM :=
    +
    +foo.c --1--> $OBJS_DIR/foo.S.original --2--> $OBJS_DIR/foo.S --3--> $OBJS_DIR/foo.o
    +bar.S                                 --2--> $OBJS_DIR/bar.S --3--> $OBJS_DIR/bar.o
    +
    + +

    "1" corresponds to the compiler, "2" to the filter, and "3" to the assembler. The filter must +be a standalone shell command that takes the name of the input file as its first argument, and the +name of the output file as the second one. For example:

    + +
    +myasmfilter $OBJS_DIR/foo.S.original $OBJS_DIR/foo.S
    +myasmfilter bar.S $OBJS_DIR/bar.S
    +
    + +

    NDK-Provided Function Macros

    +

    This section explains GNU Make function macros that the NDK provides. Use +{@code $(call <function>)} to evaluate them; they return textual information.

    + +

    my-dir

    + +

    This macro returns the path of the last included makefile, which typically is the +current {@code Android.mk}'s directory. {@code my-dir} is useful for defining +{@code LOCAL_PATH} at the start of your {@code Android.mk} file. For example:

    + +
    +LOCAL_PATH := $(call my-dir)
    +
    + +

    Due to the way GNU Make works, what this macro really returns is the +path of the last makefile that the build system included when parsing the build scripts. For this +reason, you should not call {@code my-dir} after including another file.

    + +

    For example, consider the following example:

    + +
    +LOCAL_PATH := $(call my-dir)
    +
    +# ... declare one module
    +
    +include $(LOCAL_PATH)/foo/`Android.mk`
    +
    +LOCAL_PATH := $(call my-dir)
    +
    +# ... declare another module
    +
    + +

    The problem here is that the second call to {@code my-dir} defines +{@code LOCAL_PATH} as {@code $PATH/foo} instead of {@code $PATH}, because that was where its +most recent include pointed.

    + +

    You can avoid this problem by putting additional includes after everything +else in the {@code Android.mk} file. For example:

    + +
    +LOCAL_PATH := $(call my-dir)
    +
    +# ... declare one module
    +
    +LOCAL_PATH := $(call my-dir)
    +
    +# ... declare another module
    +
    +# extra includes at the end of the Android.mk file
    +include $(LOCAL_PATH)/foo/Android.mk
    +
    +
    + +

    If it is not feasible to structure the file in this way, save the value of the first +{@code my-dir} call into another variable. For example:

    + +
    +MY_LOCAL_PATH := $(call my-dir)
    +
    +LOCAL_PATH := $(MY_LOCAL_PATH)
    +
    +# ... declare one module
    +
    +include $(LOCAL_PATH)/foo/`Android.mk`
    +
    +LOCAL_PATH := $(MY_LOCAL_PATH)
    +
    +# ... declare another module
    +
    + +

    all-subdir-makefiles

    + +

    Returns the list of {@code Android.mk} files located in all subdirectories of +the current {@code my-dir} path. + +

    You can use this function to provide deep-nested source directory hierarchies to the build +system. By default, the NDK only looks for files in the directory containing the +{@code Android.mk} file.

    + +

    this-makefile

    +

    Returns the path of the current makefile (from which the build system called the function).

    + +

    parent-makefile

    +

    Returns the path of the parent makefile in the inclusion tree (the path of the makefile that +included the current one).

    + +

    grand-parent-makefile

    +

    Returns the path of the grandparent makefile in the inclusion tree (the path of the makefile that +included the current one).

    + +

    import-module

    +

    A function that allows you to find and include the {@code Android.mk} +of another module by name. A typical example is as follows:

    + +
    +$(call import-module,<name>)
    +
    + +

    In this example, the build system looks for the module tagged <name> in the list of +directories referenced that your {@code NDK_MODULE_PATH} environment variable references, and +includes its {@code Android.mk} file automatically for you.

    + +

    For more information, see Android Module Paths (Sharing Code). +

    diff --git a/docs/html-ndk/ndk/guides/application_mk.jd b/docs/html-ndk/ndk/guides/application_mk.jd new file mode 100644 index 000000000000..be82fbe513dc --- /dev/null +++ b/docs/html-ndk/ndk/guides/application_mk.jd @@ -0,0 +1,241 @@ +page.title=Application.mk +@jd:body + +
    +
    +

    On this page

    + +
      +
    1. Overview
    2. +
    3. Variables
    4. +
    +
    +
    + +

    This document explains the syntax of the {@code Application.mk} build file, which describes the +native modules that your app requires. A module can be a static library, a shared library, +or an executable.

    + +

    We recommend that you read the Concepts and +Android.mk pages before this one. Doing so will +help maximize your understanding of the material on this page.

    + +

    Overview

    +The {@code Application.mk} file is really a tiny GNU Makefile fragment that defines several +variables for compilation. It usually resides under {@code $PROJECT/jni/}, where {@code $PROJECT} +points to your application's project directory. Another alternative is to place it under a +sub-directory of the top-level {@code $NDK/apps/} directory. For example:

    + +
    +$NDK/apps/<myapp>/Application.mk
    +
    + +

    Here, {@code <myapp>} is a short name used to describe your app to the NDK build system. It +doesn't actually go into your generated shared libraries or your final packages.

    + +

    Variables

    +

    APP_PROJECT_PATH

    +

    This variable stores the absolute path to your app's project-root directory. The build system +uses this information to place stripped-down versions of the generated JNI shared libraries +into a specific location known to the APK-generating tools.

    + +

    If you place your {@code Application.mk} file under {@code $NDK/apps/<myapp>/}, you must +define this variable. If you place it under {@code $PROJECT/jni/}, it is optional. + +

    APP_OPTIM

    +

    Define this optional variable as either {@code release} or {@code debug}. You use it to +alter the optimization level when building your application's modules.

    + +

    Release mode is the default, and generates highly optimized binaries. Debug mode generates +unoptimized binaries that are much easier to debug.

    + +

    Note that you can debug either release or debug binaries. Release binaries, however, provide less +information during debugging. For example, the build system optimizes out some variables, +preventing you from inspecting them. Also, code re-ordering can make it more difficult to step +through the code; stack traces may not be reliable.

    + +

    Declaring {@code android:debuggable} in your application manifest's {@code <application>} +tag will cause this variable to default to {@code debug} instead of {@code release}. Override this +default value by setting {@code APP_OPTIM} to {@code release}.

    + + +

    APP_CFLAGS

    +

    This variable stores a set of C compiler flags that the build system passes to the compiler +when compiling any C or C++ source code for any of the modules. You can use this variable to change +the build of a given module according to the application that needs it, instead of having to modify +the {@code Android.mk} file itself.

    + + +

    All paths in these flags should be relative to the top-level NDK directory. For example, if you +have the following setup:

    + +
    +sources/foo/Android.mk
    +sources/bar/Android.mk
    +
    + +

    To specify in {@code foo/Android.mk} that you want to add the path to the {@code bar} sources +during compilation, you should use: + +

    +APP_CFLAGS += -Isources/bar
    +
    + +

    Or, alternatively:

    + +
    +APP_CFLAGS += -I$(LOCAL_PATH)/../bar
    +
    + +

    {@code -I../bar} will not work since it is equivalent to +{@code -I$NDK_ROOT/../bar}.

    + +

    Note: This variable only works on C, not C++, sources in +android-ndk-1.5_r1. In all versions after that one, {@code APP_CFLAGS} matches the full Android +build system.

    + +

    APP_CPPFLAGS

    +

    This variable contains a set of C++ compiler flags that the build system passes to the compiler +when building only C++ sources.

    + +

    Note: In android-ndk-1.5_r1, this variable works on both C and +C++ sources. In all subsequent versions of the NDK, {@code APP_CPPFLAGS} now matches the full +Android build system. For flags that apply to both C and C++ sources, use {@code APP_CFLAGS}.

    + +

    APP_LDFLAGS

    +

    A set of linker flags that the build system passes when linking the application. This variable +is only relevant when the build system is building shared libraries and executables. When the +build system builds static libraries, it ignores these flags.

    + +

    APP_BUILD_SCRIPT

    +

    By default, the NDK build system looks under {@code jni/} for a file named +{@code Android.mk}.

    + +

    If you want to override this behavior, you can define {@code APP_BUILD_SCRIPT} to point to an +alternate build script. The build system always interprets a non-absolute path as relative to the +NDK's top-level directory.

    + +

    APP_ABI

    +

    By default, the NDK build system generates machine code for the +{@code armeabi} ABI. This machine code +corresponds to an ARMv5TE-based CPU with software floating point operations. You can use +{@code APP_ABI} to select a different ABI. Table 1 shows the {@code APP_ABI} +settings for different instruction sets.

    + +

    + Table 1. {@code APP_ABI} settings for different instruction sets.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    Instruction setValue
    Hardware FPU instructions on ARMv7 based devices{@code APP_ABI := armeabi-v7a}
    ARMv8 AArch64{@code APP_ABI := arm64-v8a}
    IA-32{@code APP_ABI := x86}
    Intel64{@code APP_ABI := x86_64}
    MIPS32{@code APP_ABI := mips}
    MIPS64 (r6){@code APP_ABI := mips64}
    All supported instruction sets{@code APP_ABI := all}
    + +

    Note: {@code all} is available starting from NDKr7.

    + +

    You can also specify multiple values by placing them on the same line, delimited by spaces. +For example:

    + +
    +APP_ABI := armeabi armeabi-v7a x86 mips
    +
    + +

    For the list of all supported ABIs and details about their usage and limitations, refer to +Android Native CPU ABI Management.

    + +

    APP_PLATFORM

    +

    This variable contains the name of the target Android platform. For example, {@code android-3} +specifies the Android 1.5 system images. For a complete list of platform names and corresponding +Android system images, see Android NDK Stable APIs +.

    + +

    APP_STL

    +

    By default, the NDK build system provides C++ headers for the minimal C++ runtime library +({@code system/lib/libstdc++.so}) provided by the Android system. In addition, it comes with +alternative C++ implementations that you can use or link to in your own applications. +Use {@code APP_STL} to select one of them. Table 2 shows the {@code APP_STL} values to specify +support for different libraries.

    + +

    + Table 2. {@code APP_STL} settings to support different libraries.

    + + + + + + + + + + + + + + + + + +
    LibraryValue
    Static STLport{@code APP_STL := stlport_static}
    Shared STLport{@code APP_STL := stlport_shared}
    Default C++ runtime{@code APP_STL := system}
    + +

    For more information on this subject, see C++ +Support.

    + + +

    APP_SHORT_COMMANDS

    +

    The equivalent of {@code LOCAL_SHORT_COMMANDS} in {@code Application.mk} for your whole project. +For more information, see the documentation for this variable on +{@code Android.mk}.

    + +

    NDK_TOOLCHAIN_VERSION

    +

    Define this variable as either {@code 4.9} or {@code 4.8} to select a version of the GCC +compiler. Version 4.9 is the default for 64-bit ABIs, and 4.8 is the default for 32-bit ABIs. +To select a version of Clang, define this variable as {@code clang3.4}, {@code clang3.5}, or +{@code clang}. Specifying {@code clang} chooses the most recent version of Clang.

    + +

    APP_PIE

    +

    Starting from Android 4.1 (API level 16), Android's dynamic linker supports position-independent +executables (PIE). Use the {@code -fPIE} flag to build them. This flag makes it harder to exploit +memory corruption bugs by randomizing code location. By default, {@code ndk-build} automatically +sets this value to {@code true} if your project targets {@code android-16} or higher. You may set +it manually to either {@code true} or {@code false}.

    + +

    This flag applies only to executables. It has no effect when building shared or static +libraries.

    + +

    Note: PIE executables cannot run on Android releases prior to 4.1. +

    This restriction only applies to executables. It has no effect when building shared or static +libraries.

    + +

    APP_THIN_ARCHIVE

    +

    Sets the default value of {@code LOCAL_THIN_ARCHIVE} in the {@code Android.mk} file for all +static library modules in this project. For more information, see the documentation for +{@code LOCAL_THIN_ARCHIVE} on {@code Android.mk}. +

    diff --git a/docs/html-ndk/ndk/guides/arch.jd b/docs/html-ndk/ndk/guides/arch.jd new file mode 100644 index 000000000000..875bbd90f5ea --- /dev/null +++ b/docs/html-ndk/ndk/guides/arch.jd @@ -0,0 +1,31 @@ +page.title=Architectures and CPUs +@jd:body + +
    +

    This section includes detailed information about ABIs and detailed information on support for respective instruction sets. It includes these topics:

    +
      +
    • ABI Management
        +
      • Different ABIs support different CPUs and processing capabilities.
      • +
      +
    • +
    • Neon
        +
      • Details about targeting devices whose CPUs support Neon, or Advanced SIMD. Neon is an optional extension of the armv7 architecture.
      • +
      +
    • +
    • Mips
        +
      • Details about targeting devices with CPUs supporting the MIPS32 instruction set.
      • +
      +
    • +
    • x86
        +
      • Details about targeting devices with CPUs supporting the IA-32 instruction set.
      • +
      +
    • +
    • x86-64
        +
      • Details about targeting devices whose CPUs support the x86-64 instruction set.
      • +
      +
    • +
    • CPU Features
        +
      • A small library that detects the target device's CPU family and supported features.
      • +
      +
    • +
    \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/build.jd b/docs/html-ndk/ndk/guides/build.jd new file mode 100644 index 000000000000..b1893fa66c66 --- /dev/null +++ b/docs/html-ndk/ndk/guides/build.jd @@ -0,0 +1,23 @@ +page.title=Building +@jd:body + +
    +

    This section explains, in detail, how to use the NDK to build your project. It comprises the following topics:

    +
      +
    • ndk-build
        +
      • How to use the shell script that invokes the tools to build your shared libraries.
      • +
      +
    • +
    • Android.mk
        +
      • Syntax for the file that describes your build sources to the build system.
      • +
      +
    • +
    • Application.mk
        +
      • Syntax for the file that describes the native modules that your application requires.
      • +
      +
    • +
    • Standalone Toolchain
        +
      • How to integrate the NDK into your existing build system.
      • +
      +
    • +
    \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/concepts.jd b/docs/html-ndk/ndk/guides/concepts.jd new file mode 100644 index 000000000000..bd4570ecb0c7 --- /dev/null +++ b/docs/html-ndk/ndk/guides/concepts.jd @@ -0,0 +1,301 @@ +page.title=Concepts +@jd:body + + + +

    Before Beginning

    + +

    This guide assumes that you are:

    + +

    Introduction

    + +

    This section provides a high-level explanation of how the NDK works. The Android NDK is a set of +tools allowing you to embed C or C++ (“native code”) into your Android apps. The ability to use +native code in Android apps can be particularly useful to developers who wish to do one or more of +the following:

    +
      +
    • Port their apps between platforms.
    • +
    • Reuse existing libraries, or provide their own libraries for reuse. +
    • +
    • Increase performance in certain cases, particularly computationally intensive ones like games. +
    • +
    +

    How it Works

    + +

    This section introduces the main components used in building a native application for Android, +and goes on to describe the process of building and packaging.

    +

    Main components

    + +

    You should have an understanding of the following components as you build your app:

    +
      +
    • ndk-build: The ndk-build script launches the build scripts at the heart of the NDK. These +scripts: +
        +
      • Automatically probe your development system and app project file to determine what to build.
      • +
      • Generate binaries.
      • +
      • Copy the binaries to your app's project path.
      • +
      +

      For more information, see the +ndk-build section of this guide.

      +
    • +
    + +
      +
    • Java: From your Java source, the Android build process generates {@code .dex} +("Dalvik EXecutable") files, which are what the Android OS runs in the Dalvik Virtual Machine +(“DVM”). Even if your app contains no Java source code at all, the build process still generates a +{@code .dex} executable file within which the native component runs. + +

      When developing Java components, use the {@code native} keyword to indicate methods implemented +as native code. For example, the following function declaration tells the compiler that the +implementation is in a native library:

      + + + +
      +public native int add(int  x, int  y);
      +
      +
    • +
    + +
      +
    • Native shared libraries: The NDK builds these libraries, or {@code .so} files, from your native +source code. + +

      Note: If two libraries implement respective methods with the same +signature, a link error occurs. In C, "signature" means method name only. In C++, "signature" means +not only method name, but also its argument names and types.

      +
    • +
    + +
      +
    • Native static libraries: The NDK can also build static libraries, or {@code .a} files, which you +can link against other libraries.
    • +
    + +
      +
    • Java Native Interface ("JNI"): The JNI is the interface via which the Java and C++ components +talk to one another. This guide assumes knowledge of the JNI; for information about it, consult the + +Java Native Interface Specification.
    • +
    + +
      +
    • Application Binary Interface ("ABI"): The ABI defines exactly how your app's machine code is +expected to interact with the system at runtime. The NDK builds {@code .so} files against these +definitions. Different ABIs correspond to different architectures: The NDK includes ABI support for +ARMEABI (default), MIPS, and x86. For more information, see +ABI Management.
    • +
    + +
      +
    • Manifest: If you are writing an app with no Java component to it, you must declare the +{@link android.app.NativeActivity} class in the +manifest. The +Native Activity section provides more detail on how to do this, under +“Using the native-activity.h interface.” +
    • +
    + +

    The following two items only apply in cases in which you are using the toolchains provided with +the Android NDK as standalone compilers.

    + +
      +
    • {@code Android.mk}: You must create an {@code Android.mk} configuration file inside your +{@code jni} folder. The ndk-build script looks at this file, which defines the module and its name, +the source files to be compiled, build flags and libraries to link. For more information, see the +Android.mk section of this document.
    • +
    + +
      +
    • {@code Application.mk}: You may optionally create an Application.mk file. This file enumerates +and describes the modules that your app requires. This information includes:
        +
      • ABIs used to compile for specific platforms.
      • +
      • Toolchains.
      • +
      • Standard libraries to include (static and dynamic STLport or default system).
      • +
      +

      For more information, see the +Application.mk section.

      +
    • +
    + + +

    Flow

    + +

    The general flow for developing a native app for Android is as follows:

    +
      +
    1. Design your app, deciding which parts to implement in Java, and which parts to implement as +native code. + +

      Note: While it is possible to completely avoid Java, you are likely +to find the Android Java framework useful for tasks including controlling the display and UI.

      +
    2. + +
    3. Create an Android app Project in Eclipse as you would for any other Android project.
    4. +
    5. If you are writing a native-only app, declare the {@link android.app.NativeActivity} class in +{@code AndroidManifest.xml}. You can do so from the Eclipse/ADT Android Manifest Editor, or by +hand-editing the file. For more information, see the Native Activity section. +
    6. +
    7. Create an Android.mk file describing the native library, including name, flags, linked libraries +and source files to be compiled in the ‘JNI’ directory.
    8. +
    9. OPTIONAL: Create an {@code Application.mk} file configuring the target ABIs, toolchain, +release/debug mode, and STL. For any of these that you do not specify, the following default values +are used, respectively: +
        +
      • +ABI: armeabi +
      • +
      • +Toolchain: GCC 4.8 +
      • +
      • +Mode: Release +
      • +
      • +STL: system +
      +
    10. +
    11. Place your native source under the project's {@code jni} directory.
    12. +
    13. Use ndk-build to compile the native ({@code .so}, {@code .a}) libraries.
    14. +
    15. Build the Java component, producing the executable {@code .dex} file.
    16. +
    17. Package everything into an APK file, containing {@code .so}, {@code .dex}, and other files +needed for your app to run. +
    + +

    Note that Eclipse can perform steps 7. through 9. in a single operation.

    + +

    Native Activities and Applications

    + +

    The Android SDK provides a helper class, {@link android.app.NativeActivity}, that allows you to +write a completely native activity. {@link android.app.NativeActivity} handles the communication +between the Android framework and your native code, so you do not have to subclass it or call its +methods. All you need to do is declare your application to be native in your +{@code AndroidManifest.xml} file, and begin creating your native application.

    + +

    An Android application using {@link android.app.NativeActivity} still runs in its own virtual +machine, sandboxed from other applications. You can therefore still access Android framework APIs +through the JNI. In certain cases, however–such as for sensors, input events, and +assets–the NDK provides native interfaces that you can use instead of having to call +across the JNI. For more information about such support, see +Stable APIs.

    + +

    Regardless of whether or not you are developing a native activity, we recommend that you create +your projects with the traditional Android build tools. Doing so helps ensure building and packaging +of Android applications with the correct structure.

    + +

    The Android NDK provides you with two choices to implement your native activity:

    + +
      +
    • The {@code native_activity.h} header defines the native version of the +{@link android.app.NativeActivity} class. It contains the callback interface and data structures +that you need to create your native activity. Because the main thread of your application handles +the callbacks, your callback implementations must not be blocking. If they block, you might receive +ANR (Application Not Responding) errors because your main thread is unresponsive until the callback +returns.
    • +
    • The android_native_app_glue.h file defines a static helper library built on top of the +{@code native_activity.h} interface. It spawns another thread, which handles things such as +callbacks or input events in an event loop. Moving these events to a separate thread prevents any +callbacks from blocking your main thread.
    • +
    + +

    The {@code <ndk_root>/sources/android/native_app_glue/android_native_app_glue.c} source is +also available, allowing you to modify the implementation.

    +

    For more information on how to use this static library, examine the native-activity sample +application and its documentation. Further reading is also available in the comments in the {@code <ndk_root>/sources/android/native_app_glue/android_native_app_glue.h} file.

    + +

    Using the native-activity.h interface

    + +

    To implement a native activity with the {@code native-activity.h} interface:

    + +
      +
    1. Create a {@code jni/} directory in your project's root directory. This directory stores all of +your native code.
    2. +
    3. Declare your native activity in the {@code AndroidManifest.xml} file.
    4. + +

      Because your application has no Java code, set {@code android:hasCode} to {@code false}.

      + +
      +<application android:label="@string/app_name" android:hasCode="false">
      +
      + +

      You must set the {@code android:name} attribute of the activity tag to +{@link android.app.NativeActivity}.

      + +
      +<activity android:name="android.app.NativeActivity"
      +            android:label="@string/app_name">
      +
      +

      Note: You can subclass {@link android.app.NativeActivity}. If you +do, use the name of the subclass instead of {@link android.app.NativeActivity}.

      +

      The {@code android:value} attribute of the {@code meta-data} tag specifies the name of the shared +library containing the entry point to the application (such as C/C++ {@code main}), omitting the +{@code lib} prefix and {@code .so} suffix from the library name.

      + +
      +          <meta-data android:name="android.app.lib_name"
      +            android:value="native-activity" />
      +            <intent-filter>
      +              <action android:name="android.intent.action.MAIN" />
      +              <category android:name="android.intent.category.LAUNCHER" />
      +            </intent-filter>
      +          </activity>
      +        </application>
      +      </manifest>
      +
      + +
    5. Create a file for your native activity, and implement the {@code ANativeActivity_onCreate()} +function, which the app calls when the native activity starts. This function, analogous +to {@code main} in C/C++, receives a pointer to an {@code ANativeActivity} structure, +which contains function pointers to the various callback implementations that you need to write. +Set the applicable callback function pointers in {@code ANativeActivity->;callbacks} to the +implementations of your callbacks.
    6. + + + +
    7. Set the {@code ANativeActivity->;instance} field to the address of any instance of specific +data that you want to use.
    8. +
    9. Implement anything else that you want your activity to do upon starting.
    10. +
    11. Implement the rest of the callbacks that you set in {@code ANativeActivity->;callbacks}. For +more information on when the callbacks are called, see the +SDK documentation for Activity Lifecycles. +
    12. +
    13. Develop the rest of your application.
    14. +
    15. Create an {@code Android.mk file} in the {@code jni/} directory of your project to describe your +native module to the build system. For more information, see the +Android.mk section.. +
    16. +
    17. Once you have an {@code Android.mk} file, compile your native code using the {@code ndk-build} +command.
    18. + +
      +$ cd <path>/<to>/<project>
      +$ <ndk>/ndk-build
      +
      + +
    19. Build and install your Android project as usual, using Ant or Eclipse. If your native code is in +the {@code jni/} directory, the build script automatically packages the {@code .so} file(s) built +from it into the APK.
    20. +
    + +

    You can find further information on using {@code native-activity.h} here.

    + + + diff --git a/docs/html-ndk/ndk/guides/cpp-support.jd b/docs/html-ndk/ndk/guides/cpp-support.jd new file mode 100644 index 000000000000..60541815ff28 --- /dev/null +++ b/docs/html-ndk/ndk/guides/cpp-support.jd @@ -0,0 +1,328 @@ +page.title=C++ Library Support +@jd:body + + + +

    The Android platform provides a very minimal C++ runtime support library ({@code libstdc++}). +This minimal support does not include, for example:

    + +
      +
    • Standard C++ Library support (except a few trivial headers).
    • +
    • C++ exceptions support
    • +
    • RTTI support
    • +
    + +

    The NDK provides headers for use with this default library. In addition, the NDK provides a +number of helper runtimes that provide additional features. This page provides information about +these helper runtimes, their characteristics, and how to use them. +

    + +

    Helper Runtimes

    + +

    Table 1 provides names, brief explanations, and features of runtimes available inthe NDK.

    + +

    + Table 1. NDK Runtimes and Features.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NameExplanation> +Features +
    {@code libstdc++} (default) The default minimal system C++ runtime library.N/A
    {@code gabi++_static} The GAbi++ runtime (static).C++ Exceptions and RTTI
    {@code gabi++_shared} The GAbi++ runtime (shared).C++ Exceptions and RTTI
    {@code stlport_static} The STLport runtime (static). C++ Exceptions and RTTI; Standard Library
    {@code stlport_shared} The STLport runtime (shared). C++ Exceptions and RTTI; Standard Library
    {@code gnustl_static} The GNU STL (static). C++ Exceptions and RTTI; Standard Library
    {@code gnustl_shared} The GNU STL (shared). C++ Exceptions and RTTI; Standard Library
    {@code c++_static} The LLVM libc++ runtime (static). C++ Exceptions and RTTI; Standard Library
    {@code c++_shared} The LLVM libc++ runtime (shared). C++ Exceptions and RTTI; Standard Library
    + +

    How to set your runtime

    + +

    Use the {@code APP_STL} variable in your +{@code Application.mk} file to specify the runtime you wish to use. Use the values in +the "Name" column in Table 1 as your setting. For example:

    + +
    +APP_STL := gnustl_static
    +
    + +

    You may only select one runtime for your app, and can only do in +{@code Application.mk}.

    + +

    Even if you do not use the NDK build system, you can still use STLport, libc++ or GNU STL. +For more information on how to use these runtimes with your own toolchain, see Standalone Toolchain.

    + +

    Runtime Characteristics

    +

    System runtime

    + +

    This runtime only provides the following headers, with no support beyond them:

    +
      +
    • {@code cassert}
    • +
    • {@code cctype}
    • +
    • {@code cerrno}
    • +
    • {@code cfloat}
    • +
    • {@code climits}
    • +
    • {@code cmath}
    • +
    • {@code csetjmp}
    • +
    • {@code csignal}
    • +
    • {@code cstddef}
    • +
    • {@code cstdint}
    • +
    • {@code cstdio}
    • +
    • {@code cstdlib}
    • +
    • {@code cstring}
    • +
    • {@code ctime}
    • +
    • {@code cwchar}
    • +
    • {@code new}
    • +
    • {@code stl_pair.h}
    • +
    • {@code typeinfo}
    • +
    • {@code utility}
    • +
    + +

    GAbi++ runtime

    +

    This runtime provides the same headers as the default runtime, but adds support for RTTI +(RunTime Type Information) and exception handling.

    + + +

    STLport runtime

    +

    This runtime is an Android port of STLport +(http://www.stlport.org). It provides a complete set of C++ +standard library headers. It also, by embedding its own instance of GAbi++, provides support for +RTTI and exception handling.

    + +

    While shared and static versions of this runtime are avilable, we recommend using the shared +version. For more information, see Static runtimes.

    + +

    The shared library file is named {@code libstlport_shared.so} instead of {@code libstdc++.so} +as is common on other platforms.

    + +

    In addition to the static- and shared-library options, you can also force the NDK to +build the library from sources by adding the following line to your {@code Application.mk} +file, or setting it in your environment prior to building:

    + +
    +STLPORT_FORCE_REBUILD := true
    +
    + + +

    GNU STL runtime

    +

    This runtime is the GNU Standard C++ Library, ({@code libstdc++-v3}). Its shared library file is +named {@code libgnustl_shared.so}.

    + + +

    libC++ runtime:

    +

    This runtime is an Android port of LLVM libc++. Its +shared library file is named {@code libc++_shared.so}.

    + +

    By default, this runtime compiles with {@code -std=c++11}. As with GNU {@code libstdc++}, you +need to explicitly turns on exceptions or rtti support. For information on how to do this, see +C++ Exceptions and RTTI.

    + +

    The NDK provides prebuilt static and shared libraries for {@code libc++} compiled by Clang 3.4, +but you can force the NDK to rebuild {@code libc++} from sources by adding the following line to +your {@code Application.mk} file, or setting it in your environment prior to building:

    + +
    +LIBCXX_FORCE_REBUILD := true
    +
    + +

    atomic support

    + +

    If you include {@code <atomic>}, it's likely that you also need {@code libatomic}. +If you are using {@code ndk-build}, add the following line:

    + +
    +LOCAL_LDLIBS += -latomic
    +
    + +

    If you are using your own toolchain, use:

    + +
    +-latomic
    +
    + +

    Note: {@code -latomic} is only available for GCC 4.8. +Because Clang 3.5 and Clang 3.6 use GCC 4.8's headers and libraries, as well as its +{@code as} and {@code ld} options, those versions of Clang also get {@code -latomic}.

    + + +

    Compatibility

    + +

    Around 99% of tests pass when compiling {@code libc++} with Clang 3.4 for all supported ABIs. +The failures are mostly in the areas of {@code wchar_t} and locales that Android bionic +doesn't support. Switching locale from the default produces the following warning in +{@code logcat}:

    + +
    +newlocale() WARNING: Trying to set locale to en_US.UTF-8 other than "", "C" or "POSIX"
    +
    + +

    We do not recommend using {@code libc++} with GCC 4.6 because of GCC 4.6's limited c++11 +support.

    + +

    For information on {@code libc++} tests that fail to compile, {@code black_list*} in +{@code $NDK/tests/device/test-libc++-shared-full/jni/Android.mk}. For information about tests +that fail to run correctly, see {@code $NDK/tests/device/test-libc++-shared-full/BROKEN_RUN}. +{@code $NDK}, here, is the your NDK installation's root directory.

    + + +

    Important Considerations

    + +

    C++ Exceptions

    +

    In all versions of the NDK later than NDKr5, the NDK toolchain allows you to use C++ runtimes +that support exception handling. However, to ensure compatibility with earlier releases, it +compiles all C++ sources with {@code -fno-exceptions} support by default. You can enable C++ +exceptions either for your entire app, or for individual modules. + +

    To enable exception-handling support for your entire app, add the following line to +your {@code Application.mk} file. +To enable exception-handling support for individual modules', add the following line to +their respective {@code Android.mk} files.

    + +
    +APP_CPPFLAGS += -fexceptions
    +
    + +

    RTTI

    +

    In all versions of the NDK later than NDKr5, the NDK toolchain allows you to use C++ runtimes +that support RTTI. However, to ensure compatibility with earlier releases, it compiles all C++ +sources with {@code -fno-rtti} by default. + +

    To enable RTTI support for your entire app for your entire application, add the following line to +your {@code Application.mk} file: + +

    +APP_CPPFLAGS += -frtti
    +
    + +To enable RTTI support for individual modules, add the following line to +their respective {@code Android.mk} files: + +
    +LOCAL_CPP_FEATURES += rtti
    +
    + +Alternatively, you can use: + +
    +LOCAL_CPPFLAGS += -frtti
    +
    + +

    Static runtimes

    +

    Linking the static library variant of a C++ runtime to more than one binary may result in +unexpected behavior. For example, you may experience:

    + +
      +
    • Memory allocated in one library, and freed in the other, causing memory leakage or heap +corruption.
    • +
    • Exceptions raised in {@code libfoo.so} going uncaught in {@code libbar.so}, causing your app +to crash.
    • +
    • Buffering of {@code std::cout} not working properly
    • +
    + +

    In addition, if you link two shared libraries–or a shared library and an executable– +against the same static runtime, the final binary image of each shared library includes a copy of +the runtime's code. Having multiple instances of runtime code is problematic because of duplication +of certain global variables that the runtime uses or provides internally.

    + +

    This problem does not apply to a project comprising a single shared library. For example, +you can link against {@code stlport_static}, and expect your app to behave correctly. If your +project requires several shared library modules, we recommend that you use the shared library +variant of your C++ runtime.

    + +

    Shared runtimes

    +

    If your app targets a version of Android earlier than Android 4.3 (Android API level 18), +and you use the shared library variant of a given C++ runtime, you must load the shared library +before any other library that depends on it.

    + +

    For example, an app may have the following modules:

    + +
      +
    • libfoo.so
    • +
    • libbar.so which is used by libfoo.so
    • +
    • libstlport_shared.so, used by both libfoo and libbar
    • +
    + +

    You must need to load the libraries in reverse dependency order:

    +
    +    static {
    +      System.loadLibrary("stlport_shared");
    +      System.loadLibrary("bar");
    +      System.loadLibrary("foo");
    +    }
    +
    + +

    Note: Do not use the {@code lib} prefix when calling +{@code System.loadLibrary()}.

    + +

    Licensing

    + +

    STLport is licensed under a BSD-style open-source license. See +{@code $NDK/sources/cxx-stl/stlport/README} for more details about STLport.

    + +

    GNU libstdc++ is covered by the GPLv3 license, and not the LGPLv2 or LGPLv3. For +more information, see +License on the GCC website.

    + +

    LLVM {@code libc++} +is dual-licensed under both the University of Illinois "BSD-Like" license and the MIT license.

    \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/cpu-arm-neon.jd b/docs/html-ndk/ndk/guides/cpu-arm-neon.jd new file mode 100644 index 000000000000..32e9942b8e7c --- /dev/null +++ b/docs/html-ndk/ndk/guides/cpu-arm-neon.jd @@ -0,0 +1,109 @@ +page.title=NEON Support +@jd:body + + + +

    The NDK supports the ARM Advanced SIMD, an optional instruction-set extension of the ARMv7 spec. +NEON provides a set of scalar/vector instructions and registers (shared with the FPU) comparable to +MMX/SSE/3DNow! in the x86 world. To function, it requires VFPv3-D32 (32 hardware FPU 64-bit +registers, instead of the minimum of 16).

    + +

    The NDK supports the compilation of modules or even specific source files with support for NEON. +As a result, a specific compiler flag enables the use of GCC ARM NEON intrinsics and VFPv3-D32 +at the same time.

    + +

    Not all ARMv7-based Android devices support NEON, but devices that do may benefit significantly +from its support for scalar/vector instructions. For x86 devices, the NDK can also translate NEON +instructions into SSE, although with several restrictions. For more information, see +Using LOCAL_ARM_NEON +

    To have the NDK build all its source files with NEON support, include the following line in +your module definition:

    + +
    +LOCAL_ARM_NEON := true
    +
    + +

    It can be especially useful to build all source files with NEON support if you want to build a +static or shared library that specifically contains NEON code paths.

    + +

    Using the .neon Suffix

    +

    When listing source files for your {@code LOCAL_SRC_FILES} variable, you have the option of +using the {@code .neon} suffix to indicate that you want to build binaries with NEON support. +For example, the following example builds one file with {@code .neon} support, and another +without it:

    + +
    +LOCAL_SRC_FILES := foo.c.neon bar.c
    +
    + +

    You can combine the {@code .neon} suffix with the {@code .arm} suffix, which specifies the 32-bit +ARM instruction set for non-NEON instructions. In such a definition, {@code arm} must come before +{@code neon}. For example: {@code foo.c.arm.neon} works, but {@code foo.c.neon.arm} does not.

    + +

    Build Requirements

    +

    NEON support only works with the {@code armeabi-v7a} and {@code x86} ABIs. If the NDK build +scripts encounter other ABIs while attempting to build with NEON support, the NDK build scripts +exit. x86 provides partial NEON support via translation header. It is +important to use checks like the following in your +{@code Android.mk} file:

    + +
    +# define a static library containing our NEON code
    +ifeq ($(TARGET_ARCH_ABI),$(filter $(TARGET_ARCH_ABI), armeabi-v7a x86))
    +include $(CLEAR_VARS)
    +LOCAL_MODULE    := mylib-neon
    +LOCAL_SRC_FILES := mylib-neon.c
    +LOCAL_ARM_NEON  := true
    +include $(BUILD_STATIC_LIBRARY)
    +endif # TARGET_ARCH_ABI == armeabi-v7a || x86
    +
    + +

    Runtime Detection

    +

    Your app must perform runtime detection to confirm that NEON-capable machine code can be run on +the target device. This is because not all ARMv7-based Android devices support NEON. The app can +perform this check using the +{@code cpufeatures} library that comes with +this NDK.

    + +

    You should explicitly check that {@code android_getCpuFamily()} returns {@code +ANDROID_CPU_FAMILY_ARM}, and that {@code android_getCpuFeatures()} returns a value including the +{@code ANDROID_CPU_ARM_FEATURE_NEON flag} set. For example:

    + +
    +#include <cpu-features.h>
    +...
    +...
    +if (android_getCpuFamily() == ANDROID_CPU_FAMILY_ARM &&
    +    (android_getCpuFeatures() & ANDROID_CPU_ARM_FEATURE_NEON) != 0)
    +{
    +    // use NEON-optimized routines
    +    ...
    +}
    +else
    +{
    +    // use non-NEON fallback routines instead
    +    ...
    +}
    +
    +...
    +
    + +

    Sample Code

    +

    The source code for the NDK's hello-neon sample provides an example of how to use the +{@code cpufeatures} library and NEON intrinsics at the same time. This sample implements a tiny +benchmark for a FIR filter loop using a C version, and a NEON-optimized one for devices that +support it.

    \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/cpu-features.jd b/docs/html-ndk/ndk/guides/cpu-features.jd new file mode 100644 index 000000000000..b27250acb263 --- /dev/null +++ b/docs/html-ndk/ndk/guides/cpu-features.jd @@ -0,0 +1,210 @@ +page.title=The cpufeatures Library +@jd:body + +
    +
    +

    On this page

    + +
      +
    1. Usage
    2. +
    3. Functions
    4. +
    5. Change History
    6. +
    +
    +
    + +

    The NDK provides a small library named {@code cpufeatures} that your app can use at runtime to +detect the target device's CPU family and the optional features it supports. It is designed to work +as-is on all official Android platform versions.

    + +

    Usage

    +

    The {@code cpufeatures} library is available as an import module. To use it, follow the procedure +below:

    + +
      +
    1. List {@code cpufeatures} in your list of static library dependencies. For example: + +
      +LOCAL_STATIC_LIBRARIES := cpufeatures
      +
      +
    2. + +
    3. In your source code, include the {@code <cpu-features.h>} header file.
    4. + +
    5. At the end of your {@code Android.mk} file, +insert an instruction to import the {@code android/cpufeatures} module. For example: + +
      +$(call import-module,android/cpufeatures)
      +
      + +

      Here is a simple example of an {@code Android.mk} file that imports the {@code cpufeatures} +library:

      + +
      +<project-path>/jni/Android.mk:
      +LOCAL_PATH := $(call my-dir)
      +
      +include $(CLEAR_VARS)
      +LOCAL_MODULE := <your-module-name>
      +LOCAL_SRC_FILES := <your-source-files>
      +LOCAL_STATIC_LIBRARIES := cpufeatures
      +include $(BUILD_SHARED_LIBRARY)
      +
      +$(call import-module,android/cpufeatures)
      +
      +
    6. +
    + +

    Functions

    +

    The {@code cpufeatures} library provides two functions. The first function returns the family to +which the device's CPU belongs. Declare it as follows:

    + +
    +AndroidCpuFamily android_getCpuFamily();
    +
    + +

    The function returns one of the following enums, representing the CPU family/architecture that +the device supports.

    +
      +
    • {@code ANDROID_CPU_FAMILY_ARM}
    • +
    • {@code ANDROID_CPU_FAMILY_X86}
    • +
    • {@code ANDROID_CPU_FAMILY_MIPS}
    • +
    • {@code ANDROID_CPU_FAMILY_ARM64}
    • +
    • {@code ANDROID_CPU_FAMILY_X86_64}
    • +
    • {@code ANDROID_CPU_FAMILY_MIPS64}
    • +
    + +

    For a 32-bit executable on a 64-bit system, this function returns only the 32-bit value.

    + +

    The second function returns the set of optional features that the device's CPU supports. Declare +it as follows: + +

    +uint64_t android_getCpuFeatures();
    +
    + +

    The return value takes the form of a set of bit flags, each flag representing one +CPU-family-specific feature. The rest of this section provides information on features for +the respective families.

    + +

    32-bit ARM CPU family

    + +

    The following flags are available for the 32-bit ARM CPU family:

    +
    +
    {@code ANDROID_CPU_ARM_FEATURE_VFPv2}
    +
    Indicates that the device's CPU supports the VFPv2 instruction set. Most ARMv6 CPUs support +this instruction set.
    + +
    {@code ANDROID_CPU_ARM_FEATURE_ARMv7}
    +
    Indicates that the device's CPU supports the ARMv7-A instruction set as supported by the +armeabi-v7a ABI. This instruction set supports both +Thumb-2 and VFPv3-D16 instructions. This return value also indicates support for the VFPv3 hardware +FPU instruction-set extension.
    + +
    {@code ANDROID_CPU_ARM_FEATURE_VFPv3}
    +
    Indicates that the device's CPU supports the VFPv3 hardware FPU instruction-set extension. +

    This value is equivalent to the {@code VFPv3-D16} instruction set, which provides provides only +16 hardware double-precision FP registers.

    + +
    {@code ANDROID_CPU_ARM_FEATURE_VFP_D32}
    +
    Indicates that the device's CPU supports 32 hardware double-precision FP registers instead of +16. Even when there are 32 hardware double-precision FP registers, there are still only 32 +single-precision registers mapped to the same register banks.
    + +
    {@code ANDROID_CPU_ARM_FEATURE_NEON}
    +
    Indicates that the device's CPU supports the ARM Advanced SIMD (NEON) vector instruction set +extension. Note that ARM mandates that such CPUs also implement VFPv3-D32, which provides 32 +hardware FP registers (shared with the NEON unit).
    + +
    {@code ANDROID_CPU_ARM_FEATURE_VFP_FP16}
    +
    Indicates that the device's CPU supports instructions to perform floating-point operations on +16-bit registers. This feature is part of the VFPv4 specification.
    + +
    {@code ANDROID_CPU_ARM_FEATURE_VFP_FMA}
    +
    Indicates that the device's CPU supports the fused multiply-accumulate extension for the VFP +instruction set. Also part of the VFPv4 specification.
    + +
    {@code ANDROID_CPU_ARM_FEATURE_NEON_FMA}
    +
    Indicates that the device's CPU supports the fused multiply-accumulate extension for the NEON +instruction set. Also part of the VFPv4 specification.
    + +
    {@code ANDROID_CPU_ARM_FEATURE_IDIV_ARM}
    +
    Indicates that the device's CPU supports integer division in ARM mode. Only available on later- +model CPUs, such as Cortex-A15.
    + +
    {@code ANDROID_CPU_ARM_FEATURE_IDIV_THUMB2}
    +
    Indicates that the device's CPU supports Integer division in Thumb-2 mode. Only available on +later-model CPUs, such as Cortex-A15.
    + +
    {@code ANDROID_CPU_ARM_FEATURE_iWMMXt}
    +
    Indicates that the device's CPU supports an instruction-set extension that adds MMX registers +and instructions. This feature is only available on a few XScale- based CPUs.
    + +
    {@code ANDROID_CPU_ARM_FEATURE_LDREX_STREX}
    +
    Indicates that the device's CPU supports LDREX and STREX instructions available since ARMv6. +Together, these instructions provide atomic updates on memory with the help of exclusive +monitor.
    +
    + +

    64-bit ARM CPU family

    + +

    The following flags are available for the 64-bit ARM CPU family:

    +
    +
    {@code ANDROID_CPU_ARM64_FEATURE_FP}
    +
    Indicates that the device's CPU has a Floating Point Unit (FPU). All Android ARM64 devices must +support this feature.
    +
    {@code ANDROID_CPU_ARM64_FEATURE_ASIMD}
    +
    Indicates that the device's CPU has an Advanced SIMD (ASIMD) unit. All Android ARM64 devices +must support this feature.
    +
    {@code ANDROID_CPU_ARM64_FEATURE_AES}
    +
    Indicates that the device's CPU supports {@code AES} instructions.
    +
    {@code ANDROID_CPU_ARM64_FEATURE_CRC32}
    +
    Indicates that the device's CPU supports {@code CRC32} instructions.
    +
    {@code ANDROID_CPU_ARM64_FEATURE_SHA1}
    +
    Indicates that the device's CPU supports {@code SHA1} instructions.
    +
    {@code ANDROID_CPU_ARM64_FEATURE_SHA2}
    +
    Indicates that the device's CPU supports {@code SHA2} instructions.
    +
    {@code ANDROID_CPU_ARM64_FEATURE_PMULL}
    +
    Indicates that the device's CPU supports 64-bit {@code PMULL} and {@code PMULL2} +instructions.
    +
    + +

    32-bit x86 CPU family

    + +

    The following flags are available for the 32-bit x86 CPU family.

    +

    +
    {@code ANDROID_CPU_X86_FEATURE_SSSE3}
    +Indicates that the device's CPU supports the SSSE3 instruction extension set. + +
    {@code ANDROID_CPU_X86_FEATURE_POPCNT}
    +
    Indicates that the device's CPU supports the {@code POPCNT} instruction.
    + +
    {@code ANDROID_CPU_X86_FEATURE_MOVBE}
    +
    Indicates that the device's CPU supports the {@code MOVBE} instruction. This instruction is +specific to some Intel IA-32 CPUs, such as Atom.
    +
    + +

    {@code android_getCpuFeatures()} returns {@code 0} for CPU families for which there are no +listed extensions.

    + +

    The following function returns the maximum number of CPU cores on the target device:

    + +
    +int  android_getCpuCount(void);
    +
    + +

    MIPS CPU family

    + +
    +
    {@code ANDROID_CPU_MIPS_FEATURE_R6}
    +
    Indicates that the CPU executes MIPS Release 6 instructions natively, and supports obsoleted R1..R5 instructions only via kernel traps.
    + +
    {@code ANDROID_CPU_MIPS_FEATURE_MSA}
    +
    Indicates that the CPU supports MIPS SIMD Architecture instructions.
    +
    + +

    Change History

    +

    For the complete change history of this library, see the comments in +{@code $NDK/sources/android/cpufeatures/cpu-features.c}, where {@code $NDK} is the root of your +NDK installation.

    \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/debug.jd b/docs/html-ndk/ndk/guides/debug.jd new file mode 100644 index 000000000000..b202ed9ab968 --- /dev/null +++ b/docs/html-ndk/ndk/guides/debug.jd @@ -0,0 +1,17 @@ +page.title=Debugging +@jd:body + +
    Debugging
    +
    +
    +

    This section introduces you to debugging with the NDK. It includes:

    +
      +
    • ndk-gdb and ndk-gdb-py
        +
      • The helper shell script named ndk-gdb, which allows you to launch a native debugging session for your NDK-generated machine code.
      • +
      +
    • +
    • ndk-stack
        +
      • A tool that helps you use ADB logcat in your debugging.
      • +
      +
    • +
    \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/guides_toc.cs b/docs/html-ndk/ndk/guides/guides_toc.cs index e6bc19928f69..3763c53b98ee 100644 --- a/docs/html-ndk/ndk/guides/guides_toc.cs +++ b/docs/html-ndk/ndk/guides/guides_toc.cs @@ -8,8 +8,65 @@ diff --git a/docs/html-ndk/ndk/guides/images/NDK_build_string.png b/docs/html-ndk/ndk/guides/images/NDK_build_string.png new file mode 100644 index 0000000000000000000000000000000000000000..338378bca6f0e6feeba5d4e9674701fd6aae1f08 GIT binary patch literal 22494 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 YZ&lfYbn0)Fb+25Z7`Srf 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 literal 0 HcmV?d00001 diff --git a/docs/html-ndk/ndk/guides/images/verification_screen@2x.png b/docs/html-ndk/ndk/guides/images/verification_screen@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0d666c9d02b3fcd37e04b7b4418f87a40af9ce7b GIT binary patch literal 287252 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

    This section provides the information you need to get up and running +with the NDK.

    +
      +
    • Setup
    • +
        +
      • Learn how to set up the NDK, and verify that it's integrated into + your toolchain.
      • +
      +
    • Concepts
    • +
        +
      • Learn some basics about how the NDK works and its components, and about how to use it. +
      • +
      +
    diff --git a/docs/html-ndk/ndk/guides/libs.jd b/docs/html-ndk/ndk/guides/libs.jd new file mode 100644 index 000000000000..1d4d2ac7faa9 --- /dev/null +++ b/docs/html-ndk/ndk/guides/libs.jd @@ -0,0 +1,20 @@ +page.title=Libraries +@jd:body + +
    +

    This section discusses libraries included with the NDK, as well as how to use other people's libraries and modules in your own application. It discusses:

    +
      +
    • Stable APIs
        +
      • This section discusses the stable APIs exposed by the NDK.
      • +
      +
    • +
    • Prebuilt Libraries
        +
      • How to include and use prebuilt libraries in your own application.
      • +
      +
    • +
    • C++ Support
      +
        +
      • Information about the NDK's C++ runtime support library and corresponding header files.
      • +
      +
    • +
    \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/md_1__concepts__concepts.html b/docs/html-ndk/ndk/guides/md_1__concepts__concepts.html deleted file mode 100644 index 2dcf6aed7f64..000000000000 --- a/docs/html-ndk/ndk/guides/md_1__concepts__concepts.html +++ /dev/null @@ -1,4 +0,0 @@ -page.title=Concepts -@jd:body - -

    This section provides a high-level explanation of how the NDK works. The Android NDK is a set of tools allowing you to embed C or C++ (“native code”) into your Android apps. The ability to use native code in Android apps can be particularly useful to developers who wish to do one or more of the following: \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/mips.jd b/docs/html-ndk/ndk/guides/mips.jd new file mode 100644 index 000000000000..1aa1868db7ad --- /dev/null +++ b/docs/html-ndk/ndk/guides/mips.jd @@ -0,0 +1,43 @@ +page.title=MIPS Support +@jd:body + +

    +
    +

    On this page

    + +
      +
    1. Overview
    2. +
    3. Compatibility
    4. +
    +
    +
    + +

    The NDK supports the {@code mips} ABI, which allows native code to run on Android-based devices +that have CPUs supporting the MIPS32 instruction set.

    + +

    Overview

    +

    To generate MIPS machine code, include {@code mips} in your +{@code Application.mk} file's +{@code APP_ABI} definition. For example:

    + +
    +APP_ABI := mips
    +
    + +

    For more information about defining the {@code APP_ABI} variable, see +{@code Application.mk}.

    + +

    The build system places generated libraries into {@code $PROJECT/libs/mips/}, where +{@code $PROJECT} represents your project's root directory, and embeds them in your APK under +{@code /lib/mips/}.

    + +

    The Android package manager extracts these libraries when installing your APK on a compatible +MIPS-based device, placing them under your app's private data directory.

    + +

    In the Google Play store, the server filters applications so that a consumer sees only the native +libraries that run on the CPU powering his or her device.

    + +

    Compatibility

    +

    MIPS support requires, at minimum, Android 2.3 (Android API level 9). If your project files +target an older API level, but include MIPS as a targeted platform, the NDK build script +automatically selects the right set of native platform headers/libraries for you.

    \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/ndk-build.jd b/docs/html-ndk/ndk/guides/ndk-build.jd new file mode 100644 index 000000000000..d52d22464bda --- /dev/null +++ b/docs/html-ndk/ndk/guides/ndk-build.jd @@ -0,0 +1,194 @@ +page.title=ndk-build +@jd:body + + + +

    ndk-build is a tiny shell script introduced in Android NDK r4. Its purpose +is simply to invoke the right NDK build script. + +

    Internals

    + +ndk-build is equivalent to:

    + +
    +$GNUMAKE -f <ndk>/build/core/build-local.mk
    +<parameters>
    +
    + +

    $GNUMAKE points to GNU Make 3.81 or later, and +<ndk> points to your NDK installation directory. You can use +this information to invoke ndk-build from other shell scripts, or even your own +make files.

    + +

    Invoking from the Command Line

    +

    ndk-build lives in the top level the NDK installation directory. To run it from the +command line, invoke it while in or under your application project directory. +For example:

    + +
    +cd <project>
    +$ <ndk>/ndk-build
    +
    + +

    In this example, <project> points to your +project’s root directory, and <ndk> is the directory where +you installed the NDK. As noted in Setup, you can add {@code $NDK} to your +{@code PATH} to avoid having to type the whole filepath every time you use ndk-build. +Alternatively, you can create an alias.

    +

    +

    Options

    +

    All parameters to ndk-build are passed directly to the underlying GNU {@code make} +command that runs the NDK build scripts. Combine ndk-build and +options in the form ndk-build <option>. For example:

    + +
    +$ ndk-build clean
    +
    + +

    The following options are available:

    +
    +
    {@code clean}
    +
    Remove any previously generated binaries.
    +
    {@code V=1}
    +
    Launch build, and display build commands.
    +
    {@code -B}
    +
    Force a complete rebuild.
    +
    {@code -B V=1}
    +
    Force a complete rebuild, and display build commands.
    +
    {@code NDK_LOG=1} +
    Display internal NDK log messages (used for debugging the NDK itself).
    +
    {@code NDK_DEBUG=1}
    +
    Force a debuggable build (see Table 1).
    +
    {@code NDK_DEBUG=0}
    +
    Force a release build (see Table 1).
    +
    {@code NDK_HOST_32BIT=1}
    +
    Always use the toolchain in 32-bit mode (see 64-bit and 32-bit + Toolchains).
    +
    {@code NDK_APPLICATION_MK=<file>}
    +
    Build, using a specific Application.mk file pointed to by the + {@code NDK_APPLICATION_MK} variable.
    +
    {@code -C <project>}
    +
    Build the native code for the project path located at {@code <project>}. Useful if you + don't want to {@code cd} to it in your terminal.
    +
    + +

    Invoking from Eclipse

    +

    To build from Eclipse, make sure that you have configured it as described in +Setup. If you +wish to build using the default ndk-build command, with no +options, you can just build your project just as you would any Android project. +To get Eclipse to add any of the options described above, follow these steps:

    +
      +
    1. In the Project Explorer pane, right-click your project name.
    2. +
    3. Select Properties.
    4. +
    5. Click C/C++ Build.
    6. +
    7. Under the Builder Settings tab, uncheck Use default build command.
    8. +
    9. In the Build command field, enter the entire build string as if you were typing it on +the command line.
    10. +
    11. Click OK.
    12. +
    +Figure 1 shows an example of an entered string.
    +
    +enter the build string next to 'Build command' +

    Figure 1. Specifying a debug build from within +Eclipse

    +

    +

    Debuggable versus Release builds

    +

    Use the NDK_DEBUG option and, in certain cases, +{@code AndroidManifest.xml} to specify debug or release build, +optimization-related behavior, and inclusion of symbols. Table 1 shows the +results of each possible combination of settings.

    +

    Table 1. Results of NDK_DEBUG (command line) and +android:debuggable (manifest) combinations.

    + + + + + + + +
    NDK_DEBUG=0 NDK_DEBUG=1NDK_DEBUG not specified +
    android:debuggble="true" Debug; Symbols; Optimized*1 +Debug; Symbols; Not optimized*2 (same as NDK_DEBUG=1) +
    android:debuggable="false"Release; Symbols; Optimized +Release; Symbols; Not optimizedRelease; No symbols; +Optimized*3
    +*1: Useful for profiling.
    +*2: Default for running ndk-gdb.
    +*3: Default mode.
    +
    +

    Note: {@code NDK_DEBUG=0} is the equivalent of +{@code APP_OPTIM=release}, and complies with the GCC {@code -O2} option. {@code NDK_DEBUG=1} is the +equivalent of {@code APP_OPTIM=debug} in {@code Application.mk}, and complies with the GCC +{@code -O0} option. For more information about {@code APP_OPTIM}, see +Application.mk.

    +

    The syntax on the command line is, for example:

    + +
    +$ ndk-build NDK_DEBUG=1
    +
    + +

    If you are using build tools from prior to SDK r8, you must also modify your +{@code AndroidManifest.xml} file to specify debug mode. The syntax for doing so resembles the +following:

    + +
    <application android:label="@string/app_name"
    +android:debuggable="true">
    +
    + +From SDK r8 onward, you do not need to touch {@code AndroidManifest.xml}. Building a debug package +(e.g. with ant debug or the corresponding option of the ADT plugin) causes the tool automatically to +pick the native debug files generated with {@code NDK_DEBUG=1}. + + +

    64-bit and 32-bit toolchains

    +

    Some toolchains come with both 64-bit and 32-bit versions. For example, +directories {@code <ndk>/toolchain/<name>/prebuilt/} and +{@code <ndk>/prebuilt/} may contain both {@code linux-x86} and +{@code linux-x86_64} folders for Linux tools in 32-bit and 64-bit modes, +respectively. The ndk-build script automatically chooses a 64-bit version of +the toolchain if the host OS supports it. You can force the use of a 32-bit +toolchain by using {@code NDK_HOST_32BIT=1} either in your environment or +on the ndk-build command line.

    +

    Note that 64-bit tools utilize host resources better (for instance, they are faster, and handle +larger programs), and they can still generate 32-bit binaries for Android.

    + +

    Requirements

    +

    You need GNU Make 3.81 or later to use ndk-build or the NDK in general. +The build scripts will detect a non-compliant Make tool, and generate an error +message.

    +

    If you have GNU Make 3.81 installed, but the default make +command doesn’t launch it, define {@code GNUMAKE} in your environment to point to it +before launching ndk-build. For example:

    + +
    +$ export GNUMAKE=/usr/local/bin/gmake
    +$ ndk-build
    +
    + +

    You can override other host prebuilt tools in {@code $NDK/prebuilt/<OS>/bin/} +with the following environment variables:

    + +
    +$ export NDK_HOST_AWK=<path-to-awk>
    +$ export NDK_HOST_ECHO=<path-to-echo>
    +$ export NDK_HOST_CMP=<path-to-cmp>
    +
    diff --git a/docs/html-ndk/ndk/guides/ndk-gdb.jd b/docs/html-ndk/ndk/guides/ndk-gdb.jd new file mode 100644 index 000000000000..2370ba2a90f6 --- /dev/null +++ b/docs/html-ndk/ndk/guides/ndk-gdb.jd @@ -0,0 +1,241 @@ +page.title=ndk-gdb +@jd:body + +
    +
    +

    On this page

    + +
      +
    1. Requirements
    2. +
    3. Usage
    4. +
    5. Thread Support
    6. +
    +
    +
    + +

    The NDK includes a helper shell script named {@code ndk-gdb} to easily launch a native debugging + session for your NDK-generated machine code.

    + +

    Requirements

    + +

    For native debugging to work, you must follow these requirements:

    + +
      +
    • Build your app using the {@code ndk-build} script. The {@code ndk-gdb} script +does not support using the legacy {@code make APP=<name>} method to build.

    • +
    • Enable app debugging in your {@code AndroidManifest.xml} file by including an +{@code <application>} element that sets the {@code android:debuggable} attribute to {@code +true}.
    • +
    • Build your app to run on Android 2.2 (Android API level 8) or higher.
    • +
    • Debug on a device or emulator running Android 2.2 or higher. For debugging purposes, the target +API level that you declare in your {@code AndroidManifest.xml} file does not matter.
    • +
    • Develop your app in a Unix shell. On Windows, use Cygwin +or the experimental {@code ndk-gdb-py} Python +implementation.
    • +
    • Use GNU Make 3.81 or higher.
    • +
    • If you are building your app from +Eclipse, build it +using version 0.9.7 or higher of the ADT plug-in.
    • + +

      Usage

      + To invoke the {@code ndk-gdb} script, change into the application directory or any directory under + it. For example:

      + +
      +cd $PROJECT
      +$NDK/ndk-gdb
      +
      + +

      Here, {@code $PROJECT} points to your project's root directory, and {@code $NDK} points to your +NDK installation path.

      + +

      When you invoke {@code ndk-gdb}, it configures the session to look for your source files +and symbol/debug versions of your generated native libraries. On successfully attaching to your +application process, {@code ndk-gdb} outputs a long series of error messages, noting that it cannot +find various system libraries. This is normal, because your host machine does not contain +symbol/debug versions of these libraries on your target device. You can safely ignore these +messages.

      + +

      Next, {@code ndk-gdb} displays a normal GDB prompt.

      + +

      You interact with {@code ndk-gdb} in the same way as you would with GNU GDB. For example, you can +use {@code b <location>} to set breakpoints, and {@code c} (for "continue") to +resume execution. For a comprehensive list of commands, see the +GDB manual.

      + +

      Note that when you quit the GDB prompt, the application process that you're debugging stops. This +behavior is a gdb limitation.

      + +

      {@code ndk-gdb} handles many error conditions, and displays an informative error message if it +finds a problem. these checks include making sure that the following conditions are satisfied:

      + +
        +
      • Checks that ADB is in your path.
      • +
      • Checks that your application is declared debuggable in its manifest.
      • +
      • Checks that, on the device, the installed application with the same package name is also +debuggable.
      • +
      + +

      By default, {@code ndk-gdb} searches for an already-running application process, and displays an +error if it doesn't find one. You can, however, use the {@code --start} or +{@code --launch=<name>} option to automatically start your activity before the debugging +session. For more information, see Options.

      + + +

      Options

      +

      To see a complete list of options, type {@code ndk-gdb --help} on the command line. Table 1 +shows a number of the more commonly used ones, along with brief descriptions.

      + +

      + Table 1. Common ndk-gdb options and their descriptions.

      + + + + + + + + + + + + + + + + + + + + + +

      Starting {@code ndk-gdb} with this option specified launches the first launchable activity listed +in your application manifest. Use {@code --launch=<name>} to start the next launchable +activity. To dump the list of launchable activities, run {@code --launch-list} from the command +line.

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      OptionDescription>
      {@code --verbose}

      This option tells the build system to print verbose information about the native-debugging +session setup. It is necessary only for debugging problems when the debugger can't connect to the +app, and the error messages that {@code ndk-gdb} displays are not enough.

      {@code --force}By default, {@code ndk-gdb} aborts if it finds that another native debugging session is already + running on the same device. This option kills the other session, and replaces it with a new one. + Note that this option does not kill the actual app being debugged, which you must kill + separately.
      {@code --start}

      When you start {@code ndk-gdb}, it tries by default to attach to an existing running instance of +your app on the target device. You can override this default behavior by using {@code --start} to +explicitly launch the application on the target device before the debugging session.

      {@code --launch=<name>}

      This option is similar to {@code --start}, except that it allows you to start a specific + activity from your application. This feature is only useful if your manifest defines multiple + launchable activities.

      {@code --launch-list}

      This convenience option prints the list of all launchable activity names found in your + app manifest. {@code --start} uses the first activity name.

      {@code --project=<path>}This option specifies the app project directory. It is useful if you want to launch the + script without first having to change to the project directory.

      {@code --port=<port>}

      By default, {@code ndk-gdb} uses local TCP port 5039 to communicate with the app it + is debugging on the target device. Using a different port allows you to natively debug programs + running on different devices or emulators connected to the same host machine.

      {@code --adb=<file>}

      This option specifies the adb +tool executable. It is only necessary if you have not set your path to include that executable.

      +
      +
    • {@code -d}
    • +
    • {@code -e}
    • +
    • {@code -s <serial>}
    • These flags are similar to the adb commands with the same names. Set these flags if you have +several devices or emulators connected to your host machine. Their meanings are as follows:

      +
      +
      {@code -d}
      +
      Connect to a single physical device.
      +
      {@code -e}
      +
      Connect to a single emulator device.
      +
      {@code -s <serial>}
      +
      Connect to a specific device or emulator. Here, {@code <serial>} is the device's name + as listed by the {@code adb devices} command.
      +
      + +

      Alternatively, you can define the {@code ADB_SERIAL} environment variable to list a specific +device, without the need for a specific option.

      +
    • {@code --exec=<file>}
    • +
    • {@code -x <file>}
    • +

      This option tells {@code ndk-gdb} to run the GDB initialization commands found in +{@code <file>} after connecting to the process it is debugging. This is a useful feature if +you want to do something repeatedly, such as setting up a list of breakpoints, and then resuming +execution automatically.

      {@code --nowait}

      Disable pausing the Java code until GDB connects. Passing this option may cause the debugger + to miss early breakpoints.

      +
      {@code --tui} +{@code -t}

      Enable Text User Interface if it is available.

      {@code --gnumake-flag=<flag>}

      This option is an extra flag (or flags) to pass to the +{@code ndk-build} system when +querying it for project information. You can use multiple instances of this option in the +same command.

      {@code --stdcxx-py-pr={auto|none|gnustdcxx[-GCCVER]|stlport}}

      Use specified Python pretty-printers for displaying types in the Standard C++ Library. + {@code auto} mode works by looking at the {@code .so} files for a {@code libstdc++} library, + and as such only works for a shared library. When linking statically to a {@code libstdc++} library, + you must specify the required printers. The default is {@code none}.

      + +

      Note: The final three options in this table are only for the +Python version of {@code ndk-gdb}.

      + +

      Thread Support

      +

      If your app runs on a platform older than Android 2.3 (API level 9), {@code ndk-gdb} +cannot debug native threads properly. The debugger can only debug the main thread, abd completely +ignores the execution of other threads.

      + +

      Using a version of Android prior to 2.3 causes {@code ndk-gdb} to display the following message +prior to showing the GDB prompt:

      + +
      +Thread debugging is unsupported on this Android platform!
      +
      + + +

      If you place a breakpoint on a function executed on a non-main thread, the program exits, and +GDB displays the following message:

      + +
      +Program terminated with signal SIGTRAP, Trace/breakpoint trap.
      +      The program no longer exists.
      +
      diff --git a/docs/html-ndk/ndk/guides/ndk-stack.jd b/docs/html-ndk/ndk/guides/ndk-stack.jd new file mode 100644 index 000000000000..27c752af12c8 --- /dev/null +++ b/docs/html-ndk/ndk/guides/ndk-stack.jd @@ -0,0 +1,84 @@ +page.title=ndk-stack +@jd:body + +
      +
      +

      On this page

      + +
        +
      1. Usage
      2. +
      +
      +
      + +

      The {@code ndk-stack} tool allows you to filter stack traces as they appear in the +output of {@code adb logcat}, and replace any address inside a shared library with the corresponding +{@code <source-file>:<line-number>} values.

      + +

      For example, it translates something like:

      + +
      +I/DEBUG   (   31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
      +I/DEBUG   (   31): Build fingerprint: 'generic/google_sdk/generic/:2.2/FRF91/43546:eng/test-keys'
      +I/DEBUG   (   31): pid: 351, tid: 351  %gt;%gt;%gt; /data/local/ndk-tests/crasher <<<
      +I/DEBUG   (   31): signal 11 (SIGSEGV), fault addr 0d9f00d8
      +I/DEBUG   (   31):  r0 0000af88  r1 0000a008  r2 baadf00d  r3 0d9f00d8
      +I/DEBUG   (   31):  r4 00000004  r5 0000a008  r6 0000af88  r7 00013c44
      +I/DEBUG   (   31):  r8 00000000  r9 00000000  10 00000000  fp 00000000
      +I/DEBUG   (   31):  ip 0000959c  sp be956cc8  lr 00008403  pc 0000841e  cpsr 60000030
      +I/DEBUG   (   31):          #00  pc 0000841e  /data/local/ndk-tests/crasher
      +I/DEBUG   (   31):          #01  pc 000083fe  /data/local/ndk-tests/crasher
      +I/DEBUG   (   31):          #02  pc 000083f6  /data/local/ndk-tests/crasher
      +I/DEBUG   (   31):          #03  pc 000191ac  /system/lib/libc.so
      +I/DEBUG   (   31):          #04  pc 000083ea  /data/local/ndk-tests/crasher
      +I/DEBUG   (   31):          #05  pc 00008458  /data/local/ndk-tests/crasher
      +I/DEBUG   (   31):          #06  pc 0000d362  /system/lib/libc.so
      +I/DEBUG   (   31):
      +
      + +

      Into the more readable output:

      + +
      +********** Crash dump: **********
      +Build fingerprint: 'generic/google_sdk/generic/:2.2/FRF91/43546:eng/test-keys'
      +pid: 351, tid: 351  >>> /data/local/ndk-tests/crasher <<<
      +signal 11 (SIGSEGV), fault addr 0d9f00d8
      +Stack frame #00  pc 0000841e  /data/local/ndk-tests/crasher : Routine zoo in /tmp/foo/crasher/jni/zoo.c:13
      +Stack frame #01  pc 000083fe  /data/local/ndk-tests/crasher : Routine bar in /tmp/foo/crasher/jni/bar.c:5
      +Stack frame #02  pc 000083f6  /data/local/ndk-tests/crasher : Routine my_comparison in /tmp/foo/crasher/jni/foo.c:9
      +Stack frame #03  pc 000191ac  /system/lib/libc.so
      +Stack frame #04  pc 000083ea  /data/local/ndk-tests/crasher : Routine foo in /tmp/foo/crasher/jni/foo.c:14
      +Stack frame #05  pc 00008458  /data/local/ndk-tests/crasher : Routine main in /tmp/foo/crasher/jni/main.c:19
      +Stack frame #06  pc 0000d362  /system/lib/libc.so
      +
      + +

      Usage

      +

      To use {@code ndk-stack}, you first need a directory containing symbolic versions of your app's +shared libraries. If you use the NDK build system ({@code ndk-build}), these shared-library +files reside under {@code $PROJECT_PATH/obj/local/<abi>}, where {@code <abi>} represents +your device's ABI. By default, the system uses the {@code armeabi} ABI.

      + +

      There are two ways to use the tool. You can feed the logcat text as direct input to the program. +For example:

      + +
      +adb logcat | $NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi
      +
      + +

      You can also use the {@code -dump} option to specify the logcat as an input file. For example: +

      + +
      +adb logcat > /tmp/foo.txt
      +$NDK/ndk-stack -sym $PROJECT_PATH/obj/local/armeabi -dump foo.txt
      +
      + +

      When it begins parsing the logcat output, the tool looks for an initial line of asterisks. +For example:

      + +
      +*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
      +
      + +

      Note: When copy/pasting traces, don't forget this line, or +{@code ndk-stack} won't work correctly.

      \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/prebuilts.jd b/docs/html-ndk/ndk/guides/prebuilts.jd new file mode 100644 index 000000000000..f0530d197a44 --- /dev/null +++ b/docs/html-ndk/ndk/guides/prebuilts.jd @@ -0,0 +1,145 @@ +page.title=Using Prebuilt Libraries +@jd:body + + + +

      The NDK supports the use of prebuilt libraries, both static and shared. There are two principal +use cases for this functionality:

      + +
        +
      • Distributing your own libraries to third-party NDK developers without distributing your + sources.
      • +
      • Using a prebuilt version of your own libraries to speed up your build.
      • +
      + +

      This page explains how to use prebuilt libraries.

      + +

      Declaring a Prebuilt Library

      +

      You must declare each prebuilt library you use as a single independent module. To do + so, perform the following steps: + +

        +
      1. Give the module a name. This name does not need to be the same as that of the prebuilt + library, itself.
      2. +
      3. In the module's {@code Android.mk} + file, assign to {@code LOCAL_SRC_FILES} the path to the prebuilt library you are providing. + Specify the path relative to the value of your {@code LOCAL_PATH} variable.

        +

        Note: You must make sure to select the version of your prebuilt + library appropriate to your target ABI. For more information on ensuring library support for + ABIs, see Selecting ABIs for Prebuilt Libraries.

      4. +
      5. Include {@code PREBUILT_SHARED_LIBRARY} or {@code PREBUILT_STATIC_LIBRARY}, depending on + whether you are using a shared ({@code .so}) or static {@code .a}) library.
      6. +
      + +

      Here is a trivial example that assumes that the prebuilt library {@code libfoo.so} resides in + the same directory as the {@code Android.mk} + file that describes it.

      + +
      +LOCAL_PATH := $(call my-dir)
      +
      +include $(CLEAR_VARS)
      +LOCAL_MODULE := foo-prebuilt
      +LOCAL_SRC_FILES := libfoo.so
      +include $(PREBUILT_SHARED_LIBRARY)
      +
      + +

      In this example, the name of the module is the same as that of the prebuilt library.

      + +

      The build system places a copy of your prebuilt shared library into {@code $PROJECT/obj/local}, +and another copy, stripped of debug information, into {@code $PROJECT/libs/<abi>}. Here, +{@code $PROJECT} is the root directory of your project.

      + +

      Referencing the Prebuilt Library from Other Modules

      +

      To reference a prebuilt library from other modules, specify its name as the value +of the {@code LOCAL_STATIC_LIBRARIES} or {@code LOCAL_SHARED_LIBRARIES} variable in the +{@code Android.mk} files associated with those +other modules.

      + +

      For example, the description of a module using {@code libfoo.so} might be as follows:

      + +
      +include $(CLEAR_VARS)
      +LOCAL_MODULE := foo-user
      +LOCAL_SRC_FILES := foo-user.c
      +LOCAL_SHARED_LIBRARIES := foo-prebuilt
      +include $(BUILD_SHARED_LIBRARY)
      +
      + +

      Here, {@code LOCAL_MODULE} is the name of the module referring to the prebuilt; {@code + LOCAL_SHARED_LIBRARIES} is the name of the prebuilt, itself.

      + +

      Exporting Headers for Prebuilt Libraries

      +

      The code in {@code foo-user.c} depends on specific declarations that normally +reside in a header file, such as {@code foo.h}, distributed with the prebuilt library. +For example, {@code foo-user.c} might have a line like the following:

      + +
      +#include <foo.h>
      +
      + +

      In such a case, you need to provide the header and its include path to the compiler when you +build the {@code foo-user} module. A simple way to accomplish this task is to use exports in the +prebuilt module definition. For example, as long as header {@code foo.h} is located under the +{@code include} directory associated with the prebuilt module, you can declare it as follows:

      + +
      +include $(CLEAR_VARS)
      +LOCAL_MODULE := foo-prebuilt
      +LOCAL_SRC_FILES := libfoo.so
      +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
      +include $(PREBUILT_SHARED_LIBRARY)
      +
      + +

      The {@code LOCAL_EXPORT_C_INCLUDES} definition here ensures that the build system +exports the path to the prebuilt library's {@code include} directory, prepending that path onto the +value of the {@code LOCAL_C_INCLUDES} for the module dependent on it.

      + +

      This operation allows the build system to find the necessary headers.

      + +

      Debugging Prebuilt Libraries

      +

      We recommend that you provide prebuilt shared libraries containing debug symbols. The NDK build +system always strips the symbols from the version of the library that it installs into +{@code $PROJECT/libs/<abi>/}, but you can use the debug version for debugging with +{@code ndk-gdb}.

      + +

      Selecting ABIs for Prebuilt Libraries

      +

      You must make sure to select the right version of your prebuilt shared library for your targeted +ABI. The +{@code TARGET_ARCH_ABI} variable in the +{@code Android.mk} file can point the build system at the appropriate version of the library. +

      + +

      For example, assume that your project contains two versions of library {@code libfoo.so}:

      + +
      +armeabi/libfoo.so
      +x86/libfoo.so
      +
      + +

      The following snippet shows how to use {@code TARGET_ARCH_ABI} so that the build system selects + the appropriate version of the library:

      + +
      +include $(CLEAR_VARS)
      +LOCAL_MODULE := foo-prebuilt
      +LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libfoo.so
      +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
      +include $(PREBUILT_SHARED_LIBRARY)
      +
      + +

      If you have specified {@code armeabi} as the value of {@code TARGET_ARCH_ABI}, the build system +uses the version of {@code libfoo.so} located in the {@code armeabi} directory. If you have +specified {@code x86} as the value {@code TARGET_ARCH_ABI}, the build system uses the version in the +{@code x86} directory.

      \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/sample.jd b/docs/html-ndk/ndk/guides/sample.jd new file mode 100644 index 000000000000..18ca0b82a0b0 --- /dev/null +++ b/docs/html-ndk/ndk/guides/sample.jd @@ -0,0 +1,11 @@ +page.title=Sample Walkthroughs +@jd:body + +
      +

      This section explains several of the sample apps provided with the NDK. It assumes that you already have a working knowledge of programming in Java and native code, and focuses on issues particular to working with the NDK.

      +

      It discusses the following samples:

      +
        +
      • hello-jni: A very basic app that illustrates core workings of the NDK.
      • +
      • native-activity: An app that shows the fundamentals of how to construct a purely native app. It places particular emphasis on the android_native_app_glue library.
      • +
      • Teapot: A simple OpenGL demo, showcasing the ndk_helper class.
      • +
      \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/sample_hellojni.jd b/docs/html-ndk/ndk/guides/sample_hellojni.jd new file mode 100644 index 000000000000..f05f042d4fe8 --- /dev/null +++ b/docs/html-ndk/ndk/guides/sample_hellojni.jd @@ -0,0 +1,122 @@ +page.title=Sample: HelloJNI +@jd:body + + + +

      This sample provides a bare-bones look at a minimal +application built with the NDK.

      + +

      Android.mk

      + +

      The following two lines provide the name of the native source file, along +with the name of the shared library to build. The full name of the built +library is {@code libhello-jni.so}, but you should omit the +{@code lib} prefix and the {@code .so} extension.

      + +
      +LOCAL_SRC_FILES := hello-jni.c
      +LOCAL_MODULE    := hello-jni
      +
      + +

      For more information on what this file does, and how to use it, see +Android.mk.

      + +

      Application.mk

      +

      This line tells the build system the architecture against which to build. If +you don't specify anything, the build system defaults to {@code armeabi}.

      + +
      +APP_ABI := all
      +
      + +

      For more information on what this file does, and how to use it, see +Application.mk.

      + +

      Java-side implementation

      +

      This file calls a function to retrieve a string from the native side, then +displays it on the screen.

      + +

      The source code contains three lines of particular interest to the NDK user. +They are presented here in the order in which they are used, rather than by +line order.

      + +

      This function call loads the {@code .so} file upon application startup.

      + +
      +System.loadLibrary("hello-jni");
      +
      + +

      The {@code native} keyword in this method declaration tells the +virtual machine that the function is in the shared library (i.e., implemented on the native side). +

      + +
      +public native String stringFromJNI();
      +
      + +

      The Android framework calls the function loaded and declared in the +previous steps, displaying the string on the screen.

      + +
      +tv.setText( stringFromJNI() );
      +
      + +

      C-side implementation

      +

      This file contains a function that returns a string that the Java side +requested (see Java-side implementation). The function declaration is as +follows:

      + +
      +jstring Java_com_example_hellojni_HelloJni_stringFromJNI(
      +JNIEnv* env,
      +                                              jobject x )
      +
      + +

      This declaration corresponds to the native function declared in the +Java source code. The return type, {@code jstring}, is a data type defined +in the +Java Native +Interface Specification. It is not actually a string, but a +pointer to a Java string.

      + +

      After {@code jstring} comes the function name, which is based on the +Java function name and and the path to the file containing it. Construct it +according to the following rules:

      + +
        +
      • Prepend {@code Java_} to it.
      • +
      • Describe the filepath relative to the top-level source directory.
      • +
      • Use underscores in place of forward slashes.
      • +
      • Omit the {@code .java} file extension.
      • +
      • After the last underscore, append the function name.
      • +
      + +

      Based on these rules, in this example, the function name +{@code Java_com_example_hellojni_HelloJni_stringFromJNI} refers to a Java +function called {@code stringFromJNI()}, which resides in +{@code hellojni/src/com/example/hellojni/HelloJni.java}.

      + +

      Finally, {@code JNIEnv*} is the pointer to the VM, and +{@code jobject} is a pointer to the implicit {@code this} object passed from +the Java side.

      + +

      The following line calls the VM API {@code (*env)}, and passes it a return value: +that is, the string that the function on the Java side had requested.

      + +
      +return (*env)->NewStringUTF(env, "Hello from JNI !
      +Compiled with ABI " ABI ".");
      +
      \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/sample_na.jd b/docs/html-ndk/ndk/guides/sample_na.jd new file mode 100644 index 000000000000..e6f36ba19f29 --- /dev/null +++ b/docs/html-ndk/ndk/guides/sample_na.jd @@ -0,0 +1,194 @@ +page.title=Sample: Native Activity +@jd:body + + + +

      This is a very simple example of a purely native +application, with no Java source code. In the absence of any Java source, the +Java compiler still creates an executable stub for the Dalvik Virtual Machine +("DVM") to run. The stub serves as a wrapper for the actual, native program, +which lives in the .so file.

      +

      The application itself simply renders a color onto the entire screen, and +then changes the color partly in response to detected movement.

      +

      AndroidManifest.xml

      +

      Make sure not to specify an Android API level lower than 9.

      +
      <uses-sdk android:minSdkVersion="9" />
      +

      Because this application has only native code, specify +android:hasCode as false.

      +
      <application android:label="@string/app_name"
      +android:hasCode="false">
      +

      Declare the NativeActivity class.

      +
          <activity android:name="android.app.NativeActivity"
      +

      For android:value, provide the name of the shared library +to be built, minus the initial lib and the .so +extension. This value must be the same as the one you described for +LOCAL_MODULE in Android.mk.

      +
              <meta-data android:name="android.app.lib_name"
      +                android:value="native-activity" />
      +

      Android.mk

      +

      This file tells the build system the following information:

      +

      The name of the shared library to generate.

      +
      LOCAL_MODULE    := native-activity
      +

      The name of the native source-code file.

      +
      LOCAL_SRC_FILES := main.c
      +

      A list of external libraries that will be used in building the binary, +each preceded by the -l (link-against) option.

      +
        +
      • log is a logging library.
      • +
      • android encompasses the standard Android support APIs for NDK. The Stable APIs +section discusses these in more detail.
      • +
      • EGL, standardized by Khronos, corresponds to the platform-specific portion +of the graphics API.
      • +
      • OpenGL ES, the version of OpenGL for Android, depends on EGL.
      • +
      +

      Note that, for each library:

      +
        +
      • The actual file name starts with lib, and ends with the +.so extension. For example, the actual file name for the +log library is liblog.so.
      • +
      • The library lives in the following directory, relative to the NDK root: +<ndk>/platforms/android-<sdk_version>/arch-<abi>/usr/lib/.
      • +
      +
      LOCAL_LDLIBS    := -llog -landroid -lEGL -lGLESv1_CM
      +

      A static library, android_native_app_glue, that the +application uses to manage NativeActivity lifecycle events, along +with touch input.

      +
      LOCAL_STATIC_LIBRARIES := android_native_app_glue
      +

      The final line tells the build system to build this static library. +ndk-build places the built library +(libandroid_native_app_glue.a) into the obj directory +generated during the build process. The next sample discusses the +android_native_app_glue in more detail.

      +
      $(call import-module,android/native_app_glue)
      +

      For more information about the Application.mk file, consult the Application.mk section of this guide.

      +

      Application.mk

      +

      This line defines the minimum level of Android API Level support.

      +
      APP_PLATFORM := android-10
      +

      Because there is no ABI definition, the build system defaults to +building only for armeabi.

      +

      main.c

      +

      This file essentially contains the entire progam.

      +

      The following includes correspond to the libraries, both shared and static, +enumerated in Android.mk.

      +
      #include <EGL/egl.h>
      +#include <GLES/gl.h>
      +
      +
      +#include <android/sensor.h>
      +#include <android/log.h>
      +#include <android_native_app_glue>
      +

      android_native_app_glue calls the following function, +passing it a predefined state structure. It also serves as a wrapper that +simplifies handling of NativeActivity callbacks.

      +
      void android_main(struct android_app* state) {
      +

      Next, the program handles events queued by the glue library. The event +handler follows the state structure.

      +
      struct engine engine;
      +
      +
      +// Make sure glue isn't stripped by suppressing link-time optimization that
      +removes unreferenced code.
      +app_dummy();
      +
      +
      +memset(&engine, 0, sizeof(engine));
      +state->userData = &engine;
      +state->onAppCmd = engine_handle_cmd;
      +state->onInputEvent = engine_handle_input;
      +engine.app = state;
      +

      The application prepares to start monitoring the sensors, using the +APIs in sensor.h.

      +
          engine.sensorManager = ASensorManager_getInstance();
      +    engine.accelerometerSensor =
      +                    ASensorManager_getDefaultSensor(engine.sensorManager,
      +                    ASENSOR_TYPE_ACCELEROMETER);
      +    engine.sensorEventQueue =
      +                    ASensorManager_createEventQueue(engine.sensorManager,
      +                    state->looper, LOOPER_ID_USER, NULL, NULL);
      +

      Now, a loop begins, in which the application polls the system for +messages (sensor events). It sends messages to +android_native_app_glue, which checks to see whether they match +any onAppCmd events defined in android_main. When a +match occurs, the message is sent to the handler for execution.

      +
      while (1) {
      +        // Read all pending events.
      +        int ident;
      +        int events;
      +        struct android_poll_source* source;
      +
      +
      +        // If not animating, we will block forever waiting for events.
      +        // If animating, we loop until all events are read, then continue
      +        // to draw the next frame of animation.
      +        while ((ident=ALooper_pollAll(engine.animating ? 0 : -1, NULL,
      +&events,
      +                (void**)&source)) >= 0) {
      +
      +
      +            // Process this event.
      +            if (source != NULL) {
      +                source->process(state, source);
      +            }
      +
      +
      +            // If a sensor has data, process it now.
      +            if (ident == LOOPER_ID_USER) {
      +                if (engine.accelerometerSensor != NULL) {
      +                    ASensorEvent event;
      +                    while (ASensorEventQueue_getEvents(engine.sensorEventQueue,
      +                            &event, 1) > 0) {
      +                        LOGI("accelerometer: x=%f y=%f z=%f",
      +                                event.acceleration.x, event.acceleration.y,
      +                                event.acceleration.z);
      +                    }
      +                }
      +            }
      +
      +
      +        // Check if we are exiting.
      +        if (state->destroyRequested != 0) {
      +            engine_term_display(&engine);
      +            return;
      +        }
      +    }
      +

      Once the queue is empty, and the program exits the polling loop, the +program calls OpenGL to draw the screen.

      +
          if (engine.animating) {
      +        // Done with events; draw next animation frame.
      +        engine.state.angle += .01f;
      +        if (engine.state.angle > 1) {
      +            engine.state.angle = 0;
      +        }
      +
      +
      +        // Drawing is throttled to the screen update rate, so there
      +        // is no need to do timing here.
      +        engine_draw_frame(&engine);
      +    }
      +} 
      +
    + + + + diff --git a/docs/html-ndk/ndk/guides/sample_teapot.jd b/docs/html-ndk/ndk/guides/sample_teapot.jd new file mode 100644 index 000000000000..6a321bb67980 --- /dev/null +++ b/docs/html-ndk/ndk/guides/sample_teapot.jd @@ -0,0 +1,236 @@ +page.title=Sample: Teapot +@jd:body + + + +

    This sample uses the OpenGL library to render the +iconic Utah +teapot. It particularly showcases the ndk_helper helper class, +a collection of native helper functions required for implementing games and +similar applications as native applications. This class provides:

    +
      +
    • an abstraction layer that handles certain NDK-specific behaviors (e.g., +GLContext).
    • +
    • some helper functions that are useful but not present in the NDK, itself +(e.g., tap detection).
    • +
    • wrappers for JNI calls for certain platform features (e.g., texture +loading).
    • +
    +

    AndroidManifest.xml

    +

    The activity declaration here is not NativeActivity itself, but +a subclass: TeapotNativeActivity.

    +
        <activity
    +android:name="com.sample.teapot.TeapotNativeActivity"
    +            android:label="@string/app_name"
    +            android:configChanges="orientation|keyboardHidden">
    +

    The name of the .so file is +libTeapotNativeActivity.so; the lib and +.so are stripped off from the value assigned to +android:value.

    +
            <meta-data android:name="android.app.lib_name"
    +                android:value="TeapotNativeActivity" />
    +

    Application.mk

    +

    Define the minimum level of Android API Level support.

    +
    APP_PLATFORM := android-9
    +

    Build for all supported architectures.

    +
    APP_ABI := all
    +

    Specify the C++ + runtime support library to use.

    +
    APP_STL := stlport_static
    +

    Java-side implementation: TeapotNativeActivity.java

    +

    This file handles activity lifecycle events, as well as displaying text on +the screen.

    +
    // Our popup window, you will call it from your C/C++
    +code later
    +
    +
    +void setImmersiveSticky() {
    +    View decorView = getWindow().getDecorView();
    +    decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN
    +            | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
    +            | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
    +            | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
    +            | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
    +            | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
    +}
    +

    Native-side implementation

    + +

    This section explores the C++ part of the Teapot app.

    + +

    TeapotRenderer.*

    + +

    This code does the actual rendering of the teapot. It uses +ndk_helper for matrix calculation, and to reposition the camera +based on where the user taps:

    + +
    +ndk_helper::Mat4 mat_projection_;
    +ndk_helper::Mat4 mat_view_;
    +ndk_helper::Mat4 mat_model_;
    +
    +
    +ndk_helper::TapCamera* camera_;
    +
    + +

    TeapotNativeActivity.cpp

    + +

    Include ndk_helper in your native source file, and define the +helper-class name:

    +
    #include "NDKHelper.h"
    +
    +
    +//-------------------------------------------------------------------------
    +//Preprocessor
    +//-------------------------------------------------------------------------
    +#define HELPER_CLASS_NAME "com/sample/helper/NDKHelper" //Class name of helper
    +function
    +

    The first use of the ndk_helper class is to handle the +EGL-related lifecycle, associating EGL context states (created/lost) with +Android lifecycle events. It enables the application to preserve context +information so that a destroyed activity can be restored. This is useful, for +example, when the target machine is rotated (causing an activity to be +destroyed, then immediately restored in the new orientation), or when the lock +screen appears.

    +
    ndk_helper::GLContext* gl_context_; // handles
    +EGL-related lifecycle.
    +

    Next, ndk_helper provides touch control.

    +
    ndk_helper::DoubletapDetector doubletap_detector_;
    +ndk_helper::PinchDetector pinch_detector_;
    +ndk_helper::DragDetector drag_detector_;
    +ndk_helper::PerfMonitor monitor_;
    +

    And camera control (openGL view frustum).

    +
    ndk_helper::TapCamera tap_camera_;
    +

    As in the native-activity sample, the application prepares to use the +sensors, using the native APIs provided in the NDK.

    +
    ASensorManager* sensor_manager_;
    +const ASensor* accelerometer_sensor_;
    +ASensorEventQueue* sensor_event_queue_;
    +

    The following functions are called in response to various Android +lifecycle events and EGL context state changes, using various functionalities +provided by ndk_helper via the Engine class.

    +
    void LoadResources();
    +void UnloadResources();
    +void DrawFrame();
    +void TermDisplay();
    +void TrimMemory();
    +bool IsReady();
    +

    This function calls back to the Java side to update the UI display.

    +
    void Engine::ShowUI()
    +{
    +    JNIEnv *jni;
    +    app_->activity->vm->AttachCurrentThread( &jni, NULL );
    +
    +
    +    //Default class retrieval
    +    jclass clazz = jni->GetObjectClass( app_->activity->clazz );
    +    jmethodID methodID = jni->GetMethodID( clazz, "showUI", "()V" );
    +    jni->CallVoidMethod( app_->activity->clazz, methodID );
    +
    +
    +    app_->activity->vm->DetachCurrentThread();
    +    return;
    +}
    +

    And this one calls back to the Java side to draw a text box +superimposed on the screen rendered on the native side, and showing frame +count.

    +
    void Engine::UpdateFPS( float fFPS )
    +{
    +    JNIEnv *jni;
    +    app_->activity->vm->AttachCurrentThread( &jni, NULL );
    +
    +
    +    //Default class retrieval
    +    jclass clazz = jni->GetObjectClass( app_->activity->clazz );
    +    jmethodID methodID = jni->GetMethodID( clazz, "updateFPS", "(F)V" );
    +    jni->CallVoidMethod( app_->activity->clazz, methodID, fFPS );
    +
    +
    +    app_->activity->vm->DetachCurrentThread();
    +    return;
    +}
    +

    The application gets the system clock and supplies it to the renderer +for time-based animation based on real-time clock. For example, calculating +momentum, where speed declines as a function of time.

    +
    renderer_.Update( monitor_.GetCurrentTime() );
    +

    Having earlier been set up to preserve context information, the +application now checks whether GLcontext is still valid. If not, +ndk-helper swaps the buffer, reinstantiating the GL context.

    +
    if( EGL_SUCCESS != gl_context_->Swap() )  // swaps
    +buffer.
    +

    The program passes touch-motion events to the gesture detector defined +in the ndk_helper class. The gesture detector tracks multitouch +gestures, such as pinch-and-drag, and sends a notification when triggered by +any of these events.

    +
    if( AInputEvent_getType( event ) ==
    +AINPUT_EVENT_TYPE_MOTION )
    +{
    +    ndk_helper::GESTURE_STATE doubleTapState =
    +eng->doubletap_detector_.Detect( event );
    +    ndk_helper::GESTURE_STATE dragState = eng->drag_detector_.Detect( event
    +);
    +    ndk_helper::GESTURE_STATE pinchState = eng->pinch_detector_.Detect(
    +event );
    +
    +
    +    //Double tap detector has a priority over other detectors
    +    if( doubleTapState == ndk_helper::GESTURE_STATE_ACTION )
    +    {
    +        //Detect double tap
    +        eng->tap_camera_.Reset( true );
    +    }
    +    else
    +    {
    +        //Handle pinch state
    +        if( pinchState & ndk_helper::GESTURE_STATE_START )
    +        {
    +            //Start new pinch
    +            ndk_helper::Vec2 v1;
    +            ndk_helper::Vec2 v2;
    +            eng->pinch_detector_.GetPointers( v1, v2 );
    +

    ndk_helper also provides access to a vector-math library +(vecmath.h), using it here to transform touch coordinates.

    +
    void Engine::TransformPosition( ndk_helper::Vec2& vec
    +) { vec = ndk_helper::Vec2( 2.0f, 2.0f ) * vec / ndk_helper::Vec2(
    +gl_context_->GetScreenWidth(), gl_context_->GetScreenHeight() )
    +
    +ndk_helper::Vec2( 1.f, 1.f ); }
    + +

    HandleCmd() handles commands posted from the +android_native_app_glue library. For more information about what the messages +mean, refer to the comments in the android_native_app_glue.h and +.c source files.

    + +
    +void Engine::HandleCmd( struct android_app* app, int32_t
    +cmd ) { Engine* eng = (Engine*) app->userData; switch( cmd ) { case
    +APP_CMD_SAVE_STATE: break; case APP_CMD_INIT_WINDOW: // The window is being
    +shown, get it ready. if( app->window != NULL )
    +
    + +

    ndk_helper posts APP_CMD_INIT_WINDOW when android_app_glue +receives an onNativeWindowCreated() callback from the system. +Applications can normally perform window initializations, such as EGL +initialization. They do this outside of the activity lifecycle, since the +activity is not yet ready.

    +
    ndk_helper::JNIHelper::Init( state->activity,
    +HELPER_CLASS_NAME );
    +
    +
    +state->userData = &g_engine;
    +state->onAppCmd = Engine::HandleCmd;
    +state->onInputEvent = Engine::HandleInput; 
    \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/setup.html b/docs/html-ndk/ndk/guides/setup.html new file mode 100644 index 000000000000..0b441323b35b --- /dev/null +++ b/docs/html-ndk/ndk/guides/setup.html @@ -0,0 +1,520 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Setup | Android Developers + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + +
    + + + + + + +
    + + + + + + +
    + + + + + + + +

    Setup

    + + + + + + +
    + + +
    +
    +
    +

    On this page

    + +
      +
    1. Installation
    2. +
    3. Configuring Eclipse
    4. +
    5. Verification
    6. +
    + + +
    +
    + + +
    +

    This document explains how to:

    +
      +
    • Get and install the NDK.
    • +
    • Configure your system and the Eclipse and the Android Development Tool +(ADT) for use with it.
    • +
    • Verify, using a simple sample, that everything is working as expected. +
    • +
    +

    This document assumes that you are already familiar with Java-based Android development. For more +information on that topic, see the +Android developer site.

    + +

    Installation

    +

    To install and configure the NDK, follow these steps:

    +
      +
    1. Get and install the Android SDK.if you +have not already done so.
    2. +
    3. Download and unzip the NDK, +making sure to download the correct version for your development platform. You may place the +unzipped directory anywhere on your local drive.
    4. +
    5. Update your PATH environment variable with the location of the directory that +contains the NDK.
    6. +
    + + +

    Configuring Eclipse

    +

    Eclipse must know where the NDK is in order to use it when building your app. Follow these steps +to set the location of the NDK.

    +
      +
    1. Launch Eclipse, which is installed as part of the Android SDK.
    2. +
    3. Open Window > Preferences.
    4. +
    5. In the pane on the left side of the Preferences window, select Android. +The Android section expands, revealing a number of subsections.
    6. +
    7. Select NDK. In the pane on the right side of the Preferences window, browse to +the directory that contains the NDK.
    8. +
    9. Click OK to return to the Package Explorer display.
    10. +
    + +

    Verification

    +

    Eclipse

    +

    To confirm that you have installed the NDK, set it up correctly, and properly configured Eclipse, +follow these steps:

    +
      +
    1. Import the hello-jni sample from <ndk>/samples/, as you would any other Android +project.
    2. +
    3. In the Project Explorer pane, right-click the project name (HelloJni). A +context menu appears.
    4. +
    5. From the context menu, select Android Tools > Add Native Support. The +Add Android Native Support window appears.
    6. +
    7. Accept the default library name (“hello-jni”), and click Finish.
    8. +
    9. Build and execute the application.
    10. +
    +

    Command line

    +

    Follow these steps to build from the command line:

    +
      +
    1. Change to the root directory of your project.
    2. +
    3. Execute ndk-build to build the native component of your app. do this by +typing ndk-build at the command prompt.
    4. +
    5. Build and install your project as you would a regular Android app written in Java. For more +information, see +Building and Running and +Building and Running +from the Command Line.
    6. +
    + +

    If you have successfully installed and configured the NDK, the screen on your target device looks +as shown in Figure 1.

    + +Output: Hello from JNI! + +

    +Figure 1. Target-device screen after successful launch. +

    + +
    + + + +
    + + +
    + +
    + + + + + + + + + + + + + + + + diff --git a/docs/html-ndk/ndk/guides/stable_apis.jd b/docs/html-ndk/ndk/guides/stable_apis.jd new file mode 100644 index 000000000000..a3fedcc86926 --- /dev/null +++ b/docs/html-ndk/ndk/guides/stable_apis.jd @@ -0,0 +1,501 @@ +page.title=Android NDK Native APIs +@jd:body + + + +

    The Android NDK provides a set of native headers and shared library files that has gradually +increased with successive releases of new Android API levels. This page explains these headers and +files, and maps them to specific + Android API levels. +

    + +

    Overview

    +

    There are two basic steps to enable your app to use the libraries that the NDK provides: +

    + +
      +
    1. Include in your code the headers associated with the libraries you wish to use.
    2. + +
    3. Tell the build system that your native module needs to link against the libraries at load time. +For example, to link against {@code /system/lib/libfoo.so}, add the following line to your +Android.mk file:
    4. + +
      +LOCAL_LDLIBS := -lfoo
      +
      + +

      To list multiple libraries, use a space as a delimiter. For more information about using the +{@code LOCAL_LDLIBS} variable, see Android.mk. +

      + +
    + +

    For all API levels, the build system automatically links the standard C libraries, the +standard C++ libraries, real-time extensions, and {@code pthread}; you do not need +to include them when defining your {@code LOCAL_LDLIBS} variable. For more information about +the C and C++ libraries, see Android API level 3.

    + +

    The NDK often provides new headers and libraries for new Android releases. These files reside +under {@code $NDK/platforms/android-<level>/<abi>/usr/include}. When the NDK does not +have a specific new group of headers and libraries for an Android API level, it means that +an app targeting that level should use the most recently released NDK assets. For example, +there was no new release of NDK headers or libraries for Android API levels 6 and 7. Therefore, +when developing an app targeting Android API level 7, you would use the headers and libraries +located under {@code android-5/}.

    + +

    Table 1 shows the correspondence between NDK-supported API levels and Android releases.

    + +

    + Table 1. NDK-supported API levels and corresponding Android releases.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    NDK-supported API levelAndroid release
    31.5
    41.6
    52.0
    82.2
    92.3 through 3.0.x
    123.1.x
    133.2
    144.0 through 4.0.2
    154.0.3 and 4.0.4
    164.1 and 4.1.1
    174.2 and 4.2.2
    184.3
    194.4
    214.4W and 5.0
    + +

    Each new release of NDK headers and libraries for a given Android API level is cumulative; you +are nearly always safe if you use the most recently released headers when building your app. For +example, you can use the NDK headers for Android API level 21 for an app targeting API level 16. By doing so, however, you increase your APK's footprint.

    + +

    +For more information about Android API levels, see +What is API Level?. +

    + +

    Major Native API Updates

    + +

    Android API level 3

    +

    The NDK provides the following APIs for developing native code that runs on Android 1.5 system +images and above.

    + +

    C library

    +

    The C library headers for Android 1.5 are available through their standard names, such as +{@code stdlib.h} and {@code stdio.h}. If a header is missing at build time, it's because the +header is not available on the 1.5 system image.

    + +

    C++ library

    +

    An extremely minimal C++ support API is available. For more +information on C++ library support, see +C++ Library Support.

    + +

    Android-specific log support

    + +

    {@code <android/log.h>} contains various definitions that an app can use to send log +messages to the kernel from native code. For more information about these definitions, see the +comments in {@code $NDK/platforms/android-3/arch-arm/usr/include/android/log.h}, where {@code $NDK} +is the root of your NDK installation.

    + +

    You can write your own wrapper macros to access this functionality. If you wish to perform +logging, your native module should link to {@code /system/lib/liblog.so}. Implement this +linking by including the following line in your +{@code Android.mk} file:

    + +
    +LOCAL_LDLIBS := -llog
    +
    + +

    ZLib compression library

    +

    You can use the Zlib compression library +by including {@code zlib.h} and {@code zconf.h}. You must also link your native +module against {@code /system/lib/libz.so} by including the following line in your +{@code Android.mk} file:

    + +
    +LOCAL_LDLIBS := -lz
    +
    + +

    Dynamic linker library

    +

    You can access the Android dynamic linker's {@code dlopen()}, {@code dlsym()}, and +{@code dlclose()} functions by including {@code dlfcn.h}. You must also link against +{@code /system/lib/libdl.so} by including the following line in your +{@code Android.mk} file:

    + +
    +LOCAL_LDLIBS := -ldl
    +
    + +

    Android API level 4

    +

    The NDK provides the following APIs for developing native code that runs on Android 1.6 system +images and above.

    + +

    OpenGL ES 1.x Library

    +

    The standard OpenGL ES headers {@code gl.h} and {@code glext.h} contain +the declarations necessary for performing OpenGL ES 1.x rendering calls from native code.

    + +

    To use these headers, link your native module to {@code /system/lib/libGLESv1_CM.so} by +including the following line in your +{@code Android.mk} file:

    +

    + +
    +LOCAL_LDLIBS := -lGLESv1_CM
    +
    +

    All Android-based devices support OpenGL ES 1.0, because Android provides an Open GL 1.0-capable +software renderer that can be used on devices without GPUs.

    +

    Only Android devices that have the necessary GPU fully support OpenGL ES 1.1. An app can +query the OpenGL ES version string and extension string to determine whether the current device +supports the features it needs. For information on how to perform this query, see the description of +{@code glGetString()} +in the OpenGL specification.

    + +

    Additionally, you must put a +{@code +<uses-feature>} tag in your manifest file to indicate the version of +OpenGL ES +that your application requires.

    + +

    The EGL APIs are only available starting from API level 9. You can, however, +use the VM to perform some of the operations that you would get from those APIS. These operations +include surface creation and flipping. For an example of how to use {@code GLSurfaceView}, see + +Introducing GLSurfaceView.

    + +

    The san-angeles sample application provides an example of how to perform these operations, +rendering each frame in native code. This sample is a small Android port of the excellent +San Angeles Observation demo +program.

    + +

    Android API level 5

    +

    The NDK provides the following APIs for developing native code that runs on Android 2.0 system +images and above.

    + +

    OpenGL ES 2.0 library:

    +

    The standard OpenGL ES 2.0 headers {@code <GLES2/gl2.h>} and {@code <GLES2/gl2ext.h>} +contain the declarations needed for performing OpenGL ES 2.0 rendering calls from native code. +These rendering calls provide the ability to use the GLSL language to define and use vertex and +fragment shaders.

    + +

    To use OpenGL ES 2.0, link your native module to {@code /system/lib/libGLESv2.so} by +including the following line in your +{@code Android.mk} file:

    + +
    +LOCAL_LDLIBS := -lGLESv2
    +
    + +

    Not all devices support OpenGL ES 2.0. An app can query the OpenGL +ES version string and extension string to determine whether the current device +supports the features it needs. For information on how to perform this query, see the description of + +{@code glGetString()} in the OpenGL specification.

    + +

    Additionally, you must put a +{@code +<uses-feature>} tag in your manifest file to indicate which version of OpenGL ES your +application requires. For more information about the OpenGL ES settings for +{@code <uses-feature>}, see +OpenGL ES.

    + +

    The hello-gl2 sample application provies a basic example of how to use OpenGL ES 2.0 with the +NDK.

    + +

    The EGL APIs are only available starting from API level 9. You can, however, +use the VM to perform some of the operations that you would get from those APIs. These operations +include surface creation and flipping. For an example of how to use {@code GLSurfaceView}, see + +Introducing GLSurfaceView.

    + +

    Note: The Android emulator does not support OpenGL ES 2.0 hardware +emulation. Running and testing code that uses this API requires a real device with hardware that can +support OpenGL ES 2.0.

    + +

    Android API level 8

    +

    The NDK provides the following APIs for developing native code that runs on Android 2.2 system +images and above.

    + +

    jnigraphics

    +

    The {@code jnigraphics} library exposes a C-based interface that allows native code to reliably access +the pixel buffers of Java bitmap objects. The workflow for using {@code jnigraphics} is as follows: +

    + +
      +
    1. Use {@code AndroidBitmap_getInfo()} to retrieve information from JNI, such as width and height, +about a given bitmap handle.
    2. + +
    3. Use {@code AndroidBitmap_lockPixels()} to lock the pixel buffer and retrieve a pointer to it. +Doing so ensures that the pixels do not move until the app calls +{@code AndroidBitmap_unlockPixels()}.
    4. + +
    5. In native code, modify the pixel buffer as appropriate for its pixel format, width, and other +characteristics.
    6. + +
    7. Call {@code AndroidBitmap_unlockPixels()} to unlock the buffer.
    8. +
    + +

    To use {@code jnigraphics}, include the {@code <bitmap.h>} header in your source code, and +link against {@code jnigraphics} by including the following line in your +{@code Android.mk} file:

    + +
    +LOCAL_LDLIBS += -ljnigraphics
    +
    + +

    Additional details about this feature are in the comments of the {@code bitmap.h} file. + +

    Android API level 9

    +

    The NDK provides the following APIs for developing native code that runs on Android 2.3 system +images and above.

    + +

    EGL

    +

    EGL provides a native platform interface for allocating and managing OpenGLES surfaces. +For more information about its features, see +EGL Native Platform Interface.

    + +

    EGL allows you to perform the following operations from native code:

    + +
      +
    • List supported EGL configurations.
    • +
    • Allocate and release OpenGLES surfaces.
    • +
    • Swap or flip surfaces.
    • +
    + +

    The following headers provide EGL functionality:

    +
      +
    • {@code EGL/egl.h}: the main EGL API definitions.
    • +
    • {@code EGL/eglext.h}: EGL extension-related definitions.
    • +
    + +

    To link against the system's EGL library, add the following line to your +{@code Android.mk} file:

    + +
    +LOCAL_LDLIBS += -lEGL
    +
    + +

    OpenSL ES

    +

    Android native audio handling is based on the Khronos Group OpenSL ES 1.0.1 API.

    + +

    The standard OpenSL ES headers {@code OpenSLES.h} and {@code OpenSLES_Platform.h} contain +the declarations necessary for performing audio input and output from the native side of Android. +The NDK distribution of the OpenSL ES also provides Android-specific extensions. For information +about these extensions, see the comments in {@code OpenSLES_Android.h} and +{@code OpenSLES_AndroidConfiguration.h}.

    + + +

    The system library {@code libOpenSLES.so} implements the public native audio functions. Link +against it by adding the following line to your +{@code Android.mk} file:

    + +
    +LOCAL_LDLIBS += -lOpenSLES
    +
    + +

    For more information about the OpenSL ES API, refer to +{@code $NDK/docs/Additional_library_docs/opensles/index.html}, where {@code $NDK} is your NDK +installation root directory.

    + +

    Android native application APIs

    +

    Starting from API level 9, you can write an entire Android app with native code, without using +any Java.

    + +

    Note: Writing your app in native code is not, in itself, enough +for your app to run in the VM. Moreover, your app must still access most features of the Android +platform via JNI.

    + +

    This release provides the following native headers:

    +
      +
    • {@code <native_activity.h>}
    • +
    • {@code <looper.h>}
    • +
    • {@code <input.h>}
    • +
    • {@code <keycodes.h>}
    • +
    • {@code <sensor.h>}
    • +
    • {@code <rect.h>}
    • +
    • {@code <window.h>}
    • +
    • {@code <native_window.h>}
    • +
    • {@code <native_window_jni.h>}
    • +
    • {@code <configuration.h>}
    • +
    • {@code <asset_manager.h>}
    • +
    • {@code <storage_manager.h>}
    • +
    • {@code <obb.h>}
    • +
    + +

    For more information about these headers, see the +NDK API Reference documentation, as well as +the comments in the headers, themselves. Also, for more information about the larger topic of +writing native apps, see +Native Activities and Applications. + +

    When you include one or more of these headers, you must also link against the +{@code libandroid.so} library. To link against {@code libandroid.so}, include the following line in +your {@code Android.mk} file:

    + +
    +LOCAL_LDLIBS += -landroid
    +
    + +

    Android API level 14

    +

    The NDK provides the following APIs for developing native code that runs on Android 4.0 system +images and above.

    + +

    OpenMAX AL

    +

    Android native multimedia handling is based on Khronos Group OpenMAX AL 1.0.1 API.

    +

    The standard OpenMAX AL headers {@code <OMXAL/OpenMAXAL.h>} and +{@code <OMXAL/OpenMAXAL_Platform.h>} contain the declarations necessary for performing +multimedia output from the native side of Android.

    + +

    The NDK distribution of OpenMAX AL also provides Android-specific extensions. For information +about these extensions, see the comments in {@code OpenMAXAL_Android.h}.

    + +

    The system library {@code libOpenMAXAL.so} implements the public native multimedia functions. +To link against this library, include the following line in your + {@code Android.mk} file:

    + +
        LOCAL_LDLIBS += -lOpenMAXAL
    +

    For more information about this topic, see {@code $NDK/docs/openmaxal/index.html}, +where {@code $NDK} is the root directory of your NDK installation.

    + +

    OpenSL ES

    +

    OpenSL ES support for this Android API level adds PCM support. For more information about +OpenSL ES support in the NDK, see OpenSL ES.

    + +

    Android API level 18

    +

    The NDK provides the following APIs for developing native code that runs on Android 4.3 system +images and above.

    + +

    OpenGL ES 3.0

    + +

    The standard OpenGL ES 3.0 headers {@code gl3.h} and {@code gl3ext.h} contain the declarations +needed for performing OpenGL ES 3.0 rendering calls from native code. These rendering calls provide +the ability to use the GLSL language to define and use vertex and fragment shaders. + +

    To use OpenGL ES 3.0, link your native module against {@code /system/lib/libGLESv3.so} by +including the following line in your +{@code Android.mk} file:

    + +
    +LOCAL_LDLIBS := -lGLESv3
    +
    + +

    Not all devices support OpenGL ES 3.0. An app can query the OpenGL +ES version string and extension string to determine whether the current device +supports the features it needs. For information on how to perform this query, see the description of + +{@code glGetString()} in the OpenGL specification.

    + +

    Additionally, you must put a +{@code +<uses-feature>} tag in your manifest file to indicate which version of OpenGL ES your +application requires. For more information about the OpenGL ES settings for +{@code <uses-feature>}, see +OpenGL ES.

    + +

    The gles3jni sample application provides a basic example of how to use OpenGL ES 3.0 with the +NDK.

    + +

    Note: The Android emulator does not support OpenGL ES 3.0 hardware +emulation. Running and testing code that uses this API requires a real device with hardware that can +support OpenGL ES 3.0.

    + + +

    Android API level 21

    +

    The NDK provides the following APIs for developing native code that runs on Android 4.3 system +images and above.

    + +

    OpenGL ES 3.1

    + +

    The standard OpenGL ES 3.1 headers {@code gl31.h} and {@code gl3ext.h} contain the declarations +needed for performing OpenGL ES 3.1 rendering calls from native code. These rendering calls provide +the ability to use the GLSL language to define and use vertex and fragment shaders. + +

    To use OpenGL ES 3.1, link your native module against {@code /system/lib/libGLESv3.so} by +including the following line in your +{@code Android.mk} file:

    + +
    +LOCAL_LDLIBS := -lGLESv3
    +
    + +

    Not all devices support OpenGL ES 3.1. An app can query the OpenGL +ES version string and extension string to determine whether the current device +supports the features it needs. For information on how to perform this query, see the description of + +{@code glGetString()} in the OpenGL specification.

    + +

    Additionally, you must put a +{@code +<uses-feature>} tag in your manifest file to indicate which version of OpenGL ES your +application requires. For more information about the OpenGL ES settings for +{@code <uses-feature>}, see +OpenGL ES.

    + +

    The gles3jni sample application provides a basic example of how to use OpenGL ES 3.1 with the +NDK.

    + +

    Note: The Android emulator does not support OpenGL ES 3.1 hardware +emulation. Running and testing code that uses this API requires a real device with hardware that can +support OpenGL ES 3.1.

    + diff --git a/docs/html-ndk/ndk/guides/standalone_toolchain.jd b/docs/html-ndk/ndk/guides/standalone_toolchain.jd new file mode 100644 index 000000000000..f3777f3fa17b --- /dev/null +++ b/docs/html-ndk/ndk/guides/standalone_toolchain.jd @@ -0,0 +1,575 @@ +page.title=Standalone Toolchain +@jd:body + + + +

    You can use the toolchains provided with the Android NDK independently, or as plug-ins +with an existing IDE, such as Eclipse. This flexibility +can be useful if you already have your own build system, and only need the ability to invoke the +cross-compiler in order to add support to Android for it.

    + +

    A typical use case is invoking the configure script of an open-source library that expects a +cross-compiler in the {@code CC} environment variable.

    + +

    Note: This page assumes significant understanding of +compiling, linking, and low-level architecture. In addition, the techniques it describes are +unnecessary for most use cases. In most cases, we recommend that you forego using a standalone +toolchain, and instead stick to the NDK build system.

    + +

    Selecting your Toolchain

    +

    Before anything else, you need to decide which processing architecture your standalone toolchain +is going to target. Each architecture corresponds to a different toolchain name, as Table 1 +shows.

    + +

    + Table 1. {@code APP_ABI} settings for different instruction sets.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ArchitectureToolchain name
    ARM-based{@code arm-linux-androideabi-<gcc-version>}
    x86-based{@code x86-<gcc-version>}
    MIPS-based{@code mipsel-linux-android-<gcc-version>}
    ARM64-based{@code aarch64-linux-android-<gcc-version>}
    X86-64-based{@code x86_64-<gcc-version>}
    MIPS64-based{@code mips64el-linux-android--<gcc-version>}
    + + + +

    Selecting your Sysroot

    +

    The next thing you need to do is define your sysroot (A sysroot is a directory containing +the system headers and libraries for your target). To define the sysroot, you must must know the +Android API level you want to target for native support; available native APIs vary by Android API +level.

    + +

    Native APIs for the respective +Android API levels reside under {@code $NDK/platforms/}; each API-level +directory, in turn, contains subdirectories for the various CPUs and architectures. The +following example shows how to define a sysroot for a build targeting Android 5.1 +(API level 22), for ARM architecture:

    + +
    +SYSROOT=$NDK/platforms/android-22/arch-arm
    +
    + +For more detail about the Android API levels and the respective native APIs they support, see +Stable APIs. + +

    Invoking the Compiler

    + +

    There are two ways to invoke the compiler. One method is simple, and leaves most of the lifting +to the build system. The other is more advanced, but provides more flexibility.

    + +

    Simple method

    +

    The simplest way to build is by invoking the appropriate compiler directly from the command +line, using the {@code --sysroot} option to indicate the location of the system files for the +platform you're targeting. For example:

    + +
    +export CC="$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/ \
    +linux-x86/bin/arm-linux-androideabi-gcc-4.8 --sysroot=$SYSROOT"
    +$CC -o foo.o -c foo.c
    +
    + +

    While this method is simple, it lacks in flexibility: It does not allow you to use any C++ STL +(STLport, libc++, or the GNU libstdc++) with it. It also does not support exceptions or RTTI.

    + +

    For Clang, you need to perform an additional two steps:

    +
      +
        +
      1. Add the appropriate {@code -target} for the target architecture, as Table 2 shows.
      2. + +

        + Table 2. Architectures and corresponding values for {@code -target}.

        + + + + + + + + + + + + + + + + + + + + + +
        ArchitectureValue
        armeabi-v7a{@code -target armv7-none-linux-androideabi}
        armeabi{@code -target armv5te-none-linux-androideabi}
        x86{@code -target i686-none-linux-android}
        MIPS{@code -target mipsel-none-linux-android}
        + +
      3. Add assembler and linker support by adding the {@code -gcc-toolchain} option, as in the +following example:
      4. +
        +-gcc-toolchain $NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64
        +
        +
      + +Ultimately, a command to compile using Clang might look like this: + +
      +export CC="export CC="$NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/ \
      +linux-x86/bin/arm-linux-androideabi-gcc-4.8 --sysroot=$SYSROOT" -target \
      +armv7-none-linux-androideabi \
      +-gcc-toolchain $NDK/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64"
      +$CC -o foo.o -c foo.c
      +
      +
    + +

    Advanced method

    +

    The NDK provides the {@code make-standalone-toolchain.sh} shell script to allow you to perform a +customized toolchain installation from the command line. This approach affords you more flexibility +than the procedure described in Simple method.

    + +

    The script is located in the {@code $NDK/build/tools/} directory, where {@code $NDK} is the +installation root for the NDK. An example of the use of this script appears below:

    + +
    +$NDK/build/tools/make-standalone-toolchain.sh \
    +--arch=arm --platform=android-22 --install-dir=/tmp/my-android-toolchain
    +
    + +

    This command creates a directory named {@code /tmp/my-android-toolchain/}, containing a copy of +the {@code android-22/arch-arm} sysroot, and of the toolchain binaries for a 32-bit ARM +architecture.

    + +

    Note that the toolchain binaries do not depend on or contain host-specific paths, in other words, +you can install them in any location, or even move them if you need to.

    + +

    By default, the build system uses the 32-bit, ARM-based GCC 4.8 toolchain. You can specify a +different value, however, by specifying {@code --arch=<toolchain>} as an option. +Table 3 shows the values to use for other toolchains: + +

    + Table 3. Toolchains and corresponding values, using {@code --arch}.

    + + + + + + + + + + + + + + + + + +
    ToolchainValue
    x86 GCC 4.8 compiler{@code --arch=x86}
    x86_64 GCC 4.8 compiler{@code --arch=x86_64}
    MIPS GCC 4.8 compiler{@code --arch=mips}
    + +

    Alternatively, you can use the {@code --toolchain=<toolchain>} option. Table 4 shows the +values you can specify for {@code <toolchain>}:

    + +

    + Table 4. Toolchains and corresponding values, using {@code --toolchain}.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ToolchainValue
    arm +
  • {@code --toolchain=arm-linux-android-4.6}
  • +
  • {@code --toolchain=arm-linux-android-4.7}
  • +
  • {@code --toolchain=arm-linux-android-4.8}
  • +
  • {@code --toolchain=arm-linux-android-4.9}
  • +
  • {@code --toolchain=arm-linux-android-clang3.4}
  • +
  • {@code --toolchain=arm-linux-android-clang3.5}
  • +
    x86 +
  • {@code --toolchain=x86-linux-android-4.6}
  • +
  • {@code --toolchain=x86-linux-android-4.7}
  • +
  • {@code --toolchain=x86-linux-android-4.8}
  • +
  • {@code --toolchain=x86-linux-android-4.9}
  • +
  • {@code --toolchain=x86-linux-android-clang3.4}
  • +
  • {@code --toolchain=x86-linux-android-clang3.5}
  • +
    mips +
  • {@code --toolchain=mips-linux-android-4.6}
  • +
  • {@code --toolchain=mips-linux-android-4.7}
  • +
  • {@code --toolchain=mips-linux-android-4.8}
  • +
  • {@code --toolchain=mips-linux-android-4.9}
  • +
  • {@code --toolchain=mips-linux-android-clang3.4}
  • +
  • {@code --toolchain=mips-linux-android-clang3.5}
  • +
    arm64 +
  • {@code --toolchain=aarch64-linux-android-4.9}
  • +
  • {@code --toolchain=aarch64-linux-android-clang3.4}
  • +
  • {@code --toolchain=aarch64-linux-android-clang3.5}
  • +
    x86_64 +
  • {@code --toolchain=x86_64-linux-android-4.9}
  • +
  • {@code --toolchain=x86_64-linux-android-clang3.4}
  • +
  • {@code --toolchain=x86_64-linux-android-clang3.5}
  • +
    mips64 +
  • {@code --toolchain=mips64el-linux-android-4.9}
  • +
  • {@code --toolchain=mips64el-linux-android-clang3.4}
  • +
  • {@code --toolchain=mips64el-linux-android-clang3.5}
  • +
    + +

    Note: Table 4 is not an exhaustive list. Other combinations may +also be valid, but are unverified.

    + +

    You can also copy Clang/LLVM 3.3, using one of two methods: You can append {@code -clang3.3} to +the {@code --toolchain} option, so that the {@code --toolchain} option looks like the following +example: + +

    +--toolchain=arm-linux-androideabi-clang3.3
    +
    + +

    Alternatively, you can add {@code -llvm-version=3.3} as a separate option on the command +line.

    + +

    By default, the build system builds for a 32-bit host toolchain. You can specify a 64-bit +host toolchain instead. Table 5 shows the value to use with {@code -system} for different +platforms.

    + +

    + Table 5. Host toolchains and corresponding values, using {@code -system}.

    + + + + + + + + + + + + + +
    Host toolchainValue
    64-bit Linux{@code -system=linux-x86_64}
    64-bit MacOSX{@code -system=darwin-x86_64}
    + +For more information on specifying a 32- or 64-bit instruction host toolchain, see +ndk-build. + +

    You may specify {@code stl=stlport} to copy {@code libstlport} instead of the default +{@code libgnustl}. If you do so, and you wish to link against the shared library, you must +explicitly use {@code -lstlport_shared}. This requirement is similar to having to use +{@code -lgnustl_shared} for GNU {@code libstdc++}.

    + +

    Similarly, you can specify {@code -stl=libc++} to copy the LLVM libc++ headers and libraries. +To link against the shared library, you must explicitly use -lc++_shared.

    + +

    You can make these settings directly, as in the following example:

    + +
    +export PATH=/tmp/my-android-toolchain/bin:$PATH
    +export CC=arm-linux-androideabi-gcc   # or export CC=clang
    +export CXX=arm-linux-androideabi-g++  # or export CXX=clang++
    +
    + +

    Note that if you omit the {@code -install-dir} option, the {@code make-standalone-toolchain.sh} +shell script creates a tarball in {@code tmp/ndk/<toolchain-name>.tar.bz2}. This tarball makes +it easy to archive, as well as to redistribute the binaries.

    + +

    This standalone toolchain provides an additional benefit, as well, in that it contains a working +copy of a C++ STL library, with working exceptions and RTTI support.

    + +

    For more options and details, use {@code --help}.

    + +

    Working with Clang

    +

    You can install Clang binaries in the standalone installation by using the +{@code --llvm-version=<version>} option. {@code <version>} is a LLVM/Clang version +number, such as {@code 3.4} or {@code 3.5}. For example: + +

    +build/tools/make-standalone-toolchain.sh \
    +--install-dir=/tmp/mydir \
    +--toolchain=arm-linux-androideabi-4.7 \
    +--llvm-version=3.5
    +
    + +

    Note that Clang binaries are copied along with the GCC ones, because they rely on the same +assembler, linker, headers, libraries, and C++ STL implementation.

    + +

    This operation also installs two scripts, named {@code clang} and {@code clang++}, under +{@code <install-dir>/bin/@}. These scripts invoke the real {@code clang} binary with default +target architecture flags. In other words, they should work without any modification, and you should +be able to use them in your own builds by just setting the {@code CC} and {@code CXX} environment +variables to point to them.

    + +

    Invoking Clang

    +

    In an ARM standalone installation built with {@code llvm-version=3.3}, invoking +Clang on a Unix system takes the form of a single line. For +instance:

    + +
    +dirname $0 /clang31 -target armv5te-none-linux-androideabi "$@"
    +
    + +

    clang++ invokes clang++31 in the same way.

    + +

    Clang targets with ARM

    + +

    When building for ARM, Clang changes the target based on the presence of the +{@code -march=armv7-a} and/or {@code -mthumb} options:

    + +

    + Table 5. Specifiable {@code -march} values and their resulting targets.

    + + + + + + + + + + + + + + + + + +
    {@code -march} valueResulting target
    {@code -march=armv7-a}{@code armv7-none-linux-androideabi}
    {@code -mthumb}{@code thumb-none-linux-androideabi}
    Both {@code -march=armv7-a} and {@code -mthumb}{@code thumbv7-none-linux-androideabi}
    + +

    You may also override with your own {@code -target} if you wish.

    + +

    The {@code -gcc-toolchain} option is unnecessary because, in a standalone package, +Clang locates {@code as} and {@code ld} in a predefined relative location.

    + +

    {@code clang} and {@code clang++} should be easy drop-in replacements for {@code gcc} and +{@code g++} in a makefile. When in doubt, add the following options to verify that they are +working properly:

    + +
      +
    • {@code -v} to dump commands associated with compiler driver issues
    • +
    • {@code -###} to dump command line options, including implicitly predefined ones.
    • +
    • {@code -x c /dev/null -dM -E} to dump predefined preprocessor definitions
    • +
    • {@code -save-temps} to compare {@code *.i} or {@code *.ii} preprocessed files.
    • +
    + +

    For more information about Clang, see +http://clang.llvm.org/, especially the GCC compatibility +section.

    + + +

    ABI Compatibility

    +

    The machine code that the ARM toolchain generates should be compatible with the official Android +armeabi ABI by default.

    + +

    We recommend use of the {@code -mthumb} compiler flag to force the generation of 16-bit Thumb-1 +instructions (the default being 32-bit ARM instructions).

    + +

    If you want to target the armeabi-v7a ABI, you must set the following flags:

    + +
    +CFLAGS= -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16
    +
    + +

    The first flag enables Thumb-2 instructions. The second flag enables hardware-FPU instructions +while ensuring that the system passes floating-point parameters in core registers, which is critical +for ABI compatibility.

    + +

    Note: In versions of the NDK prior to r9b, do not use these flags +separately. You must set all or none of them. Otherwise, unpredictable behavior and crashes may +result.

    + +

    To use NEON instructions, you must change the {@code -mfpu} compiler flag:

    + +
    +CFLAGS= -march=armv7-a -mfloat-abi=softfp -mfpu=neon
    +
    + +

    Note that this setting forces the use of {@code VFPv3-D32}, per the ARM specification.

    + +

    Also, make sure to provide the following two flags to the linker:

    + +
    +LDFLAGS= -march=armv7-a -Wl,--fix-cortex-a8
    +
    + +

    The first flag instructs the linker to pick {@code libgcc.a}, {@code libgcov.a}, and +{@code crt*.o}, which are tailored for armv7-a. The 2nd flag is required as a workaround for a CPU +bug in some Cortex-A8 implementations.

    + +

    Since NDK version r9b, all Android native APIs taking or returning double or float values have +{@code attribute((pcs("aapcs")))} for ARM. This makes it possible to compile user code in +{@code -mhard-float} (which implies {@code -mfloat-abi=hard}), and still link with the Android +native APIs that comply with the softfp ABI. For more information on this, see the comments in +{@code $NDK/tests/device/hard-float/jni/Android.mk}.

    + +

    If you want to use NEON intrinsics on x86, the build system can translate them to the native x86 +SSE intrinsics using a special C/C++ language header with the same name, {@code arm_neon.h}, as the +standard ARM NEON intrinsics header.

    + +

    By default, the x86 ABI supports SIMD up to SSSE3, and the header covers ~93% of (1869 of 2009) +NEON functions.

    + +

    You don't have to use any specific compiler flag when targeting the MIPS ABI.

    + +

    To learn more about ABI support, see x86.

    + +

    Warnings and Limitations

    +

    Windows support

    +

    The Windows binaries do not depend on Cygwin. This lack of dependency makes them faster. The +cost, however, is that they do not understand Cygwin path specifications like +{@code cygdrive/c/foo/bar}, as opposed to {@code C:/foo/bar}.

    + +

    The NDK build system ensures that all paths passed to the compiler from Cygwin are automatically +translated, and manages other complexities, as well. If you have a custom build system, +you may need to resolve these complexities yourself.

    + +

    For information on contributing to support for Cygwin/MSys, visit the android-ndk +forum.

    + +

    wchar_t support

    + +

    The Android platform did not really support {@code wchar_t} until Android 2.3 (API level 9). This +fact has several ramifications:

    +
      +
    • If you target platform Android 2.3 or higher, the size of {@code wchar_t} is 4 bytes, and most +{@code wide-char} functions are available in the C library (with the exception of multi-byte +encoding/decoding functions and {@code wsprintf}/{@code wsscanf}).
    • + +
    • If you target any lower API level, the size of {@code wchar_t} is 1 byte, and none of the +wide-char functions works.
    • +
    + +

    We recommend that you get rid of any dependencies on the {@code wchar_t} type, and switch to +better representations. The support provided in Android is only there to help you migrate existing +code.

    + +

    Exceptions, RTTI, and STL

    +

    The toolchain binaries support C++ exceptions and RTTI by default. To disable C++ exceptions +and RTTI when building sources (to generate lighter-weight machine code, for example), use +{@code -fno-exceptions} and {@code -fno-rtti}.

    + +

    To use these features in conjunction with GNU libstdc++, you must explicitly link with libsupc++. +To do so, use {@code -lsupc++} when linking binaries. For example:

    + +
    +arm-linux-androideabi-g++ .... -lsupc++
    +
    + +

    You do not need to do this when using the STLport or libc++ library.

    + +

    C++ STL support

    +

    The standalone toolchain includes a copy of a C++ Standard Template Library implementation. This +implementation is either for GNU libstdc++, STLport, or libc++, depending on what you specify for the +{@code -stl=<name>} option described previously. To use this implementation of STL, you need +to link your project with the proper library:

    + +
      +
    • +Use {@code -lstdc++} to link against the static library version of any implementation. Doing so +ensures that all required C++ STL code is included into your final binary. This method is ideal if +you are only generating a single shared library or executable.

      + +

      This is the method that we recommend.

      +
    • + +
    • Alternatively, use {@code -lgnustl_shared} to link against the shared library version of GNU +{@code libstdc++}. If you use this option, you must also make sure to copy +{@code libgnustl_shared.so} to your device in order for your code to load properly. Table 6 shows +where this file is for each toolchain type. +
    • + +

      Note: GNU libstdc++ is licensed under the GPLv3 license, with a +linking exception. If you cannot comply with its requirements, you cannot redistribute the +shared library in your project.

      + + +
    • Use {@code -lstlport_shared} to link against the shared library version of STLport. When you do +so, you need to make sure that you also copy {@code libstlport_shared.so} to your device in order +for your code to load properly. Table 6 shows where this file is for each toolchain:
    • + +

      + Table 6. Specifiable {@code -march} values and their resulting targets.

      + + + + + + + + + + + + + + + + + +
      ToolchainLocation
      ARM{@code $TOOLCHAIN/arm-linux-androideabi/lib/}
      x86{@code $TOOLCHAIN/i686-linux-android/lib/}
      MIPS{@code $TOOLCHAIN/mipsel-linux-android/lib/}
      + +

      Note: If your project contains multiple shared libraries or +executables, you must link against a shared-library STL implementation. Otherwise, the build +system does not define certain global uniquely, which can result in unpredictable runtime behavior. +This behavior may include crashes and failure to properly catch exceptions.

      + +

      The reason the shared version of the libraries is not simply called {@code libstdc++.so} is that +this name would conflict at runtime with the system's own minimal C++ runtime. For this reason, +the build system enforces a new name for the GNU ELF library. The static library does not have +this problem.

      diff --git a/docs/html-ndk/ndk/guides/x86-64.jd b/docs/html-ndk/ndk/guides/x86-64.jd new file mode 100644 index 000000000000..22f3aaa15a78 --- /dev/null +++ b/docs/html-ndk/ndk/guides/x86-64.jd @@ -0,0 +1,52 @@ +page.title=Support for 64-bit x86 +@jd:body + +
      +
      +

      On this page

      + +
        +
      1. Overview
      2. +
      3. Standalone Toolchain
      4. +
      5. Compatibilty
      6. +
      + + +
      +
      + +

      The Android NDK supports the {@code x86_64} ABI. This ABI allows native code to run on +Android-based devices using CPUs that support the 64-bit x86 instruction set.

      + +

      Overview

      +

      To generate 64-bit machine code for x86, add {@code x86_64} to the {@code APP_ABI} definition in +your {@code Application.mk} file. For example: + +

      +APP_ABI := x86_64
      +
      + +For more information on how to specify values for {@code APP_ABI}, see +Application.mk.

      + +

      The build system places libraries generated for the {@code x86_64} ABI into +{@code $PROJECT/libs/x86_64/} on your host machine, where {@code $PROJECT} is the root directory +of your project. It also embeds them in your APK, under {@code /lib/x86_64/}.

      + +

      The Android package manager extracts these libraries when installing your APK on a compatible +64-bit, x86-powered device, placing them under your app's private data directory.

      + +

      In the Google Play store, the server filters applications so that a consumer sees only the native +libraries that run on the CPU powering his or her device.

      + +

      Standalone Toolchain

      + +

      It is possible to use the 64-bit x86 toolchain in standalone mode with the NDK. For more +information about doing so, see +Standalone Toolchain, under the "Advanced method" section. + +

      Compatibility

      +

      The NDK provides native versions of Android APIs for 64-bit x86 machine code starting from +Android 5.0 (Android API level 21). If your project files target an older API level, but include +{@code x86_64} as a targeted platform, the NDK build script automatically selects the right set of +native platform headers and libraries for you.

      \ No newline at end of file diff --git a/docs/html-ndk/ndk/guides/x86.jd b/docs/html-ndk/ndk/guides/x86.jd new file mode 100644 index 000000000000..e112a56fd166 --- /dev/null +++ b/docs/html-ndk/ndk/guides/x86.jd @@ -0,0 +1,215 @@ +page.title=x86 Support +@jd:body + + + +

      The NDK includes support for the {@code x86} ABI, which allows native code to run on +Android-based devices running on CPUs supporting the IA-32 instruction set.

      + +

      Overview

      +

      To generate x86 machine code, add {@code x86} to the {@code APP_ABI} definition in your +{@code Application.mk} file. For example:

      + +
      +APP_ABI := armeabi armeabi-v7a x86
      +
      For more information about defining the {@code APP_ABI} variable, see +{@code Application.mk}.

      + +

      The build system places generated libraries into {@code $PROJECT/libs/x86/}, where +{@code $PROJECT} represents your project's root directory, and embeds them in your APK under +{@code /lib/mips/}.

      + +

      The Android package extracts these libraries when installing your APK on a compatible x86-based +device, placing them under your app's private data directory.

      + +

      In the Google Play store, the server filters applications so that a consumer sees only the native +libraries that run on the CPU powering his or her device.

      + +

      x86 Support for ARM NEON Intrinsics

      +

      Support for ARM NEON intrinsics is provided in the form of C/C++ language headers with the same +name as the standard ARM NEON intrinsics header, {@code arm_neon.h}. These headers are available for +all NDK x86 toolchains. They translate NEON intrinsics to native x86 SSE ones.

      + +

      Characteristics of this solution include the following:

      +
        +
      • Default use of SSE through SSSE3 for porting ARM NEON to Intel SSE, covering ~93% +(1869 of total 2009) of all NEON functions.
      • +
      • Redefinition of ARM NEON 128 bit vectors into the equivalent x86 SIMD data.
      • +
      • Redefinition of some functions from ARM NEON to Intel SSE if a 1:1 correspondence exists.
      • +
      • Implementation of some ARM NEON functions using Intel SIMD if it will yield a performant result. +
      • +
      • Implementation of some of the remaining NEON functions using the serial solution, and issuing +the corresponding "low performance" compiler warning.
      • +
      + + +

      Performance

      +

      In most cases, you should be able to attain performance similar to what you would get from ARM +NEON code. Recommendations for best results include:

      + +
        +
      • Use 16-byte data alignment for faster load and store.
      • +
      • Avoid using constants with NEON functions. Using constants results in a performance penalty due +to having to load constants. If you must use constants, try to initialize them outside of hotspot +loops. If possible, replace them with logical and compare operations.
      • +
      • Try to avoid functions marked as "serially implemented" because they need to store data from +registers to memory. Instead, process them serially and reload them. You may be able to change the +data type or algorithm used to vectorize the whole port instead of leaving it as a serial one.
      • +
      + +

      For more information on this topic, see + +From ARM NEON to Intel SSE– the automatic porting solution, tips and tricks.

      + +

      Known differences from ARM version

      +

      In the great majority of cases, x86 implementations produce the same results as ARM +implementations for NEON. x86 implementations pass +NEON tests nearly 100% of the +time. Still, there are several corner cases in which an x86 implementation produces results +different from its ARM counterpart. Known incompatibilities are as follows:

      + + + +

      Sample code

      +

      In your project make sure to include the {@code arm_neon.h} header, and define include +{@code x86} in your definition of {@code APP_ABI}. The build system then ports your code to x86.

      + +

      For an example of how porting ARM NEON to x86 SSE works, see the hello-neon sample.

      + +

      Standalone Toolchain

      +

      You can incorporate the {@code x86} ABI into your own toolchain. For more information, see +Standalone Toolchain.

      + +

      Compatibility

      +

      x86 support requires, at minimum, Android 2.3 (Android API level 9). If your project files +target an older API level, but include x86 as a targeted platform, the NDK build script +automatically selects the right set of native platform headers/libraries for you.

      \ No newline at end of file -- 2.11.0

    i|3qk2KiSh9bjhvvooX2(4> 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%0D9^cj+E%&Fcyi#IM~|9^y+J>kFv(mBk1 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 use the NDK, you must download it and install it separately from the SDK. To do so, follow these directions. \ No newline at end of file +