What' s the difference between gnustl and stlport in android ndk development?

I want to know if their performance/stability differ from each other and their licenses explained in short. Real world experiences are welcomed.

  • Create PhoneGap 3.0.0 project error - 'platform add android' i not a node
  • Bad notification posted from package Couldn't expand RemoteViews
  • No animation on item removal on RecyclerView
  • cannot access memory at address 0X1 after setting up gdb and eclipse to debug shared library from Android Application
  • How to display a one time welcome screen?
  • Error Receiving Broadcast Intent Problem
  • programmatically set “Layout to right of” property in android
  • Getting IP Cam video stream on Android (MJEPG)
  • Put a progressBar on ActionBar
  • Android camera preview stretched using Grafika CameraCapture code
  • How to apply slide animation between two activities in Android?
  • Is there a way to offset a view from center in Android?
  • 2 Solutions collect form web for “What' s the difference between gnustl and stlport in android ndk development?”

    As of yesterday (NDK r9d), gnustl was still more comprehensive, e.g. support for <thread>, <future>, and some other C++11 features. Even these depend on the toolchain: you could not use the default ARM gcc 4.6 to have them enabled.

    OTOH, stlport license is no-nonsense free, like the rest of AOSP, while the linking exception to GPL v3 for gnustl is not easy to understand. See https://groups.google.com/d/topic/android-ndk/OWl_orR0DRQ for some older discussion.

    If you look at the NDK release notes, you will find that in terms of fixed bugs these two STL implementations were more or less on par.

    I would be glad to see performance benchmarks, but personally I have never encountered a situation where STL implementation variation resolved a real bottleneck.

    GNU STL is distributed under GPLv3 license which is not acceptable for some people. NDK also provides STLport and it is possible to use it instead, but it is a bit more complicated as standalone tool-chain does not include it.

    By default NDK tool-chain will link your C++ shared lib’s against a static version of GNU STL lib. However if you are using several shared lib’s it is not acceptable to link against the static version of STL as each of your shared lib will have its own copy of STL. This will result in several copies of global vars defined in STL and may lead to memory leak or corruption

    IMPORTANT : Using the NDK toolchain directly has a serious limitation:
    You won’t be able to use any C++ STL (either STLport or
    the GNU libstdc++) with it. Also no exceptions and no RTTI.

    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.