Profile cover photo
Profile photo
Tout sur Java, C++ et la programmation objet
62 followers -
Les nombreux articles que je publie dans la presse spécialisée.
Les nombreux articles que je publie dans la presse spécialisée.

62 followers
About
Tout sur Java, C++ et la programmation objet's posts

Post has attachment
Demain, je donne une conférence sur l'architecture Android à l'INSA de Rouen.

Lorsque l'on compare les choix d'architectures d'#Android par rapport aux autres plate-formes (#iOS ou #WindowsPhone), on est surpris de constater que l'équipe d'Android à pratiquement toujours fait les bons choix, et depuis le début !

Les autres doivent maintenant suivre pour rattraper le niveau d'Android, et ce n'est pas facile.

Par exemple:
- Android propose depuis le début des tailles d'écrans variables.
iOS a déjà du mal à intégrer les applications #iPhone et #iPad (Deux OS différents), Lorsqu'il faudra changer de résolution pour les prochaines versions, il faudra revoir toutes les applications. Android a réussi avec #ICS à intégrer l'OS pour téléphone et l'OS pour tablette (voir l'OS pour TV ou autre véhicules). Windows Phone ne fonctionnera jamais sur tablette, alors sur TV...
- Android propose le multitâche depuis toujours. iOS à suivi mais pas aussi souple qu'Android. Windows Phone n'accepte pas d'avoir plusieurs applications en même temps. Même le téléchargement d'un fichier doit s'effectuer via un service système. C'est pour dire. Cela est justifié par une approche paranoïaque de la sécurité. S'il n'y a pas d'application en arrière plan, il n'y a pas de keylogger.
- Android propose la barre de notification qu'iOS viens de copier.
- Android propose de nombreuses techniques pour communiquer entres applications. iOS ne propose que l'invocation d'une URL géré par une autre application, une connexions en Loopback réseau dans le terminal, ou un partage de fichiers limités à certains répertoires. Windows Phone ne permet rien, sauf à utiliser le cloud. C'est indiqué dans leurs docs ! Pas de réseau, pas de chocolat !
- Android propose une approche de la sécurité déclarative, riche et extensible. Windows Phone ne propose que quelques privilèges, mais impossible d'en rajouter (normal, impossible de faire communiquer deux applications). iOS ne propose pas de sand-box avec des privilèges différents pour chaque applications. Ça va venir.
- Android utilise une machine virtuelle, ce qui permet d'exécuter le même code sur des architectures différentes, et par exemple, envoyer une application du téléphone vers une Virtual Box x86 ou une TV (non ARM). C'est impossible avec iOS car il faudra recompiler pour chaque plate-forme. C'est possible avec Windows Phone qui utilise également une VM.
- Android utilise un langage de haut niveau (Java), ce qui limite fortement les risques de sécurités ou les fuites mémoires. iOS utilise un langage compilé certe (Objective-C), mais sans exceptions, sans gestion mémoire, exposant le code à des buffers overflows et autres attaques. Windows Phone propose un bon langage managé (.Net)
- Android propose systématiquement des frameworks extensibles pour tous les services (Agenda, Contacts, Réseaux sociaux, fournisseurs de sécurités, etc.). iOS ne permet pas d'étendre les fonctionnalités de l'OS. Windows Phone intègre lui-même les réseaux sociaux, mais impossible d'en plugger un nouveau si on n'est pas Microsoft. Du coups, Google Plus ils ne connaissent pas, hors d'une application web.
- Android diffuse les sources, ce qui permet à n'importe quel industrielle de proposer une version spécifique en 4 mois. Apple et Microsoft ne peuvent pas proposer de version pour les véhicules, les imprimantes, les lunettes de ski, les autoradios, les aquariums, les rétro-projecteurs, les rétro-viseurs, etc.

Point faible d'Android:
- Le pipeline de rafraîchissement de l'écran qui n'est pas toujours prioritaires ou rapide. Cela a entraîne des lags sur les versions post ICS. C'est le point fort de iOS qui s'occupe avant tous du feed back utilisateur, quitte à afficher une zone grise avant de la rafraîchir lorsque l'utilisateur a terminé son déplacement. Au final, c'est plus lent au total mais cela semble plus rapide.

Seul bémol pour toute les plateformes: Aucune ne gère le multi-session (plusieurs utilisateurs). Cela est génant pour les tablettes ou les TV connectées.

Rien n'a été remis en cause dans Android, sauf le pipeline graphique. Une vrai prouesse, lorsque l'on sait qu'Android a été conçu alors que l'iPhone n'existait pas. Les téléphones n'étaient pas ceux d'aujourd'hui.

Les autres plateformes doivent modifier en profondeur l'OS pour pouvoir proposer les mêmes services. Il y a de nombreuses applications présentes sous Android qu'il est rigoureusement impossible de proposer sous iOS ou Windows Phone. Ce n'est pas par une mauvaise volonté de Apple ou Microsoft. C'est dans l'ADN des OS.

Nous avons l'ADN d'un insecte (Windows Phone), d'un super chat siamois (iOS) ou d'un humain qui sort d'une cure de beauté (Android ICS). La métaphore est caricaturale, mais l'esprit est là.

Bravo à Andy Rubin et son équipe.

Philippe Prados
Wait while more posts are being loaded