Dissection d’une application incontournable : Home.apk

 

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


Utilisez-vous Google News (Actualités en France) ? Vous pouvez suivre vos médias favoris. Suivez Frandroid sur Google News (et Numerama).

Les derniers articles