mardi 1 novembre 2011

Parcourir rapidement les sources du framework Android

Un jour ou l'autre vous aurez besoin de plonger dans le code sources du framework Android. C'est ce que j'ai eu à faire pour debugguer un problème d'envoi de sms à plus de 3000 caractères.

J'avais besoin de voir le code de la classe SmsDispatcher. La solution décrite sur le site officiel ou ici est de cloner les sources avec Git, ensuite faire un zip du répertoire /frameworks/base/core/java et mettre le zip dans le dossier Android ou vous avez au préalable installé le SDK.

$ repo init -u https://android.googlesource.com/platform/manifest
$ repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.7_r1

et il faudra installer repo auparavant. Cela téléchargera 5.5G de code source et prendra donc un bon moment (2Mb/s pas moins de 20minutes) avant de vous donner la main.

Par ailleurs, si vous tentez de parcourir la webview du repository, vous n'irez pas très loin :

Un moyen plus simple de voir les sources si on ne veut pas attendre tout ce temps c'est d'utiliser Google codesearch

 Il suffit de cliquer sur Android ensuite frameworks -> base -> et là vous pouvez parcourir les classes du framework. Attacher les sources à Eclipse :

Un autre site: grepcode.com propose aussi de parcourir le code source et fait mieux en proposant de télécharger le code sources du Framework sour forme d'un jar qu'on pourra utiliser pour voir les sources sous Eclipse. il suffit de créer un dossier sources dans le dossier ou on a téléchargé le sdk et d'y mettre le jar.

$ cd ~/android/android-sdk-linux/platforms/android-8/
$ mkdir sources $ cp ~/Téléchargement/android-2.2.1_r1-sources.jar sources/

Enfin, dans Eclispe : cliquez sur votre -> android.jar -> bouton droit -> properties -> cliquez sur external files et indiquez les sources :


Quelques ressources :

3 commentaires: