Add docs/STABLE-APIS.TXT which contains the list of exposed frozen APIs in the NDK.
Also update README.TXT and docs/ANDROID-MK.TXT accordingly, to document the use of LOCAL_LDLIBS.
This commit is contained in:
@@ -9,6 +9,10 @@ A high-level overview of the NDK's features and limitations can be found
|
|||||||
in docs/OVERVIEW.TXT. Please read this document as it contains crucial
|
in docs/OVERVIEW.TXT. Please read this document as it contains crucial
|
||||||
information for correct usage.
|
information for correct usage.
|
||||||
|
|
||||||
|
See docs/STABLE-APIS.TXT for the list of frozen binary APIs exposed by
|
||||||
|
this NDK, as well as the corresponding system image versions that support
|
||||||
|
them.
|
||||||
|
|
||||||
Before using the NDK, you will need to follow the steps described by
|
Before using the NDK, you will need to follow the steps described by
|
||||||
docs/INSTALL.TXT which lists the NDK pre-requisites and the steps needed
|
docs/INSTALL.TXT which lists the NDK pre-requisites and the steps needed
|
||||||
to set it up properly on your machine.
|
to set it up properly on your machine.
|
||||||
|
|||||||
@@ -353,6 +353,17 @@ LOCAL_SHARED_LIBRARIES
|
|||||||
i.e. you should still add them to your application's required modules
|
i.e. you should still add them to your application's required modules
|
||||||
in your Application.mk
|
in your Application.mk
|
||||||
|
|
||||||
|
LOCAL_LDLIBS
|
||||||
|
The list of additional linker flags to be used when building your
|
||||||
|
module. This is useful to pass the name of specific system libraries
|
||||||
|
with the "-l" prefix. For example, the following will tell the linker
|
||||||
|
to generate a module that links to /system/lib/libz.so at load time:
|
||||||
|
|
||||||
|
LOCAL_LDLIBS := -lz
|
||||||
|
|
||||||
|
See docs/STABLE-APIS.TXT for the list of exposed system libraries you
|
||||||
|
can linked against with this NDK release.
|
||||||
|
|
||||||
LOCAL_ALLOW_UNDEFINED_SYMBOLS
|
LOCAL_ALLOW_UNDEFINED_SYMBOLS
|
||||||
By default, any undefined reference encountered when trying to build
|
By default, any undefined reference encountered when trying to build
|
||||||
a shared library will result in an "undefined symbol" error. This is a
|
a shared library will result in an "undefined symbol" error. This is a
|
||||||
|
|||||||
113
ndk/docs/STABLE-APIS.TXT
Normal file
113
ndk/docs/STABLE-APIS.TXT
Normal file
@@ -0,0 +1,113 @@
|
|||||||
|
Android NDK Stable APIs:
|
||||||
|
========================
|
||||||
|
|
||||||
|
This is the list of stable APIs/ABIs exposed by the Android NDK.
|
||||||
|
|
||||||
|
I. Purpose:
|
||||||
|
-----------
|
||||||
|
|
||||||
|
Each API corresponds to a set of headers files, and a shared library file
|
||||||
|
that contains the corresponding implementation, and which must be linked
|
||||||
|
against by your native code.
|
||||||
|
|
||||||
|
For example, to use system library "Foo", you would include a header
|
||||||
|
like <foo.h> in your code, then tell the build system that your native
|
||||||
|
module needs to link to /system/lib/libfoo.so at load-time by adding
|
||||||
|
the following line to your Android.mk file:
|
||||||
|
|
||||||
|
LOCAL_LDLIBS := -lfoo
|
||||||
|
|
||||||
|
Note that the build system automatically links the C library, the Math
|
||||||
|
library and the C++ support library to your native code, there is no
|
||||||
|
need to list them in a LOCAL_LDLIBS line.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
II. Android 1.5 Stable Native APIs:
|
||||||
|
-----------------------------------
|
||||||
|
|
||||||
|
All the APIs listed below are available for developing native code that
|
||||||
|
runs on Android 1.5 system images and above.
|
||||||
|
|
||||||
|
The C Library:
|
||||||
|
--------------
|
||||||
|
|
||||||
|
The C library headers, as they are defined on Android 1.5 are available
|
||||||
|
through their standard names (<stdlib.h>, <stdio.h>, etc...). If one header
|
||||||
|
is not there at build time, it's because its implementation is not available
|
||||||
|
on a 1.5 system image.
|
||||||
|
|
||||||
|
The build system automatically links your native modules to the C library,
|
||||||
|
you don't need to add it to LOCAL_LDLIBS.
|
||||||
|
|
||||||
|
Note that the Android C library includes support for pthread (<pthread.h>),
|
||||||
|
so "LOCAL_LIBS := -lpthread" is not needed. The same is true for real-time
|
||||||
|
extensions (-lrt on typical Linux distributions).
|
||||||
|
|
||||||
|
|
||||||
|
** VERY IMPORTANT NOTE: ******************************************************
|
||||||
|
*
|
||||||
|
* The kernel-specific headers in <linux/...> and <asm/...> are not considered
|
||||||
|
* stable at this point. Avoid including them directly because some of them
|
||||||
|
* are likely to change in future releases of the platform. This is especially
|
||||||
|
* true for anything related to specific hardware definitions.
|
||||||
|
*
|
||||||
|
******************************************************************************
|
||||||
|
|
||||||
|
|
||||||
|
The Math Library:
|
||||||
|
-----------------
|
||||||
|
|
||||||
|
<math.h> is available, and the math library is automatically linked to your
|
||||||
|
native modules at build time, so there is no need to list "-lm" through
|
||||||
|
LOCAL_LDLIBS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
C++ Library:
|
||||||
|
------------
|
||||||
|
|
||||||
|
An *extremely* minimal C++ support API is available. For Android 1.5, this is
|
||||||
|
currently limited to the following headers:
|
||||||
|
|
||||||
|
<cstddef>
|
||||||
|
<new>
|
||||||
|
<utility>
|
||||||
|
<stl_pair.h>
|
||||||
|
|
||||||
|
They may not contain all definitions required by the standard. Notably, support
|
||||||
|
for C++ exceptions and RTTI is not available with Android 1.5 system images.
|
||||||
|
|
||||||
|
The C++ support library (-lstdc++) is automatically linked to your native
|
||||||
|
modules too, so there is no need to list it through LOCAL_LDLIBS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Android-specific Log Support:
|
||||||
|
-----------------------------
|
||||||
|
|
||||||
|
<android/log.h> contains various definitions that can be used to send log messages
|
||||||
|
to the kernel from your native code. Please have a look at its content in
|
||||||
|
(build/platforms/android-1.5/common/include/android/log.h), which contain many
|
||||||
|
informative comments on how to use it.
|
||||||
|
|
||||||
|
You should be able to write helpful wrapper macros for your own usage to
|
||||||
|
access this facility.
|
||||||
|
|
||||||
|
If you use it, your native module should link to /system/lib/liblog.so with:
|
||||||
|
|
||||||
|
LOCAL_LDLIBS := -llog
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ZLib Compression Library:
|
||||||
|
-------------------------
|
||||||
|
|
||||||
|
<zlib.h> and <zconf.h> are available and can be used to use the ZLib compression
|
||||||
|
library available on Android 1.5 system images. Documentation for it is available
|
||||||
|
on the ZLib page: http://www.zlib.net/manual.html
|
||||||
|
|
||||||
|
If you use it, your native module should link to /system/lib/libz.so with:
|
||||||
|
|
||||||
|
LOCAL_LDLIBS := -lz
|
||||||
|
|
||||||
Reference in New Issue
Block a user