Android NDK

L'Android Native Development Kit (NDK) è un insieme di strumenti che consente la cross-compilazione per la compilazione di codice scritto in C/C che può ess

Android NDK
Android NDK
software
Genere
SviluppatoreGoogle
Data prima versionegiugno 2009
Ultima versione29 (6 ottobre 2025)
Sistema operativoMultipiattaforma
LinguaggioC
C++
LinguaInglese
Sito webdeveloper.android.com/ndk/

L'Android Native Development Kit (NDK) è un insieme di strumenti che consente la cross-compilazione per la compilazione di codice scritto in C/C++ che può essere compilato in codice nativo ARM o x86 (incluse le relative varianti a 64 bit) per Android.[1][2] L'NDK utilizza il compilatore Clang per la compilazione del codice C/C++. Fino alla versione r17 dell'NDK era incluso anche il compilatore GCC, che è stato successivamente rimosso a partire dalla versione r18 del 2018.

Panoramica

Le librerie native possono essere chiamate dal codice Java in esecuzione su Android Runtime utilizzando System.loadLibrary, facente parte delle classi Java standard di Android.[3][4]

Gli strumenti da riga di comando possono essere compilati con l'NDK e installati tramite adb.[5]

Android utilizza Bionic come libreria C e LLVM libc++ come libreria standard C++. L'NDK include inoltre svariate API:[6] compressione zlib, grafica OpenGL ES o Vulkan, audio OpenSL ES e diverse API specifiche di Android per funzionalità come il logging, l'accesso alle telecamere o l'accelerazione delle reti neurali.

L'NDK offre il supporto per CMake e per il proprio sistema ndk-build (basato su GNU Make). Android Studio consente l'esecuzione di entrambi tramite Gradle. Strumenti di terze parti permettono di integrare l'NDK in Eclipse[7] e Visual Studio.[8]

Per il profiling della CPU, l'NDK include anche simpleperf,[9] uno strumento simile a perf di Linux, ma con un supporto migliore per Android e specificamente per stack misti Java/C++.

Note

  1. ^ Sylvain Ratabouil, Android NDK beginner's guide : discover the native side of Android and inject the power of C/C++ in your applications, 2ª ed., 2015, ISBN 978-1-78398-965-2, OCLC 910639612.
  2. ^ Sergey Kosarevsky, Android NDK game development cookbook : over 70 exciting recipes to help you develop mobile games for Android in C++, 2013, ISBN 978-1-78216-779-2, OCLC 880639342.
  3. ^ Davanum Srinivas, Android — Invoke JNI based methods (Bridging C/C++ and Java), su davanum.wordpress.com, 9 dicembre 2007. URL consultato il 13 dicembre 2008 (archiviato dall'url originale il 16 dicembre 2008).
  4. ^ java.lang.System, su Android Developers. URL consultato il 3 settembre 2009.
  5. ^ Android Debug Bridge (adb), su developer.android.com.
  6. ^ Android NDK Native APIs | Android NDK, su developer.android.com.
  7. ^ Using Eclipse for Android C/C++ Development, su mhandroid.wordpress.com, 23 gennaio 2011.
  8. ^ Using Visual Studio to Develop Native Android Code – VisualGDB Tutorials, su visualgdb.com, 30 aprile 2015.
  9. ^ Simpleperf | Android NDK, su developer.android.com.

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.