Le 4 avril 2011

Il y a quelque chose qui ne va pas avec Android…


Il y a quelque chose qui ne va pas avec Android…

Android prend une place de plus en plus importante dans l’écosystème des gadgets électroniques. Pourtant, de nombreux problèmes sont apparus et demandent à être corrigés. Notre analyse.

Cet article est le second de la série « Il y a quelque chose qui ne va pas avec… », le premier étant consacré à Google Wave. Il dresse un bilan subjectif de ce qui ne fonctionne pas dans Android selon l’auteur et propose quelques pistes de reflexion pour les corriger. Vous êtes invité à laisser un commentaire si vous avez un avis sur la question.

Des téléphones, des tablettes, des lecteurs multimédias, des télévisions, des lecteurs Blu-Ray, des voitures, des notebooks… Android est partout. Peut être un peu trop, tout du moins trop vite. Plusieurs problèmes sérieux sont en train de nuire ou vont nuire dans un futur proche à Android, et certains membres de la communauté se posent de nombreuses questions quand à l’avenir du système d’exploitation « Open Source ».

1. Fragmentation

Officiellement, selon Google, il n’y a pas de fragmentation dans le monde d’Android. Pourtant, un simple tour dans le rayon électronique des magasins américains nous montre le contraire. Il existe actuellement 3 versions majeures différentes (branches) d’Android qui sont déployées et spécifiques à certains types d’appareils : 3.0 (honeycomb) est réservé aux tablettes ; 2.3 (Gingerbread) pour les téléphones et autres appareils ; et 2.1 (Éclair) pour Google TV. Ajoutez à cela les appareils vendus actuellement qui sont équipés de versions plus ou moins à jour comme 2.2 (Froyo) et les gadgets non mis à jour (1.6, qui tendent cependant à disparaitre) et vous obtenez un patchwork de versions. Ajoutez à cela le nombre d’appareils disponibles et de ROM alternatives (comme Cyanogen) et vous obtenez un magnifique patchwork numérique.

Le célèbre exemple de Tweetdeck et des appareils Android sur lequel il est installé.

Le célèbre exemple de Tweetdeck et des appareils Android sur lequel il est installé.

Android propose cependant de nombreuses astuces pour contourner ce problème. Tout d’abord, Android est rétro-compatible : une application fonctionnant sous 1.6 fonctionnera (en théorie et souvent en pratique) sur toutes les versions suivantes de la même manière. Dans l’autre sens, il est possible de rajouter des fonctionnalités de versions récentes (écriture de tag NFC de 2.3.3 par exemple) dans des applications qui pourront être installées sur des versions inférieures en adaptant légèrement son code. Les astuces et conseils sont même fournis par le blog officiel d’Android. Les développeurs sont cependant réputés pour être fainéants. D’un autre coté, lorsque Google annonce une nouvelle version d’Android, peu d’appareils sont mis à jour rapidement. Du coup les développeurs doivent choisir entre développer des applications pour le parc d’appareils déjà déployé ou pour le parc d’appareils à venir. De ce fait le nombre de « Killer App » (applications que la concurrence n’a pas et qui apportent une valeur ajoutée) est très faible sur Android, et se limite bien souvent aux applications Google (Gmail, Google Maps navigation…). Et Google TV ? Pour le moment le market n’est pas disponible pour installer les applications. Seuls quelques partenaires de Google ont accès au SDK pour développer des applications spécifiquement pour Google TV. Pour l’intercompatibilité, on repassera.

2. Android est libre (de ne pas être libre)

Android est un projet « Open Source » (code source libre), ce qui signifie selon wikipédia que tout le monde doit avoir « la possibilité de libre redistribution, l’accès au code source et aux travaux dérivés ». De ce fait, Google met à disposition de la communauté AOSP (Android Open Source Project), un regroupement du code source et de nombreuses ressources et documentations de toutes les versions d’Android. Toutes les versions ? Pas tout à fait. Prenons l’exemple de Chromium, le navigateur Open Source. Les développeurs (ou les curieux) souhaitants participer au développement ont accès en permanence à la toute dernière version (datant souvent de moins de quelques heures) du code. Pour Android, le fonctionnement est très différent. Google n’ouvre le code source d’une nouvelle version d’Android qu’après son annonce. Quand la communauté à accès à Android 2.1 par exemple, Google est déjà sur la version 2.2, et va récupérer les correctifs publiés sur 2.1 pour améliorer 2.2 avant sa sortie. Officiellement, ceci est du au fait que Google souhaite « surprendre » les clients et développeurs en évitant que les nouveautés de ses versions ne fuitent avant une annonce officielle. Ce culte du secret est une des recettes d’Apple par exemple. Cependant, est ce que cette politique est compatible avec le principe Open Source ? Le débat est toujours en cours.

Une autre annonce est source de tensions au sein de la communauté. Alors que Android 3.0 a été annoncé, et que plusieurs appareils en sont équipé, l’accès à son code a été retiré d’ASOP. Selon Google, cela vient du fait que plusieurs développeurs essayent d’adapter le code d’Honeycomb pour le rendre compatible avec des téléphones alors qu’il est prévu pour des tablettes. Cette « bidouille » est très mal vue par Google qui dit qu’Honeycomb est fait uniquement pour les tablettes et rien d’autre. D’un autre coté c’est tout l’intérêt du monde du libre : si ça ne vous plait pas et que vous savez coder, modifiez le vous-même. Google ne souhaitant pas voir cette adaptation faite, fermeture du code et puis c’est tout. Réaction puérile (« c’est mon jouet ») et risquée (des développeurs pourraient attaquer Google sur le caractère ouvert d’Android).

Rayures d'abeille ou tenue de prisonnier ?

Rayures d'abeille ou tenue de prisonnier ?

Autre point : Qu’est-ce qui est libre dans Android ? La question mérite d’être posée car tout n’est pas simple. Ce qui caractérise Android aujourd’hui c’est principalement ses applications (et donc le market). Or, si l’on compile soi-même AOSP, le résultat pourra se révéler décevant. Les seules applications disponibles seront une calculatrice, une horloge, un gestionnaire de contact, un client pour les mails, l’application de téléphonie, de messagerie ainsi que le navigateur web (et quelques autres selon la version d’AOSP). Oubliez Gmail, Google Maps et autres Market : ces applications sont la propriété de Google (non libres) et ne peuvent être installées que si Google approuve votre utilisation du code d’Android. Toute autre utilisation est illégale. En théorie, lorsque vous installez une version Open Source d’Android sur votre appareil, vous perdez l’accès à toutes ces applications. C’est pour cette raison qu’Amazon a lancé son propre Market, afin de proposer une alternative aux appareils privés d’Android Market officiel. Ce que l’on peut reprocher à Google c’est de jouer sur la limite entre code Open Source et code propriétaire dans son système.

3. Les mises à jour critiques

Lorsqu’une mise à jour est proposée pour un téléphone, qui participe au processus ? Google est premier acteur majeur, en fournissant le code. HTC ensuite en offrant une mise à jour des ses applications et de son interface (Sense) ainsi que des pilotes matériels. Puis les opérateurs de téléphonie, qui souhaitent contrôler que le résultat respecte les normes de leurs réseaux (et ajoutent éventuellement leur grain de sel dans l’interface et les applications). Une mise à jour doit donc passer par ces 3 acteurs avant d’arriver jusqu’à l’utilisateur final. À titre de comparaison, quand Apple souhaite mettre à jour iOS, il n’y a pas d’intermédiaire entre lui et le client final. Ce problème est parfois très frustrant pour le consommateur puisqu’il a l’impression de ne pas être pris en considération après l’acte d’achat. Les téléphones sont donc souvent logiciellement dépassés lors de leur lancement. Et le support est abandonné après 6 mois. Et que se passe-t-il lorsque les mises à jours sont critiques (pour corriger un bug de l’application de messagerie par exemple) ? Rien, sauf si vous avez un téléphone récent et dont le support est actif.

Propositions de solutions

Que faire pour corriger ces points qui entachent la réputation d’Android ? Google devrait réagir rapidement, car la concurrence est rude. Voici quelques propositions :

  1. Fusionner les 3 branches d’Android en une seule : Google TV, Tablettes et Téléphones seraient alors basés sur un même code, et ce code pourrait alors être disponible aux développeurs à tout moment, avec une roadmap bien définie. le coeur d’Android c’est quoi ? Techniquement c’est le noyau Linux accompagné des machines virtuelles Dalvik.
  2. Retirer l’interface graphique du code AOSP : La principale application gérant l’interface utilisateur est le « launcher » (lanceur) d’applications. C’est lui qui gère les bureaux, le lancement d’applications, les widgets etc. En retirant cette application et les autres gérant l’interface graphique, Android serait plus simple à mettre à jour et à personnaliser par les acteurs qui le souhaitent. Une mise à jour du coeur d’Android ne pourrait pas être bloquée par un refus d’un autre acteur de mettre à jour son interface. De plus, Google pourrait alors travailler sur son interface graphique et la décliner en autant de versions qu’il le souhaite, sans bloquer le développement d’Android. Enfin l’utilisateur serait libre de choisir l’experience de son choix, celle de Google, celle de HTC ou tout autre.
  3. Retirer toutes les applications du code AOSP : De la même manière, retirer toutes les applications du code AOSP permettrait au projet Android de se recentrer sur le coeur du système et faciliterait les mises à jour. Les applications actuellement dans AOSP seraient alors récupérées par la communauté.
  4. Créer un Système de mise à jour/Market alternatif pour la partie Open Source : C’est la contre-partie des points 2 et 3. Ce Market Open Source permettrait de gérer les mises à jours du coeur d’Android et des applications actuellement dans AOSP, ainsi que de toute application que la communauté déciderait de développer, et ce de manière individuelle. Une faille est repérée dans l’application de téléphonie ? On met à jour cette application uniquement, et tous les appareils reçoivent cette mise à jour. La communauté a amélioré le navigateur de façon majeure ? Tout le monde peut l’obtenir ! Une mise à jour de sécurité urgente apparait ? Tout le monde peut l’installer.
  5. Donner le même statut aux applications installées par défaut et à celle téléchargées : Actuellement, si un téléphone est livré avec l’application X qui prend 40 Mio et que vous ne l’utilisez jamais, il n’est pas possible de la désinstaller sans manipulations avancées. Hormis pour les applications systèmes, cette distinction n’a pas lieu d’être. La philosophie d’Android c’est d’avoir le choix, non ?
  6. Laisser à Google le choix de distribuer ses applications propriétaires : Le code de Google appartient à Google, Google peut donc choisir les appareils pouvant accéder à l’Android Market, Gmail et autres.  Mais tous les appareils ont accès au Market du point 4, contenant mise à jours critiques et applications de base.

Au final, on obtiendrait un système libre similaire à Ubuntu, controlé par une entreprise commerciale (Canonical) : un gestionnaire pour les mises à jours de sécurité et majeures (similaire à apt-get), une interface graphique au choix (Gnome, KDE, enlightenment…), l’accès à des applications payantes et non libres si on le souhaite (Ubuntu Software Center), et le contrôle sur ce que l’on installe ou non. Le chemin est long pour y arriver, mais ce serait une réelle révolution dans le domaine gadgets électroniques actuellement très verrouillé.

Publié le 4 avril 2011 à 11:17 par dans Il y a quelque chose qui ne va pas...

Labels : , , , ,

16 commentaires

  1. eeeoui a dit :

    « Fusionner les 3 branches d’Android en une seule » : Apparemment c’est bien l’objectif d’Ice Cream Sandwich.

    Réponse en mai, et je pense qu’avec cette version, Android va de nouveau renaître.

  2. Luka a dit :

    Les rumeurs disent oui, mais Google est bien muet.

  3. wumps13 a dit :

    la version 2.3 est sortie en décembre sur le nexus s et à ce jour début avril 11 on ne trouve toujours aucun téléphone sur le marché à par le nexus ayant cette version !

    Ok ça arrive mais il aura fallu presque 4 mois d’attente ce qui fait assez long d’autant plus que la 2.4 ou un autre numéro ne doit pas être très loin !

    Pour le market c’est un joli foutoir ! ça s’améliore disons mais par rapport à l’organisation de l’appstore y’a du boulot !

  4. omnë a dit :

    Superbe ! On espère que M. Google lit zorgloob…

  5. Luka a dit :

    @wumps13 Il y a le Xperia Play (PSP phone) de Sony Erricson qui tourne sous Gingerbread depuis quelques jours.

  6. Pauland a dit :

    En effet, Ice Cream devrait être la version qui réunira les 3 branches.

    Pour ce qui est de « délier » les apps du code AOSP, j’avais lu il y a quelques temps que c’était l’un des objectifs de google pour les prochaines versions d’android…

    Pour les mises à jours, moi je n’ai jamais compris pourquoi les opérateurs ont le droit de modifier les ROMs des appareils sous android, mais pas celles des appareils iOS, WM7… c’est vraiment la pire des plaies, car au delà des constructeurs (qui mettent à jours dans la majeurs partie des cas), les opérateurs bloquent complètement l’opération (le nexus one sfr n’a tjrs pas reçu Gingerbread si je ne m’abuse).

    Sinon, dans le point 6, « Mais tous les appareils ont accès au Market du point 5 […] » Du point 4 plutôt ?

    Sinon, bon article qui résume bien les prb actuels !

  7. Luka a dit :

    @Pauland : merci, je viens de corriger la coquille.

  8. Kerwan a dit :

    Tout à fait d’accord avec votre analyse.
    Sortir les applications et launcher de l’AOSP permettrait surement d’obtenir les mises à jours des constructeurs bien plus vite 😀 (après tout, le noyau, ils ne doivent pas y toucher normalement)

  9. Vincent LS a dit :

    Je possède un iPhone et je n’ai aucun appareil sous Android mais je m’intéresse à tout ça et j’ai quand même l’impression qu’Android est une immense usine à gaz destinée aux geeks, qui ont le temps et l’envie de se plonger dans tout ça pour comprendre…

    Avec l’iPhone, il suffit de le brancher à l’ordi pour avoir une mise à jour du logiciel. Résultat, presque tout le monde a la dernière version d’iOS, ce qui permet aux développeurs de concevoir des applications pour un système stable, sans se soucier de 17 versions différentes. Et iOS a ainsi plus d’applications, plus facilement mises à jour.

    Pareil pour les histoires de market alors que du côté d’Apple, il y a juste l’AppStore.

    Je comprends les critiques sur le monde très fermé d’Apple, mais pour avoir un système vraiment utilisable par tout le monde et pas seulement des gens hyper connaisseurs, c’est parfois nécessaire.

  10. Luka a dit :

    @Vincent LS : en fait Android fonctionne a peut près comme iOS mais avec beaucoup plus d’appareil et de choix. Apple fragmente aussi en ne donnant pas les memes fonctions à tous ses iDevices (un iPhone 1 n’a pas accès à iOS 4, le multitache ne marche pas sur le iPhone 3G…). Mon ipod touch 2G par exemple se voit refuser l’accès a de nombreuses applications. C’est juste qu’il y a moins d’appareils, donc moins d’impression de fragmentation. Donc non, tout n’est pas simple chez Apple non plus.

  11. Vincent LS a dit :

    @ Luka: La fragmentation chez Apple, c’est avec de vieux produits… S’ils empêchent l’iPhone 1 d’utiliser iOS4, c’est parce qu’il n’a pas les capacités matérielles de le faire. Les appareils actuellement en vente (iPhone 3GS, iPhone 4, iPod touch et iPad 2) lisent tous la même version.

    Chez Android, le problème existe avec les modèles déjà existants… Puissances différentes, résolutions d’écran différentes, au final certaines applications sont pas super efficaces sur certains appareils actuellement en vente.

    Le choix des appareils Android est sympa mais cette disparité est également un petit handicap pour les développeurs.

    D’ailleurs la disparité des versions d’iOS est beaucoup plus faibles sur les appareils iOS en circulation (peu de gens ont encore un iPhone de première génération, il date quand même de 2007…) que sur les Android

  12. waza_be a dit :

    Bonjour les amis. Vous ne semblez pas être au courant de ce qui se passe chez Google et vous apportez pas mal d’informations un peu fausses!

    N’importe qui qui achète un téléphone pur Google de la marque aura un terminal mis à jours beaucoup plus souvent qu’Apple. C’est effectivement facile avec un modèle unique! Et en plus, Vincent LS, pas besoin de le brancher comme ton iTunes, la mise à jour se fait via Wifi si tu ne désires pas le brancher à ton ordinateur. C’est encore plus simple.

    Alors évidemment, si on veut avoir le choix car on aime pas la couleur, on prend un Sony, un autre Samsung, un HTC, un Acer, Motorola et j’en passe. Et là effectivement, les mises à jours ne se font pas aussi facilement.

    Donc remettez les choses en place et comparerz un Nexus à un iPhone, modèle unique qui est mis à jour plus facilement et plus souvent! C’est incroyable de voir que si l’on ne laisse pas le choix aux gens, ils s’imaginent que leur produit est encore plus mis à jour ou mieux!

  13. Luka a dit :

    @Vincent LS : faudra en parler a mon iPod touch 1G qui ne sert plus à rien. Sinon concernant les applications, depuis 2.1, ça va beaucoup mieux. Tout est quasiment compatible. Du moins concernant les développeurs sérieux et qui souhaitent que leur application fonctionne… Exemple Angry birds Rio, sorti la semaine dernière, version requise d’Android : 1.6 et plus récente (donc tout le parc selon les stats officielles).

  14. mytos a dit :

    Freetards…

  15. CHARLIER a dit :

    Bonjour,

    pour preuve que ZorGloob est réputé pour ses articles, celui-ci est repris sur : Toolinux.

    A+

  16. romm1 a dit :

    Article très intéressant: je ne suis pas du tout un technicien mais je m’interesse davantage aux questions de stratégie dans cette guerre qui oppose ios à Android et nos analyses semblent se rejoindre : http://site-communautaire.blogspot.com/2011/04/android-iphone-os-ou-en-est-la.html?m=1