• Environnement de développement Android - Sans Eclipse

    Android

    Je viens de faire l'acquisisition d'un Nexus One (j'étais lassé des restrictions à la Apple), et bien évidemment la première envie que j'ai c'est de développer des applis Android pour faire un peu joujou avec la bête.

    J'ai trouvé pas mal de ressources pour débuter, mais toute ont pour point commun l'installation d'un CPU / Memory Hog : le tristement célèbre Eclipse.

    Voici donc une petite compilation de ce que j'ai pu trouver pour déployer et utiliser un environnement de développement Android sous Ubuntu (#Insert troll here#), qui ne fasse pas appel à Eclipse.

    Installer le SDK

    Vous pouvez récupérer une archive contenant le SDK à cette adresse : http://developer.android.com/sdk/index.html

    Téléchargez-le, et dé-targézèdez-le dans le dossier de votre choix.
    ~/.local/opt/ est un choix pas trop trop crade par exemple.

    Une fois que c'est fait, il convient d'ajouter le dossier tools du SDK à votre path.
    Naviguez jusqu'au dossier tools du contenu fraichement détargézèdé, et un

    echo export 'PATH=${PATH}:'`pwd` >> ~/.bashrc
    [code=bash]
    echo export 'PATH=${PATH}:'`pwd` >> ~/.bashrc
    [/code]

    devrait faire l'affaire.

    Il ne vous reste plus qu'à faire un
    android update sdk
    [code=bash]android update sdk[/code]
    pour récupérer les différents composants nécessaires.
    Une fois l'update terminé, un
    android list target
    [code=bash]android list target[/code]
    vous permet de récupérer les ids des différentes versions installées.

    Créer un AVD

    Une fois que vous avez installé le SDK, vous pouvez créer un Android VIrtual Device.
    La première étape est de choisir la version d'Android de l'AVD. Pour ça, un

    android list target
    [code=bash]android list target[/code]
    permet de trouver l'id associé à la version qui vous intéresse. Par exemple, chez moi l'id de la version 2.2 est 1. Le flag --name sert bien évidemment à identifier l'AVD.
    android create  avd --target 1 --name avd_froyo
    [code=bash]android create  avd --target 1 --name avd_froyo[/code]

    Vous pouvez ensuite démarrer l'AVD avec la commande suivante :
    emulator @avd_froyo
    [code=bash]emulator @avd_froyo[/code]


    Créer un squelette d'application

    Pour générer un squelette d'application, on se sert encore de l'outil android :

    android create project \
    --name HelloWorld  \
    --target 1 \
    --path /path/to/dir \
    --package name.delafargue.android.helloworld \
    --activity  HelloWorld
    [code=bash]android create project \
    --name HelloWorld  \
    --target 1 \
    --path /path/to/dir \
    --package name.delafargue.android.helloworld \
    --activity  HelloWorld
    [/code]


    Les flags --name, --path et --target je reviens pas dessus, pour le flag package il faut respecter les conventions de nommage. Je crois qu'il faut avoir un android en pénultième, mais je suis pas sûr.

    Pour l'activity, c'est l'entry point de l'application. À la différence du Java et du C (entre autres), un appli Android peut avoir des points d'entrées multiples. (comme ta mère)

    Cette commande va générer pas mal de bidules, entre autres :

    • AndroidManifest.mf : Fichier indispensable qui définit le comportement de l'application : Quelle activité est invoquable, le nom, l'icone, les credentials que nécessite l'application, etc...
    • Un script Ant pour la compilation et le déploiement car on est des flemmards
    • Des fichiers .properties pour stocker entre autres l'emplacement du sdk, la target version, etc
    • L'arborescence :
      • src pour le code source
      • bin pour les binaires
      • res pour les ressources utilisées par le programme (images, mais aussi texte, layout...)
      • gen pour les fichiers Java générés par ant. (Dont le fameux R.java)
      • libs pour mettre les bibliothèques externes
    • Des stubs
      • Des fichiers XML dans le dossier res qui permettent d'avoir un peu d'UI
      • Un fichier HelloWorld.java qui est le squelette de l'Activity qui sert d'entry point principal. Ce fichier se borne à charger les XML nécessaires

    Cet article n'est pas un cours de développement Android, donc je ne détaillerai pas plus. En fait j'ai trop détaillé. Flûte.

    Tester l'application sur l'AVD

    Pour compiler l'application en mode debug, il suffit d'un

    ant debug
    [code=bash]ant debug[/code]

    Pour aller un peu plus vite, on peut aussi compiler l'appli et l'installer sur un AVD dans la foulée.
    Assurez-vous d'abord qu'il y ait bien un AVD de lancé, puis :
    ant install
    [code=bash]ant install[/code]


    Bien évidemment, c'est très succint, c'est juste histoire de mettre le pied à l'étrier (sans Eclipse \o/). La plupart des tutoriels utilisent abusivement Eclipse, la plupart du temps quand vous ne voyez pas comment faire sans Eclipse (fichier généré automatiquement alors qu'on ne sait pas quoi mettre dedans, imports pas précisés...), il suffit d'aller lire la doc pour trouver des réponses à ces questions.

    Pour en savoir plus :

    La documentation complète : http://developer.android.com/index.html
    Un blog très intéressant qui présente plein de choses bonnes à savoir : http://android.cyrilmottier.com/



    La photo utilisée est basée sur : Giant Google Android statue with puppy and cupcake by ToastyKen

    Licence : CC-By 2.0 Deed

    « Partager sa musiqueTab Candy: They're (poorly) reinventing the Wheel »

    Tags Tags : , , , , ,
  • Commentaires

    1
    TitAude30 Profil de TitAude30
    Vendredi 5 Novembre 2010 à 10:48

    Bonjour Divarvel,

    Si tu veux, j'ai gagné le livre "Programmation Android aux éditions Eyrolles" et je peux te le donner car je ne m'en sers pas du tout et j'ai quelques scrupules à voir ce livre prendre la poussière sur dans mon armoire.

    Sinon, si tu connais quelqu'un d'autre qui en aurait besoin, je peux aussi lui céder le bouquin.

    Bien cordialement,
    Aude.

    2
    Ninja21a
    Mercredi 15 Décembre 2010 à 16:22

    Bonjour, un tel ouvrage me mettrait le pied à l'étrier.

    Il aurait le mérite de fixer les bases et de m'éviter de faire la synthyèse de toutes les publications déjà profuses sur le web ;)

     

    Je suis donc preneur si ce n'est pas trop tard.

    3
    Jeudi 16 Décembre 2010 à 02:31

    Je suis déjà en train de le dévorer, désolé ;-)

    4
    pulsar
    Samedi 9 Juillet 2011 à 21:11

    j'ai tenté ta procédure mais j'ai un problème

    android update sdk me retourne:

    Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-gtk-3550 or swt-gtk in swt.library.path, java.library.path or the jar file

       at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)

       at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)

       at org.eclipse.swt.internal.C.<clinit>(Unknown Source)

       at java.lang.Class.initializeClass(libgcj.so.90)

       at java.lang.Class.initializeClass(libgcj.so.90)

       at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)

       at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)

       at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)

       at java.lang.Class.initializeClass(libgcj.so.90)

       at com.android.sdkmanager.Main.showSdkManagerWindow(Main.java:319)

       at com.android.sdkmanager.Main.doAction(Main.java:283)

       at com.android.sdkmanager.Main.run(Main.java:108)

       at com.android.sdkmanager.Main.main(Main.java:97)

    5
    Jeudi 21 Juillet 2011 à 12:55

    Tu as jeté un coup d'œil à ce thread http://forum.ubuntu-fr.org/viewtopic.php?pid=3877264 ?

    6
    PatrickS
    Jeudi 5 Janvier à 14:25

    La version avec TextView provoque le message

    The application has stopped unexpecttedly.

    Que faut-il faire dans ce cas?

    Merci.

    Suivre le flux RSS des commentaires de cet article


    Ajouter un commentaire

    Nom / Pseudo :

    E-mail (facultatif) :

    Site Web (facultatif) :

    Commentaire :