Che cos'è un kit di sviluppo nativo?

Nella programmazione per computer e nello sviluppo di software, un kit di sviluppo nativo (NDK) di solito è un'interfaccia di programmazione astratta (API) che fornisce allo sviluppatore la possibilità di utilizzare funzioni o eseguire codice direttamente attraverso il sistema operativo principale. Questo metodo di esecuzione di un programma è nettamente diverso dall'esecuzione di codice gestito o programmi interpretati, in cui il codice scritto viene eseguito da una macchina virtuale o un interprete che funge da livello software tra le funzioni principali del sistema operativo e il codice scritto dall'utente . L'uso di un kit di sviluppo nativo può essere essenziale nelle applicazioni che richiedono i tempi di esecuzione e di elaborazione più rapidi possibili, poiché può fornire accesso diretto all'hardware e alle librerie utilizzate dal sistema operativo. A seconda del tipo di programma che viene scritto e del sistema operativo di destinazione, l'uso di un kit di sviluppo nativo potrebbe non aumentare affatto la velocità del programma e rendere il codice difficile da mantenere, leggere e trasferire su altri sistemi.

Le applicazioni scritte per alcuni dispositivi, come gli smartphone, o usano linguaggi interpretati per computer non vengono eseguite direttamente dai processi del sistema operativo principale o dal kernel. Al contrario, il codice del programma viene eseguito da un programma separato noto come macchina virtuale (VM) o interprete. La macchina virtuale legge il codice, espande e risolve i comandi e si interfaccia con il kernel per eseguire il codice. Questo può essere utile per alcuni sviluppatori, perché fornisce un buon livello di astrazione per la portabilità e lascia molti dettagli complessi, come la gestione delle risorse e la gestione dei file, ai creatori della macchina virtuale.

In alcuni casi, tuttavia, la macchina virtuale può costituire un ostacolo per alcuni tipi di programmi. La VM può rallentare l'esecuzione o non riuscire a fornire l'accesso ad alcune funzioni all'interno del kernel host. Un kit di sviluppo nativo per il sistema operativo o il dispositivo di destinazione espone le funzioni del kernel all'applicazione in fase di scrittura. A seconda dell'estensione del kit, ciò può consentire a un programma di accedere direttamente all'hardware, caricare le proprie librerie personalizzate nel kernel o utilizzare ottimizzazioni specifiche del sistema.

Un kit di sviluppo nativo viene spesso utilizzato solo per porzioni critiche di tempo di un programma. Questi possono essere calcoli di elaborazione grafica, output sul display o input e output del file. Non tutti i programmi che utilizzano funzioni o routine native vedranno un vantaggio in termini di velocità, poiché la macchina virtuale potrebbe già apportare ottimizzazioni al codice gestito in modo che il codice macchina risultante sia identico, indipendentemente dal fatto che vengano utilizzate funzioni native. Inoltre, il codice nativo collega un programma a un'implementazione specifica di un sistema operativo e talvolta a una versione specifica di un dispositivo, il che significa che il codice che utilizza un kit di sviluppo nativo potrebbe non essere facilmente trasferito su altri sistemi.

ALTRE LINGUE

Questo articolo è stato utile? Grazie per il feedback Grazie per il feedback

Come possiamo aiutare? Come possiamo aiutare?