Sommaire
Introduction, installation directe d'environnements utilisateur sur le matériel
Ici, on parle d'installation d'un environnement utilisateur en usine ou par l'utilisateur, directement sur le matériel, sans passer par une couche d'émulation, compatibilité ou virtualisation.
Distributions de bureau classiques
Voyons - pour commencer, et à titre de comparaison - comment se compose très schématiquement une distribution « classique » pour ordinateur de bureau :
- Une architecture matérielle sur laquelle repose le système : très largement x86, mais il existe des machines ARM
- Un noyau : Linux ou BSD (ou autre…)
- Une couche applicative contenant une interface graphique et des applications : des daemons, une environnement de bureau GNOME ou KDE majoritairement (ou autres environnement, dont les nombreux forks)

Distributions Android
À l'image d'une distribution « classique » pour ordinateur de bureau, l'architecture d'Android se compose notamment et de manière très similaire des éléments suivants :
- Une architecture matérielle sur laquelle repose le système directement : ARM le plus souvent (mais il existe certains appareils x86 supportés via différentes initiatives évoquées ci-après)
- Un noyau : Linux
- Une couche applicative contenant une interface graphique et des applications : Dalvik ou ART (JVM simplifiées), un lanceur ou bureau, des services et applications
Une des particularités de la couche applicative d'Android concerne la machine virtuelle Dalvik ou ART sur laquelle repose la majeure partie des applications Android, et permettant d’exécuter des programmes écrits en Java.

Comparaison et possibilités
Ainsi, nous pouvons considérer les distributions CyanogenMod, AOKP, MIUI, Paranoid Android et Omni ROM comme des distributions « classiques » de bureau au même titre qu'Ubuntu, Fedora, OpenSUSE, Debian, FreeBSD, et al. Par conséquent, il serait techniquement possible de :
- porter une distribution Android sur d'autres matériels ;
- porter, émuler ou virtualiser la machine virtuelle Dalvik sur d'autres noyaux et matériels ;
- porter ou émuler les services et applications Android sur d'autres OS.
Différentes solutions de bureau
Les environnements de bureau et mobiles sont différents par nature, de par la taille d'écran évidemment, mais également l'interface utilisateur multi-tactile contre interfaces physiques (clavier, souris et trackpad), ainsi que le système graphique utilisateur (fenêtres, notifications, magasins d'applications, etc.).
Émulateur Android
L'émulateur Android, qui est livré avec le SDK, tourne sous Linux/BSD, Mac OS X et Windows. C'est libre, développé et maintenu par Google. Il est critiqué pour être assez lourd et assez peu flexible. La plupart des développements utilisent cet émulateur. Il présente un dessin d'appareil afin de plonger l'utilisateur un peu plus dans son environnement.

Android-x86 et AndroVM (Buildroid)
Le projet Android-x86 - comme son nom l'indique - porte Android sur un matériel de type x86. AndroVM (ex-Buildroid) est une distribution Android permettant de faire tourner Android sur VirtualBox (ou autre outil de virtualisation), devenue genymotion Cela a un certain nombre d'avantages par rapport à un Android-x86 installé directement sur le matériel, ou bien même sur l'émulateur Android venant avec le SDK : il est bien plus flexible et permet par exemple des automatisations plus poussées, comme les déploiements et tests. Il est également utilisé pour explorer à la main et faire des smoke tests (premiers tests) d'applications. L'intégration système n'est bien évidemment pas au rendez-vous, quelques astuces sont utilisées, comme l'intégration de la souris de VirtualBox, qui ne remplace pas le multi-tactile.

BlueStacks
BlueStacks a porté un environnement d'exécution Android sur Mac OS X et Windows, sur du matériel x86. Ce qui permet d'avoir des applications Android sur une machine classique, mais dans un environnement spécifique, donc un peu comme VirtualBox, mais spécialisé sur Android.
BlueStacks a également travaillé sa solution pour la rendre compatible avec Windows RT, donc sur ARM. Ainsi on peut faire tourner des applications Android sans traduction d'instructions.
BlueStacks est propriétaire. Il n'est pas souple du tout et est orienté utilisateur final, pas développeur/testeur. Il souffre d'une mauvaise intégration système, bien que plus spécifique donc plus poussé qu'un AndrodVM/Genymotion virtualisé. Sans doute utile aux smoke tests, et bien évidement pour utiliser tant que faire se peut des applications Android non-multi-plateformes.

Windroy (ex-WindowsAndroid)
Similaire à BlueStacks, Windroy est très graphique : c'est Android optimisé sur noyau Windows, pas sur une machine virtuelle. Cela permet de tester des applications gourmandes, y compris en ressources graphiques.
Différentes solutions mobiles
BlackBerry 10
Le tout nouveau système d'exploitation mobile BlackBerry 10 (BB10), qui repose sur un noyau QNX, donc Unix-like et surtout POSIX, propose un environnement d'exécution des applications Android compatible Android 2.3 Gingerbread sur ARM. Là, nous ne sommes plus sur une machine de bureau, mais sur un téléphone et une tablette.
BlackBerry 10 et son noyau QNX sont propriétaires, l'émulateur apparu avec la tablette BlackBerry PlayBook - soit bien avant BB10 - est propriétaire également. C'est supposé être la solution la mieux intégrée, elle souffre hélas de défauts de jeunesse et d'un manque certain d'intégration système, sachant que l'on est tout de même sur un environnement multi-tactile, son environnement « naturel ».
C'est une solution essentiellement mise en place par le constructeur dans le but de récupérer des applications rapidement des applications sur sa toute nouvelle plateforme. Il est alors juste nécessaire de refaire le packaging de l'applications pour qu'elle fonctionne potentiellement sous BlackBerry 10.
Le portage - théoriquement presque automatique - ne se fait pas sans heurt dans la pratique, et seules certaines applications passent véritablement bien sur la plateforme. Beaucoup de portages fonctionnent de façon dégradée et sont décriées par la communauté naissante BB10.
ACL : Application Compatibility Layer
Le produit Application Compatibility Layer (ACL) de OpenMobile, permet de faire tourner des applications Android sur :
- MeeGo
- Tizen
- Windows
- WebOS
- Ubuntu
Il s'agit ici de la machine virtuelle Dalvik d'Android qui est portée sur ces OS de bureau et mobiles. Ainsi OpenMobile clame 100 % de compatibilité et des performances natives. Pour être tout à fait honnête, les OS MeeGo, Tizen, webOS et Ubuntu sont tous basés sur le noyau Linux, comme Android. Attention, contrairement à ce que le nom OpenMobile pourrait laisser croire, il semblerait que le code source de ACL ne soit pas disponible.

Android-IA
Android-IA est le port fait par Intel d'Android sur architecture Intel mobile, son nom est "Android on Intel Architecture". C'est une sorte de continuité de Android-X86 par Intel, qui fournit de son côté un SDK et un émulateur, et contribue tant qu'il peut à AOSP (le code source d'Android, une fois livré par Google). Android-x86 se concentre plus sur le bureau
Les tablettes/laptops sur lesquelles tourne Android-IA sont pour le moment : Acer Iconia W700, Lenovo X220T, Lenovo X230T et Samsung XE700T qui sont toutes des solutions à base de HD Graphics 3000 (Sandy Bridge). Cela remplace le système pré-installé (produit par Redmond).
Infraware Polaris App Player
Polaris App Player semble mort. C'est une solution proche de ACL, se positionnant comme environnement d'exécution d'applications Android sur plateformes mobiles. C'est édité par Infraware, Inc., l'éditeur entre autre de Polaris Office.
Critiques
La plupart de ces solutions ont montré l'inconvénient de lenteurs notables, surtout lorsque les applications sollicitent les capacités graphiques de la machine, dû principalement à des couches logicielles intermédiaires, mais aussi à des traductions d'instructions machines. De plus, bien que cela arrive lentement, les machines de bureau ne sont majoritairement pas tactiles.
Le projet Butter de Google a apporté beaucoup d'optimisations graphiques dans Android 4.2 Jelly Bean et le projet Svelte des optimisations de consommations de ressources sur Android 4.4 pour les appareils faibles en puissance. Cela porte ses fruits sur les tablettes et smartphones Android, mais moins sur ces solutions tierces.
Au niveau de l'intégration système, ce n'est également pas la panacée. Cela est dû principalement à la nature des interfaces d'entrée : le multi-tactile contre clavier et souris.
Dans toutes ces solutions, vous trouverez peut-être votre bonheur, en fonction de votre utilisation, si vous n'êtes pas trop exigeants.
Et vous ?
Et vous, vous avez d'autres solutions innovantes dans vos cartons, garages et laboratoires pour faire tourner Android et/ou ses applications dans d'autres environnements ?