Un début de présentation d’Androïd

Nombreux sont les blogs qui ont parlé de la sortie d’Android, mais peu de blogs francophones ont réellement décrit en détail ce système.

Commençons par les généralités.

Android est un système d’exploitation édité par Google. Il s’agit en fait d’une distribution GNU/Linux spécialisée dans la téléphonie mobile. Ce produit répond à un profond manque dans le domaine des systèmes d’exploitations pour téléphones. En effet, aujourd’hui, le secteur compte 4 acteurs :

  • Windows CE, dont l’ergonomie est particulièrement désagréable (menu « démarrer » qui n’a pas sa place sur un téléphone)
  • Symbian, qui rame pour afficher un SMS …
  • Mac OS, réservé à l’iPhone
  • GNU/Linux, dont l’usage est anecdotique, plutôt brouillon et surtout dont il n’existe pas de distribution faisant l’unanimité

Google répond donc aux attentes du marché en proposant un système GNU/Linux fiable, rapide et ergonomique, tout en lui donnant dès le départ une image de marque qui va permettre à ce système de ne pas rentrer dans la catégorie « anecdotique ».

Ce système d’exploitation est livré avec un kit de développement et un framework qui permettent à n’importe quel développeur de créer facilement sa propre application (en Java) avec l’assurance de la voir fonctionner sur n’importe quel téléphone équipé d’Android.

Beaucoup de gens estiment que Google se repose du coup sur la communauté pour finir le travail. Ce n’est pas complètement faux, mais il ne faut pas oublier que Google donne aussi énormément à la communauté. En effet, l’intégralité d’Android est libre et peut donc être utilisé, modifié et redistribué librement.

L’ergonomie d’Android n’atteint pas le niveau de Mac Os sur l’iPhone, mais nous n’en sommes qu’à une version destinée aux développeurs. Il est donc fort possible que les premiers téléphones équipés d’Android ne ressemblent pas à l’interface actuelle que voici :

android gphone interface home

Et au téléphone :

android gphone interface téléphone

Passons maintenant aux caractéristiques techniques d’Android et de son kit de développement que je vais donner plus ou moins en vrac.

L’architecture du système :

android gphone architecture

La version du noyau est 2.5.23. L’émulateur proposé est un ARM9 (du grand classique …) de chez ARM.

Pour accéder à la console d’Android, il faut ouvrir un terminal, aller dans le répertoire du kit de développement, puis aller dans le dossier tools. Ensuite, lancer l’émulateur :

emulator -console

Puis dans un autre terminal :

adb shell

Si vous voulez télécharger des fichiers du ou vers le téléphone :

adb push <source> <dest>

et

adb pull <source> <dest>

Le système de fichier utilisé semble être yaffs et il y a apparamment de quoi faire un serveur NFS car Android embarque knfsd.

Liste des applications installées par défaut :

-rw-rr root     root       418687 2007-11-11 20:59 Browser.apk
-rw-rr root     root        68076 2007-11-11 20:59 Contacts.apk
-rw-rr root     root        25518 2007-11-11 20:59 ContactsProvider.apk
-rw-rr root     root        96286 2007-11-11 20:59 Development.apk
-rw-rr root     root         8636 2007-11-11 20:59 Fallback.apk
-rw-rr root     root        44789 2007-11-11 20:59 GoogleApps.apk
-rw-rr root     root         7543 2007-11-11 20:59 GoogleAppsProvider.apk
-rw-rr root     root        99430 2007-11-11 20:59 Home.apk
-rw-rr root     root        16197 2007-11-11 20:59 ImProvider.apk
-rw-rr root     root       171613 2007-11-11 20:59 Maps.apk
-rw-rr root     root        20307 2007-11-11 20:59 MediaProvider.apk
-rw-rr root     root       424600 2007-11-11 20:59 Phone.apk
-rw-rr root     root        11808 2007-11-11 20:59 SettingsProvider.apk
-rw-rr root     root        21271 2007-11-11 20:59 TelephonyProvider.apk
-rw-rr root     root       192118 2007-11-11 20:59 XmppService.apk
-rw-rr root     root         6613 2007-11-11 20:59 XmppSettings.apk

Liste des commandes (/system/bin) :

-rwxr-xr-x root     root         4280 2007-11-11 20:57 AudioHardwareRecord
-rwxr-xr-x root     root         4152 2007-11-11 20:57 AudioInRecord
-rwxr-xr-x root     root         4672 2007-11-11 20:57 RecursiveMutexTest
-rwxr-xr-x root     root        20932 2007-11-11 20:57 SRecTest
-rwxr-xr-x root     root        20408 2007-11-11 20:57 SRecTestAudio
-rwxr-xr-x root     root         4860 2007-11-11 20:57 UAPI_PortabilityTest
-rwxr-xr-x root     root        12420 2007-11-11 20:57 UAPI_SrecTest
-rwxr-xr-x root     root        29560 2007-11-11 20:57 UAPI_test
-rwxr-xr-x root     root          196 2007-11-11 20:46 am
-rwxr-xr-x root     root         5124 2007-11-11 20:57 app_process
lrwxr-xr-x root     root              2007-11-11 20:57 cat -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 chmod -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 cmp -> toolbox
-rwxr-xr-x root     root         3912 2007-11-11 20:57 crasher
-rwxr-xr-x root     root         4892 2007-11-11 20:57 dalvikvm
lrwxr-xr-x root     root              2007-11-11 20:57 date -> toolbox
-rwxr-xr-x root     root       118096 2007-11-11 20:57 dbus-daemon
lrwxr-xr-x root     root              2007-11-11 20:57 dd -> toolbox
-rwxr-xr-x root     root         9264 2007-11-11 20:57 debuggerd
-rwxr-xr-x root     root        17416 2007-11-11 20:57 dexdump
-rwxr-xr-x root     root         3944 2007-11-11 20:57 dexopt
lrwxr-xr-x root     root              2007-11-11 20:57 df -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 dmesg -> toolbox
-rwxr-xr-x root     root        73748 2007-11-11 20:57 drm1_unit_test
-rwxr-xr-x root     root        85608 2007-11-11 20:57 drm2_unit_test
-rwxr-xr-x root     root         1240 2007-11-11 20:46 dumpstate
-rwxr-xr-x root     root         6808 2007-11-11 20:57 dumpsys
lrwxr-xr-x root     root              2007-11-11 20:57 exists -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 getevent -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 getprop -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 hd -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 ifconfig -> toolbox
-rwxr-xr-x root     root          208 2007-11-11 20:46 input
lrwxr-xr-x root     root              2007-11-11 20:57 insmod -> toolbox
-rwxr-xr-x root     root         6696 2007-11-11 20:57 install_boot_image
lrwxr-xr-x root     root              2007-11-11 20:57 ioctl -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 kill -> toolbox
-rwxr-xr-x root     root        81236 2007-11-11 20:57 linker
lrwxr-xr-x root     root              2007-11-11 20:57 ln -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 log -> toolbox
-rwxr-xr-x root     root         8772 2007-11-11 20:57 logcat
lrwxr-xr-x root     root              2007-11-11 20:57 ls -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 lsmod -> toolbox
-rwxr-xr-x root     root         7596 2007-11-11 20:57 mem_profiler
lrwxr-xr-x root     root              2007-11-11 20:57 mkdir -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 mkdosfs -> toolbox
-rwxr-xr-x root     root          212 2007-11-11 20:46 monkey
lrwxr-xr-x root     root              2007-11-11 20:57 mount -> toolbox
-rwxr-xr-x root     root         2888 2007-11-11 20:57 mtptest
-rwxr-xr-x root     root         8640 2007-11-11 20:57 netcfg
lrwxr-xr-x root     root              2007-11-11 20:57 netstat -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 notify -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 ping -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 powerd -> toolbox
-rwxr-xr-x root     root       144356 2007-11-11 20:57 pppd
lrwxr-xr-x root     root              2007-11-11 20:57 printenv -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 ps -> toolbox
-rwxr-xr-x root     root         8724 2007-11-11 20:58 pv
lrwxr-xr-x root     root              2007-11-11 20:57 r -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 readtty -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 reboot -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 renice -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 resetradio -> toolbox
-rwxr-xr-x root     root         4116 2007-11-11 20:57 rild
lrwxr-xr-x root     root              2007-11-11 20:57 rm -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 rmdir -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 rmmod -> toolbox
-rwxr-xr-x root     root         1027 2007-11-11 20:47 ro.xml
-rwxr-xr-x root     root         1782 2007-11-11 20:47 ro2.xml
-rwxr-xr-x root     root           98 2007-11-11 20:47 roerror.xml
lrwxr-xr-x root     root              2007-11-11 20:57 rotatefb -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 route -> toolbox
-rwxr-xr-x root     root        45484 2007-11-11 20:57 runtime
-rwxr-xr-x root     root         4572 2007-11-11 20:57 sdutil
lrwxr-xr-x root     root              2007-11-11 20:57 sendevent -> toolbox
-rwxr-xr-x root     root         6148 2007-11-11 20:57 service
lrwxr-xr-x root     root              2007-11-11 20:57 setconsole -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 setkey -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 setprop -> toolbox
-rwxr-xr-x root     root        90344 2007-11-11 20:57 sh
-rwxr-xr-x root     root         5116 2007-11-11 20:57 showmap
-rwxr-xr-x root     root         7524 2007-11-11 20:57 showslab
lrwxr-xr-x root     root              2007-11-11 20:57 sleep -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 smd -> toolbox
-rwxr-xr-x root     root        25944 2007-11-11 20:57 sqlite3
-rwxr-xr-x root     root          411 2007-11-11 20:47 ssltest
lrwxr-xr-x root     root              2007-11-11 20:57 start -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 stop -> toolbox
-rwsr-sr-x root     root        72436 2007-11-11 20:57 su
lrwxr-xr-x root     root              2007-11-11 20:57 sync -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 syren -> toolbox
-rwxr-xr-x root     root         2772 2007-11-11 20:57 system_server
-rwxr-xr-x root     root        88052 2007-11-11 20:57 toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 umount -> toolbox
-rwxr-xr-x root     root        16612 2007-11-11 20:57 usbd
lrwxr-xr-x root     root              2007-11-11 20:57 watchprops -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 webgrab -> toolbox
lrwxr-xr-x root     root              2007-11-11 20:57 wipe -> toolbox

Commentaires