From f7a480de8c0402850a25db34ad25d86e6d82e699 Mon Sep 17 00:00:00 2001
From: Dirk Dougherty The Android 1.5 NDK provides tools that allow Android application developers
+to embed and deploy native code within their Android applications. It
+provides: This release of the NDK release supports the ARMv5TE machine instruction set
+and provides stable headers for libc (the C library), libm (the Math library)
+and the JNI interface. Using the NDK may not be relevant for all Android applications. As a
+developer, you will need to balance its benefits (faster execution) and its
+drawbacks (no portability, JNI overhead, no access to system libraries, and
+difficult debugging). Typical good candidates for the NDK are CPU-intensive
+operations that don't allocate too much memory, such as signal processing,
+physics simulation, custom bytecode/instruction interpreters, and so on. Please note that the NDK does not enable you to develop native-only
+applications. Android's primary runtime remains the Dalvik virtual machine. The NDK includes a set of cross-toolchains (compilers, linkers, etc..) that
+can generate native ARM binaries on Linux, OS X, and Windows (with Cygwin)
+platforms. It provides a set of system headers for stable native APIs that are
+guaranteed to be supported in all later releases of the platform: The NDK also provides a build system that lets you work efficiently with your
+sources, without having to handle the toolchain/platform/CPU/ABI details. You
+create very short build files to describe which sources to compile and which
+Android application will use them — the build system compiles the sources
+and places the shared libraries directly in your application project. Important: With the exception of the
+libraries listed above, native system libraries in the Android 1.5 platform are
+not stable and may change in future platform versions.
+Your applications should only make use of the stable native system
+libraries provided in this NDK. The NDK package includes a set of documentation that describes the
+capabilities of the NDK and how to use it to create shared libraries for your
+Android applications. In this release, the documentation is provided only in the
+downloadable NDK package. You can find the documentation in the
+ The NDK includes two sample Android applications that illustrate how to use
+native code in your Android applications: For more information, see Using the Sample
+Applications. The sections below describe the system and software requirements for using
+the Android NDK, as well as platform compatibility considerations that affect
+appplications using libraries produced with the NDK. Installing the NDK on your development computer is straightforward and
+involves extracting the NDK from its download package and running a host-setup
+script. Before you get started make sure that you have downloaded the latest Android SDK and upgraded your applications
+and environment as needed. The NDK will not work with older versions of the
+Android SDK. Also, take a moment to review the System
+and Software Requirements for the NDK, if you haven't already. To install the NDK, follow these steps: If the script completes successfully, it prints a "Host setup complete."
+message. If it fails, it prints instructions that you can follow to correct any
+problems. Once you have run the host-setup script, you are ready start working with the
+NDK. Once you've installed the NDK successfully, take a few minutes to read the
+documentation included in the NDK. You can find the documentation in the
+ Here's the general outline of how you work with the NDK tools: The build tools copy the stripped, shared libraries needed by your
+application to the proper location in the application's project directory.
What is the NDK?
+
+
+
+
+Contents of the NDK
+
+Development tools
+
+
+
+
+Documentation
+
+<ndk>/docs/ directory. Included are these files:
+
+
+Sample applications
+
+
+
+
+hello-jni — A simple application that loads a string from
+a native method implemented in a shared library and then displays it in the
+application UI. two-libs — A simple application that loads a shared
+library dynamically and calls a native method provided by the library. In this
+case, the method is implemented in a static library that is imported by the
+shared library. System and Software Requirements
+
+The Android SDK
+
+
+
+Supported operating systems
+
+
+
+Required development tools
+
+
+
+Android platform compatibility
+
+
+
+<uses-library> element
+in its manifest file, with the attribute
+android:minSdkVersion="3".Installing the NDK
+
+
+
+
+android-ndk-<version>. You can rename the NDK directory if
+necessary and you can move it to any location on your computer. This
+documentation refers to the NDK directory as <ndk>. <ndk>/build/host-setup.shGetting Started with the NDK
+
+<ndk>/docs/ directory. In particular, please read the
+OVERVIEW.TXT document completely, so that you understand the intent of the NDK
+and how to use it.
+
<ndk>/sources/<my_src>/.... If you want, you can place
+a symlink to your sources, rather than the sources themselves. The sources you
+reference here are not strictly associated with a specific shared library or
+Android application. Instead, they are accessible to any build configuration and
+can be used to produce any number of shared libraries that can be used by any
+Android application.<ndk>/sources/<my_src>/Android.mk to
+describe your native sources to the NDK build system<ndk>/apps/<my_app>/Application.mk to
+describe your Android application and native sources it needs to the NDK build
+system. This file sets up the link between an Android SDK application project
+and any number of shared libraries defined in the
+<ndk>/sources/ folder and it specifies the path to the
+application project that will receive the shared library built from the
+sources.$ make APP=<my_app>
For complete information on all of the steps listed above, please see the +documentation included with the NDK package.
+ + +The NDK includes two sample applications that illustrate how to use native +code in your Android applications:
+ +hello-jni — A simple application that loads a string from
+a native method implemented in a shared library and then displays it in the
+application UI. two-libs — A simple application that loads a shared
+library dynamically and calls a native method provided by the library. In this
+case, the method is implemented in a static library imported by the shared
+library. For each sample, the NDK includes an Android application project, as well as
+the corresponding C source code and the necessary Android.mk and Application.mk
+files. The application projects are provided in
+<ndk>/apps/<app_name>/project/ and the C source for
+each application is provided in
+<ndk>/sources/samples/<library>/.
Once you have installed the NDK, you can build the shared libraries from the +NDK by using these commands from the root of the NDK directory:
+$ make APP=hello-jni — compiles
+<ndk>/sources/samples/hello-jni/hello-jni.c and outputs a
+shared library to
+<ndk>/apps/hello-jni/project/libs/armeabi/libhello-jni.so.
+$ make APP=two-libs — compiles
+<ndk>/sources/samples/two-libs/second.c and
+first.c and outputs a shared library to
+<ndk>/apps/two-libs/project/libs/armeabi/libtwolib-second.so.
+Next, build the sample Android applications that use the shared +libraries:
+ +<ndk>/apps/<app_name>/project/. Then, set up an AVD, if
+necessary, and build/run the application in the emulator. For more information
+about creating a new Android project in Eclipse, see Developing in
+Eclipse.android tool to create
+the build file for each of the sample projects at
+<ndk>/apps/<app_name>/project/. Then set up an AVD, if
+necessary, build your project in the usual way, and run it in the emulator.
+For more information, see Developing in Other
+IDEs.If you have questions about the NDK or would like to read or contribute to +discussions about it, please visit the android-ndk group and +mailing list.
+ + diff --git a/docs/html/sdk/sdk_toc.cs b/docs/html/sdk/sdk_toc.cs index 1e5122f..4b55b56 100644 --- a/docs/html/sdk/sdk_toc.cs +++ b/docs/html/sdk/sdk_toc.cs @@ -27,6 +27,12 @@