Je disais récemment que je m'étais acheté un Android Developer Phone, c'est-à-dire essentiellement un HTC Dream (pour remplacer un HTC Touch donné par mon père, lui-même en remplacement d'un vieux Sagem my C-4 dont la touche flèche haut ne marchait plus). J'ai promis de dire ce que j'en pensais : voici quelques réflexions, donc, du point de vue de l'utilisateur lambda et aussi du geek.
Qu'est-ce qu'Android ?
Quelques mots sur le concept,
d'abord. Android,
c'est une plate-forme logicielle de téléphonie mobile écrite par un
consortium industriel qui
s'appelle Open
Handset Alliance
et qui en fait est surtout piloté par Google.
Il existe à l'heure actuelle essentiellement deux téléphones sous
cette plate-forme :
le HTC Dream,
également connu sous le nom de G1 (surtout tel que vendu
par
l'opérateur T-Mobile)
et dont le Android Developer Phone est une variante, et
le HTC Magic
(quasiment identique, mais sans clavier, avec une autonomie meilleure
et quelques petites différences sans importance). En France,
le HTC Dream est principalement vendu lié à des
abonnements de l'opérateur Orange, et le HTC Magic à des
abonnements SFR.
La plate-forme Android se défend d'être concurrente de
l'iPhone d'Apple,
elle prétend que son but est différent ; mais ne peut pas éviter la
comparaison (et de fait, celle-ci a été
menée ad
nauseam), d'autant plus que beaucoup de fonctionnalités des
téléphones ou de l'OS invitent à cette comparaison : 3G,
écran tactile, GPS, accéléromètre et appareil photo
intégrés, importance donnée aux applications
et leur achat par
un marché aux applications
ou application
store
, etc. Le principe qu'Android revendique, en revanche, c'est
d'être ouverte (ouverte au sens des logiciels libres et des
standards ouverts), et même si je vais expliquer ce qu'il faut mettre
comme bémols à ça, en gros, le système lui-même
est open source et ses interfaces sont
publiques. Ce qui est sûr, c'est que contrairement à l'iPhone, sur
lequel on ne peut en principe installer que des applications
autorisées par Apple[#], Android
permet à son utilisateur d'installer des applications qui ne viennent
pas du Android Market (il faut juste cocher
une case qui dit qu'on est conscient que c'est une Mauvaise Idée et
qu'on ne se plaindra pas si des démons se mettent à voler à travers
notre nez). Si l'iPhone tourne sur ce qui est essentiellement une
version minimaliste
de Mac OS X
et se programme
en Objective C,
Android utilise le
noyau Linux
(ce qui ne signifie pas qu'il ait grand-chose d'autre en commun avec
les Linux de bureau auxquels on est peut-être plus habitué) et les
applications sont écrites dans un sous-ensemble
de Java.
En quoi est-elle ouverte ?
Que la plate-forme Android soit ouverte ne signifie pas que les
téléphones le soient tous (c'est là ce que je vois comme une sorte de
première arnaque sur le mot ouvert
) : si vous achetez
un HTC Magic chez SFR (essentiellement ce
que mon poussinet a fait), vous avez un téléphone sous Linux mais vous
n'êtes
pas root
dessus — autrement dit, vous n'avez pas un contrôle complet
dessus. C'est sans doute normal dans l'idée de verrouiller le
téléphone à une carte SIM ou à un opérateur (ce qui
se fait à peu près toujours quand on l'achète avec un abonnement),
mais je soupçonne très fortement que, passés les six mois
réglementaires, l'opérateur vous donnera un code pour
déSIMlocker le téléphone et pas pour
passer root
. Il doit aussi y avoir une volonté des
opérateurs d'empêcher les gens d'utiliser leurs téléphones comme un
modem 3G/EDGE/GPRS (pour pouvoir leur
vendre des clés 3G séparément), ce qui implique évidemment de garder
un certain contrôle sur le téléphone aux dépens de son
propriétaire.
C'est pour ça que j'ai acheté un Android Developer Phone : c'est, justement, un téléphone sous Android et qui n'est pas du tout verrouillé — par exemple, on peut installer une nouvelle version d'Android sans qu'elle ait été signée (ou, du coup, quelque chose qui serait complètement différent d'Android, si on veut), chose qu'on ne peut pas faire sur un téléphone verrouillé. Même si je n'ai pas spécialement l'intention de modifier l'OS lui-même, comme je n'aime pas tellement l'idée que quelqu'un d'autre que moi contrôle mieux que moi ce qui se passe sur mon téléphone (ou ordinateur, ou n'importe quoi de ce genre), j'ai trouvé que ça valait la peine d'acheter un tel developer phone. (Il y a aussi, bien sûr, que je n'ai aucune sorte de point de fidélité chez un opérateur me permettant d'avoir un téléphone moins cher.) Je l'ai dit dans l'entrée précédente, le cours du dollar est assez bas par rapport à l'euro pour que, de toute façon, ce soit rentable[#2] ; et en plus, comme ça, j'ai un clavier qwerty, ce qui me plaît bien.
Ensuite, il faut voir que même si le téléphone est libre et n'est pas vraiment lié à Google de la même façon qu'un iPhone pourrait être lié à Apple, tout est quand même fait en sorte qu'il soit très (très) très fortement recommandé à l'utilisateur d'avoir un compte Google. Essentiellement la première chose qu'il fait quand on l'allume, en fait, après avoir demandé votre code PIN pour déverrouiller la carte SIM, c'est de vous prier de créer un compte Google ou vous logguer dessus, et il ne vous laisse pas aller plus loin sinon. (Et si on ne peut pas ou ne veut pas utiliser son abonnement téléphonique à ce stade-là, comme il refuse d'utiliser le Wifi pour ce premier enregistrement, on se sent un peu idiot.) En fait, on peut contourner la chose de différentes manières, y compris en mettant à jour Android[#3], mais c'est tout de même un début caractéristique. De même, le téléphone va avoir très fortement envie de synchroniser vos données de contacts avec votre compte Google : on peut le lui interdire, mais il faut y penser. (Évidemment, certains verront ça comme une feature intéressante, d'avoir un calendrier synchronisé avec les Google apps : personnellement je trouve l'idée plutôt irritante.) Et l'attitude désagréablement control freak de Google continue avec le marché aux applications : même s'ils sont loin d'être aussi possessifs d'Apple sur la plate-forme elle-même (comme je l'ai expliqué, on peut très bien installer ce qu'on veut sur son Android sans passer par ce marché), on constate quand même que le site Web du marché ne permet pas de télécharger quoi que ce soit, il faut passer par une application sur le téléphone (qui, pour sa part, n'est pas du tout open source !) ; du coup, comme les fonctions de recherche de ce truc sont nullissimes (et indignes de Google !), il est difficile d'avoir une vision claire des applications qui existent sous Android ; impossible, aussi, de savoir lesquelles sont elles-mêmes open source (on peut rechercher les applications gratuites, mais pas celles dont le code source est disponible).
Concernant le source du système lui-même, il est publiquement disponible (sous licence Apache), mais je n'ai pas encore bien réussi à comprendre ce qu'il recouvre exactement. (Par exemple, j'ai cherché la liste des mots du dictionnaire des complétions parce que j'envisageais de me compiler un dictionnaire mélangeant français et anglais, et je ne l'ai pas trouvée : je ne sais pas si c'est que j'ai mal cherché ou que le dictionnaire est ailleurs, ou qu'il n'est pas fourni dans les sources.) Disons qu'il y a assurément pas mal de choses, mais probablement pas tout, et certainement pas des choses comme le firmware radio (ne rêvons pas !).
Pour autant, si on exclut des trucs ésotériques ou vaporwaresques comme Openmoko, Android — sur un developer phone en tout cas — est indiscutablement ce qu'on peut avoir de plus ouvert et libre comme modèle de téléphone sur le marché actuellement. Je m'en contente donc.
Le matériel
Parlons un peu du téléphone lui-même.
D'abord, il y a l'écran tactile. Si je comprends bien, il existe essentiellement deux technologies d'écrans tactiles : les résistifs, qui réagissent à la pression, et les capacitifs, qui réagissent à la conductivité du doigt. Les résistifs sont moins précis quand on les utilise avec le doigt, mais on peut se servir d'un stylet : le HTC Touch que j'ai utilisé brièvement était de cette sorte, et je dois dire que j'aimais bien le stylet (qui se logeait commodément dans un coin du mobile). Le nouveau HTC Dream dont je parle, comme l'iPhone, a pour sa part un écran tactile capacitif : je n'aime pas trop ça, parce qu'on ne peut pas utiliser de stylet (ou alors il faudrait un stylet conducteur, et par ailleurs ils n'ont pas prévu d'endroit où en ranger un), et avec les doigts on laisse de vilaines traces de graisse partout. Surtout qu'on utilise tout le temps des défilements sur toute la largeur de l'écran : du coup, il faut régulièrement passer un chiffon, je trouve ça assez idiot. Je ne comprends pas ce choix : les écrans résistifs me paraissaient bien mieux (et c'est une des très rares choses que je préférais sur le HTC Touch) — mais j'imagine que beaucoup de gens préfèrent les capacitifs sinon Apple n'aurait pas choisi ça pour l'iPhone. À part le problème des dépôts de graisse, d'ailleurs, je peux me plaindre que je ne trouve pas les écrans tactiles terriblement agréables à utiliser (parfois on les touche sans le vouloir, parfois au contraire on les lâche sans le vouloir).
On peut aussi utiliser le téléphone avec une sorte de petite trackball située en bas de l'écran, mais d'une part c'est malpratique et d'autre part elle n'a pas l'air de permettre de tout faire (dans l'application calculatrice, par exemple, je ne sais pas activer les touches avec la trackball seule). Sinon, il y a cinq touches en bas du téléphone pour accéder à des fonctions essentielles (décrocher, raccrocher/éteindre, revenir à l'écran de base, revenir à l'écran précédent, et appeler un menu contextuel) ; le HTC Magic a aussi une touche de recherche (pas très utile, je pense), mais le Dream a, de toute façon, un clavier 48 touches caché derrière l'écran qui contient notamment cette touche : on peut évidemment toujours se dispenser d'utiliser ce clavier et utiliser l'écran tactile à la place (en revanche, les cinq boutons de fonctions essentielles n'ont pas d'équivalent sur l'écran tactile).
L'appareil dans son ensemble est très encombrant. Autant le HTC Magic (je peux juger parce que mon poussinet en a un) est d'une taille tout à fait acceptable, autant la présence du clavier escamotable du Dream le rend beaucoup plus épais, ce qui est gênant. D'un autre côté, l'existence d'un vrai clavier n'est pas sans intérêt pour, par exemple, taper des SMS.
Je ne peux pas trop juger de la qualité des antennes GSM/UMTS, Wifi ou GPS : je constate juste, empiriquement, que je capte le réseau GSM à des endroits (du genre, sous-sols) où je ne captais pas avec mon vieux téléphone, que pour le Wifi je n'ai eu aucun problème particulier, et que pour le GPS il semble obtenir plus facilement les éphémérides des satellites qu'avec mon GPS Garmin : mais ces impressions n'ont aucune valeur scientifique. Je n'ai pas non plus grand-chose à dire sur les écouteurs fournis (je n'écoute jamais de musique hors de chez moi, donc la fonction baladeur numérique du téléphone m'intéresse extrêmement peu ; sinon, comme oreillette pour téléphoner, bah, ça fonctionne). Il paraît qu'on peut connecter une oreillette par Bluetooth, je n'ai pas essayé.
L'appareil photo intégré est assez mauvais : pour l'instant, toutes les photos que j'ai prises sont floues (d'un autre côté, quand on voit la facilité avec laquelle on met ses doigts plein de graisse sur l'objectif, ça ne m'étonne pas tant que ça). Il y a un autofocus, mais pas de zoom optique, et évidemment pas de flash. Mais bon, à vrai dire, l'utilité d'avoir un appareil photo dans un téléphone ne m'a jamais semblé fulgurante.
Au niveau stockage externe, il y a un compartiment pour une puce
micro-SD : le developer phone vient avec une de 1Go, ce
qui me semble amplement suffisant. En revanche, il faut dire que
beaucoup de choses, notamment justement le compartiment à
micro-SD et le cache qui protège le
port USB, et peut-être de façon plus gênante la connexion
entre le clavier escamotable et l'écran, sont des petits bouts de
plastique qui ont l'air de crier très fort coucou, j'ai l'intention
de me casser dans les cinq prochains jours
. On verra bien. Je
n'ai pas encore acheté de housse protectrice adaptée
au HTC Dream (en attendant, je continue à utiliser celle
du HTC Touch, qui est trop petite).
Enfin, la batterie du developer phone est complètement nulle. Je ne sais pas si c'est aussi le cas de celles vendues avec les HTC Dream et Magic dans le commerce. Ça ne me gêne pas outre mesure de recharger mon téléphone une nuit sur deux (surtout que de toute façon je le branche très souvent par USB pour faire joujou avec depuis l'ordinateur), mais, comme je le disais, le petit cache en plastique qui protège le port USB, je crois qu'il ne tiendra pas longtemps.
Je devrais aussi signaler que, ce matin, le téléphone refusait de fonctionner ou de s'allumer : je me suis dit que la batterie s'était déchargée, mais brancher un câble pour la recharger ne produisait aucun effet. Par contre, enlever la batterie et la replacer a fonctionné : et elle prétendait être toujours chargée à peu près complètement, donc ce n'était pas qu'elle était déchargée, plutôt un faux contact ou un plantage de très bas niveau. Dans les deux cas ça inspire assez peu confiance.
L'interface
Déjà, soulignons que ceux qui veulent tester à
quoi ressemble l'interface utilisateur d'Android peuvent le faire en
utilisant un émulateur qui est fourni avec
le SDK :
sur un Intel sous un Linux, par exemple, il vous suffit de décompacter
le fichier android-sdk-linux_x86-1.5_r2.zip
fourni,
ajouter .../android-sdk-linux_x86-1.5_r2/tools
dans
votre $PATH
, puis lancer android create avd -t 3 -n
Test
(une seule fois, pour créer un téléphone virtuel
appelé Test
) et ensuite emulator -avd Test
(pour
démarrer ce téléphone virtuel). C'est très lent (beaucoup plus qu'un
vrai téléphone même sur une machine raisonnablement puissante : il
faut croire que l'émulation ARM sur Intel n'est pas
terrible), et l'environnement logiciel n'est pas exactement
identique à ce qu'on trouvera sur un vrai
téléphone[#4], mais ça permet de
se faire une idée. Évidemment, ce truc est prévu pour permettre de
tester les applications qu'on développerait pour Android, pas vraiment
pour jouer avec le téléphone, et évidemment on ne pourra pas passer de
coups de fil ou quoi que ce soit (si on le fait, il prétend que
l'interlocuteur décroche mais reste silencieux), donc l'expérience est
limitée. Mais par exemple on peut regarder comment fonctionne le
navigateur Web (qui, lui, fonctionnera si la machine hôte a une
connexion réseau : c'est la magie
de Qemu).
Globalement, je trouve l'interface assez agréable et ergonomique : c'est visuellement joli, on comprend assez bien ce que font les choses proposées, et une fois qu'on a commencé à s'en servir on arrive à faire rapidement ce qu'on veut. Il est vrai que je n'ai guère d'expérience avec des téléphones modernes pour pouvoir comparer, mais j'ai l'impression que le tout est assez bien pensé.
L'écran de base (home), auquel on accède en appuyant sur la touche dont l'icône est une maison, est un triptyque : normalement on en voit la partie centrale, mais il y a un bout à gauche et un bout à droite où on peut aller en faisant défiler avec le doigt dans un sens ou dans l'autre. C'est la partie la plus facilement personnalisable : en changeant l'image de fond, bien sûr, mais aussi en garnissant cette page de racourcis vers les applications ou les contacts dont on a le plus souvent besoin, ou encore avec quelques widgets disponibles pour l'agrémenter (comme une horloge analogique qui a quelque chose de sympathiquement surréaliste). Cet écran de base contribue beaucoup à l'ergonomie de l'interface. En-dessous, on a un onglet qui permet d'accéder aux applications, et sinon la touche menu permet d'effectuer des réglages et paramétrages.
Une autre chose très agréable, c'est le système de notifications : quand une application veut signaler quelque chose à l'utilisateur (par exemple un SMS reçu, un appel manqué, que sais-je), elle inscrit une notification dans la liste des messages qu'on peut dérouler de façon très commode depuis le haut de l'écran (la barre d'état, où l'application fera aussi afficher une petite icône). Et quand on touche la notification, on accède immédiatement à l'application qui l'a envoyée. C'est vraiment commode et intuitif.
Ce que je reprocherai principalement à l'interface, c'est un certain manque de cohérence ; par exemple, parfois la touche entrée sur le clavier confirme une sélection et parfois elle passe juste le curseur à la ligne ; la touche retour annule généralement ce qu'on faisait, mais quand on modifie un contact elle enregistre les modifications (il faut cliquer sur le bouton cancel en bas de l'écran pour annuler) ; parfois un clavier apparaît sur l'écran dès qu'on est dans un champ où on peut entrer du texte, mais pas systématiquement (parfois on peut en faire apparaître un en gardant longtemps la touche menu appuyée, mais parfois il faut sélectionner quelque chose avec la trackball ou encore autre chose). Parfois cliquer longuement sur quelque chose fait apparaître une sorte de menu conceptuel — mais parfois pas, alors qu'on l'attendrait.
De même, le concept d'application qui tourne en tâche de fond (=arrière-plan), qui est pourtant souvent signalé comme un avantage d'Android sur l'iPhone, est un peu perturbant : on ne sait pas exactement ce qui tourne comme ça, ni ce que les applications ont le droit de faire quand elles y sont, ni dans quelle mesure relancer l'application va faire revenir ce qui était en arrière-plan ou quoi. Par exemple, si je lance le navigateur sur une page qui demande à être rafraîchie périodiquement, et que je reviens à l'écran de base, le navigateur est-il fermé ? la page continue-t-elle à être rafraîchie régulièrement ? je n'en sais rien et ce n'est pas clair (et c'est une question passablement importante quand on n'a pas un forfait Internet illimité !). Comme je remarque que mettre en arrière-plan une application GPS fait disparaître l'icône indiquant l'activité du GPS, j'imagine qu'elle n'a plus le droit de s'en servir quand elle est en tâche de fond, mais j'aimerais en savoir plus.
Pour donner un exemple plus précis sur ce que je pense de l'interface, je peux évoquer l'application qui fait la gestion des contacts (c'est une de celles qui viennent avec le système, évidemment). Globalement je la trouve très agréable : la liste des derniers appels passés est clairement et lisiblement présentée, on accède rapidement à la liste de tous les contacts triés par ordre alphabétique (où faire une recherche est très simple), ou bien aux numéros les plus souvent appelés et/ou marqués comme contacts importants. On peut éditer les contacts pour mettre, par exemple, une petite photo de la personne ou une sonnerie particulière, ou ajouter une note ou enregistrer une adresse postale, ce genre de choses. (Je me doute bien qu'à peu près tous les téléphones permettent maintenant ça.) Et si on n'interdit pas au téléphone de le faire, toutes ces informations seront synchronisés avec son compte Google associé. Mais il y a quelques désagréments : pas de vrais groupes de contacts (ou alors il faut passer par le compte Google, justement), donc pas de façon commode, par exemple, de changer la sonnerie affectée à tous ses amis (et d'ailleurs, pour commencer, pas de façon d'affecter une sonnerie à tous les contacts connus). Pas non plus de façon de copier une photo d'un contact à un autre (il faut reprendre la photo dont on est parti, et refaire une sélection dessus — pour les maniaques comme moi qui voudraient exactement la même photo sur deux contacts, c'est irritant).
Quand on passe un coup de fil, faire apparaître le pavé permettant de taper des chiffres (ce qui est utile quand on parle à un serveur vocal) n'est pas aussi facile qu'on pourrait le vouloir (d'un autre côté, c'est un peu une fatalité avec les téléphones à écran tactile : si on met l'écran tactile contre sa joue, on risque effectivement de taper dessus involontairement). Quand on envoie des SMS, il ne semble pas y avoir moyen de faire en sorte qu'il demande confirmation avant d'envoyer (j'aime bien être forcé de me relire avant l'envoi) ; en revanche, la présentation de l'historique des SMS échangés avec une personne, comme un fil de discussion, est plutôt agréable.
Au final, je pense que l'utilisation du téléphone est suffisamment naturelle et intuitive pour qu'on puisse recommander Android aux gens pas du tout geeks ou tech-savvy — ma maman, par exemple. (En revanche, ils auront peut-être besoin de quelques explications sur les principes de tarification de leur opérateur pour les connexions de données, et sur la différence entre les réseaux 3G, EDGE et GPRS — ceci, évidemment, n'a rien à voir avec Android spécifiquement.)
Les applications
Le téléphone vient avec quelques applications basiques : outre, évidemment, celle qui permet de téléphoner, la gestion des contacts et celle des messages (genre SMS) et les préférences système, il y a de quoi prendre des photos et des vidéos, un baladeur musical, un tout petit truc de gestion des photos, un navigateur web, un logiciel de mail, une calculatrice, un réveil, un calendrier (synchronisable avec celui du compte Google). Et bien sûr, comme Google est Google, une application pour consulter Google maps (en se positionnant au GPS), une autre pour regarder YouTube, une pour utiliser Gmail, une pour Google Talk, et évidemment l'application de marché aux applications. Je dois encore oublier une ou deux applications pour composer un numéro de téléphone ou faire une recherche Google avec la voix (le genre de gadgets qui fait vraiment — euh, gadget, justement). Par contre, il n'y a pas d'éditeur de texte ni de gestionnaire de fichiers, ce qui est tout de même dommage (on en trouve plein sur le marché, mais je soupçonne très fortement qu'ils sont mal intégrés à la plate-forme dans son ensemble).
Le marché aux applications est un joyeux bordel, presque pas trié,
et les possibilités de recherche sont nulles. (Imaginez une sorte de
YouTube avec douze applications lampe de poche
— ce qui
doit juste vouloir dire que l'écran devient blanc — et cinquante
calculatrices, et tout ça avec juste une fonction de recherche
basique, par mots.) J'ai déjà signalé qu'on ne pouvait
essentiellement pas y accéder depuis un navigateur web normal
(autrement que depuis un téléphone, quoi), même pas pour faire des
recherches, ce qui est tout de même indiciblement crétin. J'ai aussi
déjà signalé qu'il n'y avait pas moyen de rechercher les
applications open source — or c'est
un des critères qui me paraissent les plus importants parce que je
veux avoir autant que possible l'option de corriger les choses qui
m'agaceront dans les applications que j'utiliserai (je ne veux pas
risquer de commencer à utiliser un truc que je trouverai bien et me
rendre compte ensuite qu'il a un défaut qui m'agace et être dans
l'impossibilité de le réparer). Finalement, pour chercher des
applications open source, il vaut
mieux chercher
autrement.
Pour l'instant, je n'ai quasiment rien installé : juste un client SSH (ConnectBot), deux-trois application de démonstration qui venaient avec le SDK (une pour prendre des notes très simples, et un jeu de snake minimaliste) et une seule application téléchargée avec le marché, un truc qui sert à afficher l'état du GPS et la position des satellites. Il y a quelques choses que j'aurais éventuellement envie de coder moi-même, comme une gestion des contacts un peu moins primitive, ou une calculatrice polonaise inversée (quelqu'un avait déjà tenté ça, mais ça n'a plus l'air de compiler).
Les geekitudes
Le SDK Android contient un programme
appelé adb
(pour Android Debug
Bridge
) qui est une sorte de couteau suisse permettant de faire un
nombre incroyable de choses avec le téléphone (via un
câble USB, a priori ; mais le même programme permet de
faire des choses avec des téléphones virtuels tournant dans
l'émulateur). À commencer par obtenir
un shell. Sur
un téléphone non developer, ce shell ne permettra pas de faire
grand-chose, parce qu'il n'y a à peu près rien d'installer et qu'on ne
peut pas passer root. Sur mon developer phone, je peux accéder, par
exemple, aux bases de
données SQLite
utilisées par les différentes applications. Je m'en suis notamment
servi pour faire quelques modifications dans mes contacts qui étaient
plus commodes en SQL qu'en passant par l'application
normale (comme changer la sonnerie de tous ceux qui avaient une
certaine sonnerie, ou donner à deux contacts exactement la même
photo) ; bien sûr, j'aurais aussi pu écrire une application pour ça
(ça m'aurait évité d'angoisser sur la façon dont SQLite
gérerait les accès concurrents ou comment ça interagirait avec la
synchronisation Google). Il semble qu'il y ait aussi moyen
d'utiliser adb
pour fournir un accès réseau au téléphone
depuis un ordinateur, ou bien le contraire ; mais je n'ai pas
vérifié.
Je n'ai pas encore essayé de coder quoi que ce soit (à part trivialement compiler des choses déjà écrites et les mettre sur le téléphone pour voir si elles tournaient), mais il semble que ce soit plutôt agréable (et les gens d'Ubuntu travaillent à rendre la chose encore plus agréable pour les Linuxiens). Pour en savoir plus sur la plate-forme en général, du point de vue du développeur et des choix techniques (comme la raison d'utiliser Dalvik plutôt qu'une JVM plus standard, ou le système de message-passing), cet article n'est pas mal.
Dans le genre petit détail bizarre, je peux remarquer que bien que l'appareil incorpore un GPS, il n'a pas l'air capable de se mettre à l'heure par GPS : c'est assez absurde, parce que c'est la source de temps la plus précise imaginable à moins d'avoir une horloge atomique (c'est un peu encombrant donc je ne crois pas qu'on aura ça dans des téléphones trop rapidement). Il est capable de prendre l'heure par le réseau 3G, en revanche, mais d'une part ce n'est pas très précis (j'ai observé quelques secondes de retard sur le réseau Bouygues, ce qui est certes assez acceptable pour quelqu'un qui n'est pas comme moi un maniaque de l'heure exacte) et d'autre part, surtout, ce n'est pas toujours disponible (mon poussinet chez SFR n'a pas encore accès à la 3G pour des raisons un peu compliquées, et son téléphone ne se met pas à l'heure). De même, quand on a accès à un Wifi, le téléphone ne va pas interroger NTP — mais là c'est plus raisonnable que de ne pas interroger le GPS.
Un mot sur les réseaux de données
Ce qui suit n'a rien à voir avec Android spécifiquement, mais comme
je trouve que c'est globalement mal expliqué partout, je vais en dire
un mot (tout se trouve sur Wikipédia, évidemment, mais sur Wikipédia
il y a comme souvent trop d'information, de sorte qu'on ne
sait plus très bien ce qui est pertinent et ce qui ne l'est pas). Le
réseau de base de téléphonie mobile déployé actuellement s'appelle
le GSM, ou
réseau 2G au sens strict : il sert à véhiculer des communications
vocales (et des SMS, en utilisant un mécanisme
initialement prévu pour des messages d'infrastructure). Pour faire
passer des données sur du GSM (donc, typiquement, pour
avoir un accès Internet), il faut utiliser une connexion de
type CSD
qui, en gros, fonctionne en passant un vrai appel vers un numéro
spécial ; on n'obtient ainsi qu'un débit de 9.6kbit/s, ce qui est
franchement mauvais (pour comparaison, les modems RTC sur
lignes fixes fonctionnent normalement en 56kbit/s), et de surcroît la
communication sera souvent facturée au temps plutôt qu'aux données
transférées (donc on ne veut pas resté connecté en permanence !). En
général, les connexions de données qu'on se retrouve à utiliser quand
on accède à Internet depuis un téléphone sont plutôt sur les
protocoles GPRS
(=2.5G), EDGE
(=2.75G) et, si on a un téléphone et une carte SIM
compatibles
3G, UMTS
(=3G)
voire HSDPA
(=3.5G), HSUPA
(=3.75G) et compagnie. Ces réseaux sont en ordre de débit croissant
(à partir de 56kbit/s pour GPRS et jusqu'à dans les
21Mbit/s pour UMTS) mais, du coup, aussi, de portée et de
disponibilité décroissantes. Les connexions GPRS
et EDGE sont des extensions du GSM en
ce sens qu'elles utilisent les mêmes fréquence, alors que les réseaux
3G utilisent des fréquences différentes. Du point de vue de
l'utilisateur, tout est assez transparent : il faut simplement donner
au téléphone un identifiant — l'APN —
permettant de se connecter au bon réseau de données (par exemple, pour
Bouygues en France c'est ebouygtel.com
), et le téléphone
sélectionnera le meilleur protocole disponible. Quelques gags sont
possibles, cependant : par exemple, il faut bien vérifier que
l'opérateur ne facture les connexions de
données GPRS/EDGE/3G qu'aux données
transférées et pas à la connexion, sinon il va y avoir un gros souci
avec un téléphone qui se connecte et se déconnecte sans arrêt (je
pense que tous les opérateurs facturent bien au volume de données dans
les formules standard, mais mon poussinet a conservé une formule très
ancienne chez SFR qui facture à la connexion, donc en
attendant d'en changer il doit interdire à son téléphone l'accès aux
connexions de données). Une autre chose que mon poussinet a remarquée
est que SFR n'a pas déployé le
protocole EDGE dans les zones de couverture 3G :
donc faute d'abonnement ou de carte SIM compatible
3G, il n'obtient que le débit GPRS dans ces zones, ce qui
est assez absurde.
Notes
[#] C'est évidemment contournable, mais pas forcément facilement, et ça peut poser des problèmes (voire, être interdit depuis que les lois délirantes sur la propriété intellectuelle ont fait qu'on n'est plus propriétaire de ce qu'on achète). Sinon, le choix fait par Apple des applications autorisées ou non est assez incohérent parce qu'ils sont complètement submergés par les candidatures (normal, ils ont quelque chose comme 35000 applications acceptées, et sans doute largement plus ont été refusées) : par exemple, ils avaient refusé une application permettant de lire les livres du projet Gutenberg sous prétexte que ce projet contenait une copie du Kāma-Sūtra ; cette application a fini par être acceptée, mais la façon dont son développeur en raconte la saga est intéressante.
[#2] Comptez quand même, par rapport au tarif annoncé de $399, quelque chose comme $45 pour la livraison et $95 pour les frais de douane. Plus les $25 (je crois) préalables pour avoir le droit de se dire développeur Android.
[#3] Le developer phone vient avec un Android 1.0 préinstallé : une des premières choses à faire, donc, est de passer à la 1.5.
[#4] Peut-être, justement, que l'émulateur n'a que ce qui est strictement open source (en tout cas, il n'a pas l'application du marché aux applications, et je remarque qu'il a une seule sonnerie, qu'il n'a pas de dictionnaire de mots…).