I. Vue d'ensemble▲
Les appareils Android* équipés de processeurs Intel® Atom™ sont de plus en plus populaires, et des applications compatibles sont publiées tous les jours. Pour satisfaire les besoins des développeurs d'applications se consacrant au développement de jeux pour les appareils Android avec processeurs Intel Atom, les entreprises d'intergiciel ont commencé à supporter les architectures x86.
Une de ces entreprises, CRI Middleware Co., Ltd ., propose une prise en charge de bibliothèques d'exécution en architecture x86 pour intergiciel Android. Cela a été réalisé en modifiant les paramètres de compilation du makefile dans le NDK d'Android et en remplaçant les instructions ARM* NEON*. Dans la prise en charge de l'architecture x86 par la bibliothèque d'exécution de middleware pour appareils Android se trouve un plug-in pour Unity*, un moteur de jeux vidéo développé par Unity Technologies, qui permet aux développeurs de construire des jeux en sélectionnant simplement le répertoire x86 comme cible de compilation dans le NDK d'Android.
II. A propos de CRI▲
CRI est une entreprise japonaise qui se consacre à la recherche, au développement et à la vente de middleware audio et vidéo. Fondée en 1983 en tant qu'institut de recherche de CSK, une entreprise de vente de solutions informatiques, CRI a mis au point un intergiciel pour la console de jeux vidéo Sega. Après être devenu indépendante en 2001, l'entreprise CSK a collectionné les réalisations d'intergiciels pour les consoles de jeux, et conçoit aujourd'hui ses produits sous la marque CRIWARE*.
Ces dernières années, CRI s'est concentré sur la prise en charge des smartphones et a étendu son intergiciel aux téléphones iPhone* et Android. CRI fournit aujourd'hui le middleware audio intégré CRI ADX* 2 pour Android, le middleware vidéo de haute qualité et hautes performance CRI Sofdec* 2, et le middleware de compression de fichiers FileMajik PRO. En les utilisant, les développeurs de jeux et d'applications sont en mesure d'ajouter des vidéos puissantes aux jeux, de nouveaux rendus de communication avec le son interactif, tout en optimisant l'efficacité du développement.
III. Contextes du support d'Intel® x86▲
CRI s'est concentré sur la prise en charge d'Intel x86 pour les middlewares depuis 2012, lorsque des appareils Android disposant de processeurs Intel Atom sont arrivés sur le marché. Les développeurs d'application ont commencé à demander une prise en charge d'émulation x86 pour Android. L'émulateur ARM original comportait des problèmes de vitesse de fonctionnement lors de son émulation de l'architecture ARM, mais un fonctionnement à haute vitesse a été rendu possible en utilisant l'émulateur x86 et le gestionnaire d'exécution à accélération matérielle.
Intel® HAXM (Intel® Hardware Accelerated Execution Manager). De nombreux développeurs affirmaient qu'ils souhaitaient utiliser CRIWARE avec l'émulateur x86 pour des gagner en efficacité de développement, et la première version prenant en charge l'architecture x86 a été proposée en juin 2013.
Yusuke Urushihata, directeur du service CRI, a expliqué que « la prise en charge de X86 est facile à réaliser en utilisant le NDK Android. Nous sommes en fait capable d'ajouter la prise en charge en ajoutant simplement une ligne à la destination de sortie du makefile. »
CRI a sorti CRIWARE pour l'environnement de développement du NDK Android.
Plus tard, en août 2014, l'entreprise de moteur de jeu Unity Technologies a annoncé la prise en charge de x86 pour Unity 4 et 5, et un environnement de développement natif a été publié. Par conséquent, les développeurs ont ensuite demandé un support de x86 du middleware CRI pour la bibliothèque Unity que CRI a ensuite publié.
Le responsable de l'intégration applicative de CRI, Atsushi Sakurai, a affirmé que « les développeurs de jeux (les utilisateurs) utilisant le moteur de jeu 3DUnity demandaient avec insistance la prise en charge des architectures x86, et nous avons donc décidé de fournir un support middleware de x86. »
À côté d'Unity, Coco2d-x est un autre framework de jeux vidéo orienté 2D soutenu par CRI, qui fonctionne dans l'environnement de développement natif d'Android. Comme il est écrit en C++, il n'a pas besoin de bibliothèque spéciale.
IV. Développement axé sur le support de x86▲
CRI a développé la bibliothèque d'exécution avec l'environnement de développement logiciel Android NDK, créant cela dans un ordre déterminé à l'avance et ajoutant des prises en charge sans aucun accroc.
La plupart des paramètres de compilation du makefile d'Android NDK (Android.mk) sont réparés et ajoutés ligne par ligne afin qu'ils soient produits en format x86.
Lorsqu'il a été temps de décoder le traitement des vidéos, CRI a utilisé les instructions ARM NEON, cependant cela a généré une erreur de compilation en faisant tourner une version pour x86. CRI a donc réécrit le code de traitement de décodage en code optimisé C et C++ qui a fait ses preuves sur les plateformes basées sur une architecture Intel®.
Pour prendre en charge immédiatement x86, il était crucial que le middleware fourni par CRI soit multiplateforme. La prise en charge multiplateforme était d'abord incluse dans le concept même du middleware de CRI, de sorte qu'un framework tel que le jeu d'instructions NEON existe pour passer à un autre environnement même dans le cas d'un problème spécifique à la cible. Par exemple, même si les endians du code source sont différents, ils sont automatiquement distingués en utilisant CRI pour configurer l'environnement compilé en little-endians .
V. Comment utiliser CRIWARE* pour la prise en charge d'architectures x86 ▲
CRI fourni des bibliothèques pour ARM et x86.
La procédure d'utilisation d'Unity pour le développement de jeux vidéo et CRIWARE pour prendre en charge les architectures x86 pour les appareils Android avec processeurs Intel Atom est plutôt simple. Tout ce dont vous avez besoin est d'utiliser le NDK d'Android pour compiler l'application. Tant