blob: b81ef90485865178443b44aba6ec8063b27ffc4c [file] [log] [blame]
Android NDK Roadmap
This is the list of improvements planned for the NDK, in no
specific order of preference or priority:
Fix bugs and make things easier in general.
Business as usual...
Support x86 target ABI
Requires building a corresponding toolchain tree for
various supported host platforms, and modify the build
system. Biggest challenge at the moment is finding a
stable x86 platform to run tests against.
Support for ARMv5TE + FPU
Unfortunately, a real FPU mandates that specific floating-point
registers be used to passed floating-point values in function
call. This results in a new ABI that is not compatible with the
one we currently support.
This new ABI should have a different name (e.g. 'armfpu') and
be supported through a different sysroot + toolchain configuration
(though it is likely we could reuse the arm-eabi-4.2.1 prebuilt
binaries, but with different configuration options).
Easier debugging support
Debugging native code is still very rough. We can make it a lot better
through a series of tricks, which involve modifying some parts of the
system.
Stable native APIs for OpenGL ES.
Nuff said...
Stable C-based native API for a simple way to access surface pixels
Probably based on a simple lock/unlock paradigm. Would ideally be
useful to access both Skia and GL surfaces at the same time, though
probably with very different performance characteristics.
It will probably be very limited in scope, intentionally.
Stable native APIs for audio.
Only something simple that could be used to manage audio buffers in
native code in a real-time basis. For now, applications have to
pass the buffers from Java to perform signal processing in native code
for them.
Stable native APIs from 'libcutils/libutils'
The system libraries 'libcutils' and 'libutils' provide a host of
useful Android-specific functions that we could certainly expose to
native application.
Not everything in these libraries can be considered stable, so we
should probably split their headers into 'stable' and 'unstable'
parts, and add them to the NDK's sysroot over time.
C++ Standard Library support
Many people are interested in using the STL. The Android system images
simply do *not* provide any real libstdc++ due to space/performance
constraints. However, we should be able to provide one or more STL
implementations as static libraries that can be linked to developer's
binaries.
Note that locales and wchar_t are not supported by the Android C library
so these would probably not be supported anyway.
Better C++ exceptions and RTTI support
Some of these can be used in limited ways with the NDK, but it's a
pretty hard road that is not recommended at the moment. We should be
able to make this easier in the future.