web-dev-qa-db-fra.com

Différence entre iPhone Simulator et Android Emulator

Quelle est la différence entre iPhone Simulator et Android emulator? J'ai entendu des gens dire que Emulator émule vraiment le périphérique cible, ce qui n'est pas vrai dans le cas du simulateur.

Je pense que Android imite la vitesse de traitement de l'appareil cible, l'utilisation de la mémoire, mais un simulateur n'émule pas l'appareil.

51
Krishnan

Avertissement: Je ne suis qu'un développeur iPhone, pas un développeur Android.

Vous avez raison, la différence entre les émulateurs et les simulateurs est que les émulateurs imitent les environnements matériels logiciels et trouvés sur les appareils réels. Les simulateurs, quant à eux, ne reproduisent que l'environnement logiciel; autrement, ils ont accès à toutes les ressources matérielles du système hôte telles que l'espace disque, la mémoire et la vitesse du processeur.

Apple insiste toujours sur l'importance des tests d'appareils, car iPhone Simulator n'émule pas un processeur iPhone, un lecteur de disque, des contraintes de mémoire et ainsi de suite. Vous n'obtenez presque jamais d'avertissements de mémoire, sauf si votre Mac a du mal à gérer les ressources lui-même, à moins que vous ne simuliez (encore) des avertissements de mémoire à partir de l'élément de menu du simulateur.

En fait, si vous allez dans Paramètres> Général> À propos, vous verrez que la capacité du disque du simulateur est la même que le système de fichiers du Mac sur lequel il est installé:

62
BoltClock

Bien que l'émulateur Android émule les processeurs ARM et certains matériels, il ne fait toujours pas un bon travail pour faire correspondre les performances du processeur).

En tant qu'émulateur, il peut bien correspondre à la consommation de mémoire, il peut bien émuler certains appareils simples, mais échoue lorsque les appareils se compliquent, par exemple les décodeurs de GPU et de matériel multimédia mobiles. Et comme la logique d'émulation fonctionne sur la traduction de chaque instruction ARM en instruction X86 et en exécutant ses performances de porc et, par conception, elle n'est pas précise de cycle.

Avec le modèle de programmation étant Java cette conception n'achète rien au développeur de l'application car les performances sur l'émulateur ne reflètent pas les performances sur le périphérique (en raison de la vitesse d'émulation et du manque de périphériques HW) et le plus souvent, c'est un inconvénient car les cycles de débogage sont lents.Le seul avantage étant que l'application est conforme pour le travail de l'émulateur comme sur les appareils (pas de recompilation).

Dans le modèle de simulateur d'iPhone Apple a réalisé qu'ils ne correspondraient pas parfaitement à l'appareil, ils n'essaient même pas et en retour, donnent aux développeurs un temps de cycle rapide et un support d'outils amélioré pour développer efficacement des applications.

19
Neera