Vad är ett infödd utvecklingssats?
I datorprogrammering och mjukvaruutveckling är ett NIRIMERN Development Kit (NDK) vanligtvis ett abstrakt programmeringsgränssnitt (API) som ger en utvecklare möjlighet att använda funktioner eller köra kod direkt via Core Operating System. Denna metod för att utföra ett program skiljer sig tydligt från att köra hanterade kod eller tolkade program, där koden som är skriven körs av en virtuell maskin eller tolk som fungerar som ett programvaruskikt mellan kärnoperativsystemfunktionerna och den användarskrivna koden. Användningen av ett infödd utvecklingssats kan vara väsentlig i applikationer som kräver snabbast möjliga exekverings- och bearbetningstider, eftersom det kan ge direkt åtkomst till hårdvara och bibliotek som operativsystemet använder. Beroende på vilken typ av program som skrivs och måloperativsystemet kan användningen av ett infödd utvecklingssats inte öka programhastigheten alls och kan göra kod som är svår att underhålla, läsa och port till OThennes system.
Applikationer som är skrivna för vissa enheter, till exempel smarta telefoner, eller användning av tolkade datorspråk körs inte direkt av kärnoperativsystemprocesserna eller kärnan. Istället körs programkoden av ett separat program som kallas en virtuell maskin (VM) eller tolk. Den virtuella maskinen läser koden, expanderar och löser kommandon och gränssnitt med kärnan för att köra koden. Detta kan vara fördelaktigt för vissa utvecklare, eftersom det ger ett bra lager av abstraktion för portabilitet och lämnar många komplexa detaljer, såsom resurshantering och filhantering, till skaparna av den virtuella maskinen.
I vissa fall kan dock den virtuella maskinen vara ett hinder för vissa typer av program. VM kan bromsa exekveringen eller misslyckas med att ge åtkomst till vissa funktioner i värdkärnan. Ett infödd utvecklingssats för målverksamhetenStam eller enhet avslöjar kärnans funktioner för applikationen som skrivs. Beroende på graden av satsen kan detta göra det möjligt för ett program att direkt komma åt hårdvara, ladda sina egna anpassade bibliotek i kärnan eller använda systemspecifika optimeringar.
En infödd utvecklingssats används oftast endast för tidskritiska delar av ett program. Dessa kan vara beräkningar av grafikbehandling, utgång till displayen eller filinmatning och utgång. Inte alla program som använder infödda funktioner eller rutiner kommer att se en hastighetsfördel, eftersom den virtuella maskinen redan kan göra optimeringar till den hanterade koden så att den resulterande maskinkoden är identisk, oavsett om infödda funktioner används. Dessutom binder Native Code ett program till en specifik implementering av ett operativsystem och ibland en specifik version av en enhet, vilket innebär att kod som använder ett nativt utvecklingssats kanske inte lätt överförs till andra system.