Ca fait maintenant quelques jours que la version m5 du kit de développement d’Android est sortie. il est donc grand temps de se pencher un peu plus en avant (sans toutefois tomber bien entendu) dans le cœur de ce qui est d’ores et déjà notre système d’exploitation favori (allez, avouons enfin s’être déjà demander si Android allait être porté sur x86 ! =).

J’ai choisi d’étudier Home.apk (id est le bureau) comme témoin des évolutions d’Android. En effet, cette application est la première à se lancer quand Android démarre. C’est donc elle qui donne à l’utilisateur le ton du système d’exploitation, à la fois en terme de design et d’ergonomie (et Dieu sait que c’est devenu important). C’est aussi en partie elle qui m’avait fait vous dire qu’Android n’était en rien définitif.

Home.apk

Voilà de quoi à l’air l’application Home.apk quand elle tourne : un fond d’écran, un menu, des raccourcis et une liste d’application déjà lancées (ici une seule : Maps.apk).

Depuis la précédente version du SDK, il y a eu un certain nombre de changement en matière de design. Jugez-en par vous-même :

Ca fait maintenant quelques jours que la version m5 du kit de développement d’Android est sortie. il est donc grand temps de se pencher un peu plus en avant (sans toutefois tomber bien entendu) dans le cœur de ce qui est d’ores et déjà notre système d’exploitation favori (allez, avouons enfin s’être déjà demander si Android allait être porté sur x86 ! =).

J’ai choisi d’étudier Home.apk (id est le bureau) comme témoin des évolutions d’Android. En effet, cette application est la première à se lancer quand Android démarre. C’est donc elle qui donne à l’utilisateur le ton du système d’exploitation, à la fois en terme de design et d’ergonomie (et Dieu sait que c’est devenu important). C’est aussi en partie elle qui m’avait fait vous dire qu’Android n’était en rien définitif.

précédente version d'android

C’est toute la philosophie du menu qui a été repensée.

Pour autant, sommes nous en présence du look’n’feel définitif ? Pour le savoir, rien de plus simple : mettons-nous dans la peau de l’utilisateur final. On a besoin d’esthétisme, de personnalisation, et de possibilités de configuration.

En matière d’esthétisme, force est de constater qu’il reste du progrès à faire même si une partie du chemin semble avoir déjà été arpentée.

La personnalisation quant à elle est souvent assurée par la possibilité de changer le fond d’écran au (strict) minimum par un des fonds proposés (ce qui était le cas avant) ou dans le meilleur des cas par un fond d’écran de son choix. Or dans notre cas, il semblerait que ce soit tout bonnement impossible :

changement de fond d’écran

Enfin, les options de configuration sont parfaitement absentes de cette application. Tout ceci doit nous laisser penser que rien n’est encore définitif.

Mais pourquoi changer de design et de comportement, si ce n’est pas pour nous montrer le design définitif ?

En effet, il est compréhensible d’avoir une ébauche fonctionnelle puis une version définitive d’un projet, et il peut arriver de les publier toutes les deux, mais en général, on ne publie pas les versions intermédiaires.

Pour comprendre les motivations de Google inc. il va falloir fouiller dans le cœur du système et murmurer à l’oreille du système de fichier par l’intermédiaire de lignes de commandes.

Commençons par démarrer l’émulateur en tapant ceci dans un terminal :
emulator -console

Une fois l’émulateur et Android démarrés, dans le terminal ouvrons un shell Android :
adb shell

A ce moment de la manipulation, Android devrait vous manifester de l’attention en vous répondant par un # bien intentionné dans votre terminal. il s’agit de l’invite de commande qui comme son nom l’indique vous invite à passer commande. Fort bien, demandons donc à notre serviteur ce qu’il nous propose :
cd /system/app puis
ls -l

Android devrait vous répondre ceci :
# ls -l
ls -l
-rw-r--r-- root root 6899 2008-02-12 01:10 GoogleAppsProvider.apk
-rw-r--r-- root root 31137 2008-02-12 01:10 MasfProxyService.apk
-rw-r--r-- root root 19909 2008-02-12 01:10 MediaProvider.apk
-rw-r--r-- root root 13658 2008-02-12 01:10 SettingsProvider.apk
-rw-r--r-- root root 24016 2008-02-12 01:10 TelephonyProvider.apk
-rw-r--r-- root root 22494 2008-02-12 01:09 ContactsProvider.apk
-rw-r--r-- root root 477842 2008-02-12 01:11 Browser.apk
-rw-r--r-- root root 115750 2008-02-12 01:11 Contacts.apk
-rw-r--r-- root root 99623 2008-02-12 01:11 Development.apk
-rw-r--r-- root root 8542 2008-02-12 01:11 Fallback.apk
-rw-r--r-- root root 6555 2008-02-12 01:11 GTalkSettings.apk
-rw-r--r-- root root 230116 2008-02-12 01:11 Home.apk
-rw-r--r-- root root 44891 2008-02-12 01:11 GoogleApps.apk
-rw-r--r-- root root 221523 2008-02-12 01:11 Maps.apk
-rw-r--r-- root root 448665 2008-02-12 01:11 Phone.apk
-rw-r--r-- root root 19390 2008-02-12 01:11 ImProvider.apk
-rw-r--r-- root root 175694 2008-02-12 01:11 gtalkservice.apk

Soit la liste des applications installées sur Android. Maintenant que nous savons où se trouve Home.apk, nous allons pouvoir le rapatrier sur notre ordinateur. Ouvrez un second terminal et demandez poliment :
adb pull /system/app/Home.apk est votre répertoire de destination pour y enregistrer Home.apk. Par exemple sous Vista, mettez c:\Users\lecteur_de_frandroid. Sous GNU/Linux, mettez /home/lecteur_de_frandroid.

Rendez vous dans le dossier où vous avez téléchargé l’application et ouvrez le .apk ainsi obtenu avec votre gestionnaire d’archive favori (sous Windows WinRar fera très bien l’affaire).

Vous devriez vous trouver en présence de 2 dossiers nommés res et META-INF et trois fichiers nommés resources.arsc (l’index des ressources de l’application), classes.dex (le point d’entrée dans le programme) et le fameux AndroidManifest.xml.

Plaçons-nous dans le dossier res qui correspond bien-sûr aux ressources du programmes et fouinons. L’une des premières choses que l’on trouve, ce sont les autres fond d’écrans disponibles (enfin disponibles … tout est relatif bien entendu) :

android sunriseandroid android

Mais l’on trouve aussi un dossier nommé anim contenant des animations de Home.apk que seule cette application utilise. En effet, les animations normalement disponibles avec Android sont déterminées dans /system/framework/framework-res.apk à l’intérieur duquel il faut aller dans le même dossier res/anim/.

Qu’est-ce que cela signifie ?

N’importe quel développeur peut ajouter à son applications des comportements de type animations qui ne sont pas originellement prévus dans Android.

Ceci nous conduit donc à répondre à la question précédemment posée à propos de l’intérêt de Google de publier un deuxième look’n’feel temporaire pour Android. Il s’agit en fait de montrer aux développeurs que le design, l’ergonomie et le comportement d’Android ne dépend pas de la volonté de Google mais bien de celle des développeurs. Cette deuxième version de Home.apk ne fait donc que montrer la voix, et il y a fort à parier que les sources de toutes les versions seront publiés avec tout le reste quand le temps sera venu.

Il est par ailleurs possible d’installer la précédente version de Home.apk sur le m5 si vous aviez conserver ce fichier.