Skip to main content

Cos'è un kit di sviluppo nativo?

Nella programmazione di computer e nello sviluppo del software, un kit di sviluppo nativo (NDK) di solito è un'interfaccia di programmazione astratta (API) che fornisce a uno sviluppatore la possibilità di utilizzare le funzioni o eseguire il 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 da un interprete che funge da livello software tra le funzioni del sistema operativo principale 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 ed elaborazione più veloci possibili, poiché può fornire accesso diretto a hardware e librerie utilizzate dal sistema operativo.A seconda del tipo di programma in corso e del sistema operativo target, l'uso di un kit di sviluppo nativo potrebbe non aumentare affatto la velocità del programma e potrebbe rendere il codice difficile da mantenere, leggere e portare ad altri sistemi.

Applicazioni che ciò chesono scritti per alcuni dispositivi, come gli smartphone, o l'uso dei linguaggi di computer interpretati non vengono eseguiti direttamente dai processi del sistema operativo principale o dal kernel.Invece, il codice del programma viene eseguito da un programma separato noto come macchina virtuale (VM) o Interpreter.La macchina virtuale legge il codice, espande e risolve i comandi e si interfaccia con il kernel per eseguire il codice.Ciò 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, il virtualeLa macchina può essere un ostacolo per alcuni tipi di programmi.La VM può rallentare l'esecuzione o non fornire l'accesso ad alcune funzioni all'interno del kernel host.Un kit di sviluppo nativo per il sistema operativo target o il dispositivo espone le funzioni del kernel alla scrittura dell'applicazione.A seconda dell'entità del kit, ciò può consentire a un programma di accedere direttamente a hardware, caricare le proprie librerie personalizzate nel kernel o utilizzare ottimizzazioni specifiche del sistema.

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