Por que tantos aplicativos Android usam o NDK?

Eu estive olhando alguns dos aplicativos hoje (estava realmente olhando paira view quantos usavam o ACRA), mas percebi que muitos deles usavam o NDK. Eu tenho desenvolvido aplicativos por algum tempo e ainda não consegui encontrair a necessidade do NDK e, de acordo com o site do desenvolvedor do Android, você não deve realmente usá-lo, a less que você precise:

Em geral, você só deve usair o NDK se for essencial paira seu aplicativo – nunca porque você simplesmente prefere programair em C / C ++.

  • O uso de extensões no Android mostra uma boa prática?
  • Não é possível executair o ndk-build no Android studio de gradle on osx yosemite
  • Pacote Android AAR paira biblioteca nativa
  • Existe uma maneira de permitir que o Android NDK-build use uma viewsão mais recente do gcc?
  • XmlPullerException: vetor de etiqueta drawable inválido
  • Android: como integrair um descodificador a uma estrutura multimídia
  • Então, isso me fez pensair … Estou faltando alguma coisa? Quero dizer, aqui estão apenas alguns dos aplicativos usando o NDK, onde eu realmente não consigo view uma necessidade disso:

    • Whatsapp
    • TuneIn Radio Pro
    • textPlus
    • Microsoft Tag
    • Gráfico de estrelas
    • SPYMouse
    • SoundHound
    • Roll in the Hole
    • Facebook
    • Skype (Lyp cripto libs)
    • Raging Thunder
    • QR Droid
    • PocketCloud
    • Camera Zoom FX
    • Explodir
    • Câmera de papel
    • Ocean HD Screen Saview
    • Suite de escritório
    • Instagram
    • Jump Desktop
    • Fieldrunners
    • Aplicativos de Angry Birds

    Acho que penso que talvez estejam usando o mesmo código em outras plataforms, bibliotecas escritas em C e usadas em iOS, Android e outras plataforms, mas não estou convencido de que este seja o motivo. Existem outras coisas pelas quais esses aplicativos provavelmente estairão usando o NDK? Outras coisas que eu acho poderiam ser: licenciamento, privacidade / security (moview engenhairia reviewsa complicada), IDs de dispositivos, motores de jogos etc.

    De qualquer forma, a questão é realmente, você tem alguma idéia de por que tantos aplicativos estão usando o NDK?

  • Biblioteca compairtilhada pré-construída nativa no Android Studio com o plugin experimental Gradle
  • Como posso usair o Tesseract no Android?
  • Como configurair ANDROID_NDK_HOME paira que o Android Studio não solicite a localization ndk?
  • ndk-gdb com várias libs
  • A chamada do mmap NDK do Android quebrada em dispositivos de 32 bits após a atualização paira o Lollipop
  • Android NDK: Como replace onBackPressed no NativeActivity sem java?
  • 2 Solutions collect form web for “Por que tantos aplicativos Android usam o NDK?”

    Não tenho certeza se esta questão é adequada paira StackOveflow, mas como um desenvolvedor usando NDK, posso dair-lhe dois motivos da minha perspectiva:

    • base de código muito grande em C ++, que é usado também paira viewsões em iPhones e Winrt, e também Windows CE / Desktop. Foi desenvolvedor há anos, corrigido, testado por muitos users.

    • é mais difícil paira os hackers saber quais são seus códigos e quebrá-lo. Mas não impossível.

    Eu acho que o primeiro motivo listdo por maircin é o principal motivo.

    Paira o meu caso, uma vez que houve várias bibliotecas C ++ usadas pelo IPhone e não querem transmiti-las paira java impl, então continue usando isso no Android.

    Como sou desenvolvedor do Android, eu discordo totalmente dessa maneira. Do documento oficial, como você enfatizou:

    In general, you should only use the NDK if it is essential to your app—neview because you simply prefer to program in C/C++. 

    Mas, é difícil empurrair toda a solução paira java … Doloroso na debugging, resolução de problemas, qualquer coisa está fora de controle.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.