28 février 2011

Debuter avec Android


PRESREQUIS
  1. Connaitre java et XML. Le noyau d’Android est bien un linux, mais l’environnement d’exécution est sous le contrôle d’une machine virtuelle java, un peu spéciale, nommé Dalvik.
  2. Un téléphone et/ou une tablette tournant sous Android 2.2 ou supérieur. Ceci n’est pas absolument obligatoire car le SDK Android inclus un émulateur. Mais c’est tout de même plus gratifiant d’utiliser ses applications sur un véritable terminal Android.
  3. Lire l’anglais. Ceci est un prés-requis pour tout développeur, quelque soit le langage et  l’environnement de développement. Mais encore plus quand le système est nouveau et que les ouvrages et sites web francophones de qualité ne foisonnent pas encore.
INSTALLATION
  1. JAVA
    Le classique JRE (Java Runtime Environnement) ne suffit pas, il faut absolument  installer le JDK (Java Development Kit). Mais pour développer sous Android inutile de prendre un bundle (JEE, FX ou Netbeam) le JDK SE (Standard Edition) suffit. Bien sur, le JDK inclut le JRE.

    Important: Pour éviter des problèmes ultérieurs commencez par désinstaller votre java actuel, puis installez la dernière version du Java SE Development Kit.

  2. ANDROID
    La première chose à faire est de télécharger et installer le SDK starter package.

    Si vous êtes sous Windows et avez téléchargé l’exe, l’étape suivante se lancera automatiquement. Dans tous les autre cas il vous faudra lancer le SDK Manager qui s’occupera de télécharger les autres éléments du SDK en fonction de vos besoins (ce qui peut être long...). Vous pouvez, par exemple, ne sélectionner que les émulateurs Android 2.2 et supérieur, sauf la 2.3.1 (API version 9) qui est obsolète.

    Important: Si à l'installation le SDK Android vous dit qu'il ne trouve pas pas le JDK java cliquez sur le bouton Back  puis sur le bouton Next, et là il trouve le JDK !

  3. CVS / SVN / MERCURIAL (optionel)
    Que vous vouliez profiter du code de d’autres projets open source, ou publier votre projet sur GoogleCode ou SourceForge ou Savannah, dans tous les cas il vous faudra installer au moins un système de contrôle de version. Les plus connus étant :
    Si vous participez à plusieurs projets vous pourrez êtres amenes à installer plusieurs systèmes de contrôle de version.

  4. ECLIPSE (optionel mais vivement recommandé)
    Il est tout à fait possible de se passer d’Eclipse. On peut juste utiliser un éditeur de texte et la ligne de commande. Mais Eclipse simplifie vraiment la tache. Il est vrai qu’au début l’interface visuelle d’Eclipse est intimidante. Mais ça vaut le coup de se familiariser avec Eclipse car on peut l’utiliser dans bien des domaines (Java, C/C++, php, javascript ect)
    • IDE : Comme pour le JDK, il existe plusieurs bundles pour Eclipse. Mais pour developper sous Android il suffit de prendre le plus petit, et le plus simple, c'est à dire Eclipse IDE for Java Developers
    • Plugins : Grâce à un grand choix de plugins Eclipse est un environnement de développement très versatile.
      Il vous faudra installer au moins le plugin ADT dédié au développement sous Android.
      Attention que la version du plugin ADT soit celle qui va avec la version du SDK Android. 
    • La prise en charge de CVS est intégrée nativement à Eclipse. Pour les autres systèmes de contrôle de version il existe des plugins spécifiques : SVN, Mercurial 
      
APPRENTISSAGE

Comme toute application Android est écrite en java il faut connaitre un minimum de java. Grace au NDK il est possible de développer en langages compilés (donc en C/C++) mais les choses ne sont pas forcement plus simples (ni plus rapides).

SUPPORT

Si vous avez besoin d’aide plusieurs canaux sont disponibles. Au niveaux forums pour développeurs je vous conseille :
Rappelez vous que pour espérer obtenir une réponse il faut
1)      qu’elle soit synthétique. Hors de question d’envoyer 100 lignes de code en disant ça ne marche pas. Pourquoi ?
2)      qu’elle corresponde à un véritable problème. Donc, il faut avoir lu les documentations, fait quelques recherches avec Google, et expérimenté diverses options avant de poser sa question.


A vous de jouer !

    NOHUP ?

    nohup est une commande Unix qui permet de protéger un processus du signal SIGHUP (Signal Hangup). L’usage principal de cette commande est de protéger un processus du SIGHUP envoyé par le shell quand l’utilisateur se déconnecte. Ainsi, le processus continue de s’exécuter en absence de celui qui l’a initié.

    > nohup wget http://download.fedoraproject.org/pub/Fedora-14-i386-DVD.iso &
    > logout

    L’idée de ce blog est de protéger des idées de l’oublie afin qu’elles fassent leurs chemins en mon absence, et que je puisse les retrouver à mon retour.

    Notes: la commande screen est une sorte de nohup appliqué au shell lui-même.