ALI

vendredi 20 septembre 2013

Qu'est-ce qu'un kit de développement natif?

Dans la programmation informatique et développement de logiciels, d'un kit de développement natif (NDK) est généralement une interface de programmation abstrait (API) qui fournit un développeur avec la possibilité d'utiliser des fonctions ou exécuter du code directement dans le système d'exploitation de base. Cette méthode d'exécution d'un programme est nettement différent d'exécuter du code managé ou programmes interprétés, dans lequel le code qui est écrit est exécuté par une machine ou d'un interprète virtuel qui agit comme une couche logicielle entre les fonctions du système d'exploitation de base et le code écrit par l'utilisateur . L'utilisation d'un kit de développement natif peut être essentiel dans les applications qui nécessitent l'exécution la plus rapide possible et les délais de traitement, car il peut fournir un accès direct au matériel et aux bibliothèques du système d'exploitation utilise. Selon le type de programme en cours d'écriture et le système d'exploitation cible, l'utilisation d'un kit de développement natif pourrait ne pas augmenter la vitesse de programme du tout, et pourrait rendre le code qui est difficile à maintenir, lire et le port à d'autres systèmes.
Les applications qui sont écrites pour certains appareils, comme les téléphones intelligents, ou utilisent des langages informatiques interprétés ne sont pas exécutés directement par les processus du système d'exploitation de base, ou le noyau. Au lieu de cela, le code de programme est exécuté par un programme distinct connu sous le nom d'une machine virtuelle (VM), ou d'un interprète. La machine virtuelle lit le code, développe et résout les commandes et l'interface avec le noyau pour exécuter le code. Cela peut être bénéfique pour certains développeurs, car il fournit une bonne couche d'abstraction pour la portabilité et laisse beaucoup de détails complexes, telles que la gestion des ressources et la gestion des fichiers, les créateurs de la machine virtuelle.
Dans certains cas, cependant, la machine virtuelle peut être un obstacle pour certains types de programmes. Le VM peut ralentir l'exécution ou ne donne pas accès à certaines fonctions au sein du noyau hôte. Un kit de développement natif pour le système d'exploitation cible ou dispositif expose les fonctions du noyau pour l'application en cours d'écriture. Selon l'ampleur de la trousse, ce qui peut permettre à un programme pour accéder directement au matériel, charger ses propres bibliothèques personnalisées dans le noyau, ou utiliser le système optimisations spécifiques.
Un kit de développement natif est plus souvent utilisée que pour les parties à temps critique d'un programme. Ceux-ci peuvent être des calculs de processeurs graphiques, de la production à l'entrée et la sortie écran ou un fichier. Pas tous les programmes qui utilisent des fonctions ou des routines natives verront un avantage de vitesse, parce que la machine virtuelle peut déjà faire des optimisations pour le code managé si le code machine résultant est identique, indépendamment du fait que les fonctions natives sont utilisées. En outre, le code natif lie un programme pour une implémentation spécifique du système d'exploitation et parfois une version spécifique d'un dispositif, ce qui signifie que le code en utilisant un kit de développement natif pourrait ne pas être facilement porté sur d'autres systèmes.