Renderscript
Renderscript est une API pour des graphismes hautes performances sur les tablettes et téléphones Android. Il s'agit d'une API de bas niveau dont le but est de hautes performances de rendu 3D et d'opération de calcul. Il permet aux développeurs de maximiser les performances de leurs applications tout en nécessitant d'écrire une plus importante quantité de code et de plus grande complexité. Il fournit aux développeurs trois outils de base : Une simple API de rendu 3D au-dessus de la couche d'accélération matérielle, une API de calcul plus simple pour les développeurs similaire à CUDA ou GLSL et un langage de programmation familier en C99.
Fonctionnalités
- La nouvelle API est publiée avec la version d'API d'Android Honeycomb
- Constitué d'une API de calcul et d'une API de rendu
- A l'intention des programmeurs désireux de maximiser les performances du matériel
- Accessible par l'intermédiaire d'un langage de script basé sur le langage C.
Portabilité
Le code d'application nécessitant de fonctionner sur un ensemble hétérogène de matériel, dont parfois des matériels très différents. L'architecture ARM existe actuellement en différentes versions — avec et sans VFP, avec et sans NEON, et avec un nombre différent de registres. En plus d'ARM, Android existe également sur d'autres types de microprocesseurs ou SoC, telle que l'architecture MIPS ou que l'architecture x86 d'Intel, toutes ces architectures pouvant contenir différents types de processeurs graphiques et de traitement de signal.
Performance
Obtenir le maximum de performance possible tout en gardant les contraintes de portabilité. Pour que Renderscript ait un sens, il nécessite d'obtenir de meilleures performances que les solutions existantes.
Utilisabilité
Simplifier le développement autant que possible. Les étapes possibles étant l'automatisation afin d'éviter le code englué et d'autres choses occupant trop les développeurs.
Ce sont ces points qui séparent Renderscript des approches existantes sur le matériel, telles que Dalvik ou l'Android Native Development Kit. Ils doivent être appréhendés comme des outils différents pour résoudre des problématiques différentes.