Android Native support
Using the Android NDK in your apps
The Android NDK allows you to write parts of your app using native-code languages, such as C and C++. While this flexibility can help you reuse existing code libraries written in either of these languages, most apps don't need the Android NDK to work. Using the Android NDK in order to write your app using a native-code language doesn't usually result in improved performance. It does however, increase the complexity of your app, which can make it more difficult to maintain.
Some good choices for using the Android NDK with a native-code language include self-contained, CPU-intensive operations that don't allocate much memory, such as signal processing or physics simulation.
Do not use the Android NDK to write generic native code that runs on Android devices. Instead, your apps should be written in Java, should handle Android system events, and should deal with the Android app life-cycle.
BlackBerry 10 supports both the ARMv5TE and ARMv7-A machine code instruction sets.
For installation information and downloads for the Android NDK, see System and Software Requirements on the Android NDK website.
Known Issues and Limitations
The following table lists known issues and limitations when using the Android NDK or when repackaging Android NDK apps for BlackBerry 10
Known issues and limitations
Limited support for the Linux virtual file systems (/proc, /sys, and /dev).
Many of the native system libraries in the Android system images are not frozen and could be changed or deleted in later updates.
The Android NDK does not work with the BlackBerry 10 Device Simulator, as native calls are not supported.
The Android C++ runtime provides minimal support for C++ features. However, the Android NDK provides more advanced runtimes that you can link into your app.
The Android NDK supports a limited set of system header files for native APIs. To see the list of supported header files, visit Development tools on the Android NDK website.
Inter-process communication APIs for UNIX System V are not supported.
The Android NDK comes with documentation included in the installation .zip file. You can find a more detailed list of limitations in the <ndk>/docs/ directory.