Hvad er et indbygget udviklingssæt?
Ved computerprogrammering og softwareudvikling er et native udviklingskit (NDK) normalt en abstrakt programmeringsgrænseflade (API), der giver en udvikler mulighed for at bruge funktioner eller udføre kode direkte gennem det centrale operativsystem. Denne metode til at udføre et program adskiller sig tydeligt fra at køre administreret kode eller tolke programmer, hvor den kode, der er skrevet, udføres af en virtuel maskine eller tolk, der fungerer som et softwarelag mellem de centrale operativsystemfunktioner og den bruger-skrevne kode . Brug af et indbygget udviklingssæt kan være vigtigt i applikationer, der kræver den hurtigst mulige udførelses- og behandlingstid, fordi det kan give direkte adgang til hardware og biblioteker, som operativsystemet bruger. Afhængig af programtypen, der skrives, og hvilket mål operativsystem der er, kan brugen af et native udviklingssæt muligvis ikke øge programhastigheden overhovedet og kan gøre kode, der er vanskelig at vedligeholde, læse og port til andre systemer.
Applikationer, der er skrevet til nogle enheder, såsom smarttelefoner, eller som bruger tolket computersprog, udføres ikke direkte af kernens operativsystemprocesser eller kernen. I stedet udføres programkoden af et separat program kendt som en virtuel maskine (VM) eller tolk. Den virtuelle maskine læser koden, udvider og løser kommandoer og bruger grænseflader til kernen for at udføre koden. Dette kan være fordelagtigt for nogle udviklere, fordi det giver et godt lag med abstraktion til portabilitet og overlader mange komplekse detaljer, såsom ressourcehåndtering og filhåndtering, til skaberne af den virtuelle maskine.
I nogle tilfælde kan den virtuelle maskine imidlertid være en hindring for nogle typer programmer. VM kan langsomt udføre eller undlade at give adgang til nogle funktioner i hostkernen. Et oprindeligt udviklingssæt til måloperativsystemet eller enheden udsætter kernens funktioner for applikationen, der skrives. Afhængig af omfanget af kittet, kan dette give et program mulighed for direkte adgang til hardware, indlæse sine egne brugerdefinerede biblioteker i kernen eller bruge systemspecifikke optimeringer.
Et native udviklingssæt bruges ofte kun til tidskritiske dele af et program. Dette kan være beregninger til grafikbehandling, output til displayet eller filinput og output. Ikke alle programmer, der bruger native funktioner eller rutiner, får en hurtig fordel, fordi den virtuelle maskine muligvis allerede foretager optimeringer af den administrerede kode, så den resulterende maskinkode er identisk, uanset om de native funktioner bruges. Desuden binder native code et program til en specifik implementering af et operativsystem og undertiden en bestemt version af en enhed, hvilket betyder, at kode ved hjælp af et native udviklingskit muligvis ikke nemt kan porteres til andre systemer.