<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>blog.freelan.org &#187; &#187; vim</title>
	<atom:link href="http://blog.freelan.org/tag/vim/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.freelan.org</link>
	<description>De l&#039;informatique, des octets et des poneys.</description>
	<lastBuildDate>Fri, 04 Apr 2014 17:34:59 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Développer pour Android sans utiliser Eclipse</title>
		<link>http://blog.freelan.org/2010/11/22/developper-pour-android-sans-utiliser-eclipse/</link>
		<comments>http://blog.freelan.org/2010/11/22/developper-pour-android-sans-utiliser-eclipse/#comments</comments>
		<pubDate>Mon, 22 Nov 2010 09:52:35 +0000</pubDate>
		<dc:creator><![CDATA[Julien Kauffmann]]></dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Développement]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[ant]]></category>
		<category><![CDATA[console]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[vim]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false">http://blog.freelan.org/?p=33</guid>
		<description><![CDATA[Il y a quelques jours, j'ai découvert le développement Android et Eclipse par la même occasion. Ayant abandonné il y a longtemps les IDE, j'ai tout de même décidé de sauter le pas histoire de ne pas mourir idiot.]]></description>
				<content:encoded><![CDATA[<p>Il y a quelques jours, <a href="http://blog.freelan.org/2010/11/20/installer-lenvironnement-de-developpement-pour-android/">j&#8217;ai découvert le développement Android</a> et Eclipse par la même occasion. Ayant abandonné il y a longtemps les IDE, j&#8217;ai tout de même décidé de sauter le pas histoire de ne pas mourir idiot.</p>
<p>Il faut le reconnaître, l&#8217;intégration Android dans Eclipse est très bien pensée et plutôt efficace : auto-complètement, assistants à tout va, débogueur, etc. Seulement voilà, il faut se rendre à l&#8217;évidence : quand on est habitué à Vim, l&#8217;éditeur de texte d&#8217;Eclipse fait plutôt pâle figure. Et en y réfléchissant bien, l&#8217;essentiel du développement Android reste l&#8217;écriture de code toute bête ou la modification de fichiers XML : pourquoi ne pourrait-on pas simplement utiliser une console et l&#8217;éditeur de texte de notre choix ?</p>
<p>Voici donc ce que propose ce tutorial : l&#8217;installation d&#8217;un environnement de développement simplifié pour Android.</p>
<h1>Prérequis</h1>
<p>Avant de poursuivre ce tutorial, vérifiez que vous :</p>
<ul>
<li>Êtes habitué au développement &#8220;console&#8221;. Si vous n&#8217;avez jamais utilisé que des IDE, je ne peux que trop vous conseiller de rester dans cet environnement. Le développement Android en console <a href="http://developer.android.com/guide/developing/other-ide.html">n&#8217;est pas recommandé par Google</a> et de plus beaucoup moins facile d&#8217;accès que pour d&#8217;autres langages (C, C++).</li>
<li>Savez ajouter/modifier/supprimer des variables d&#8217;environnement.</li>
<li>Avez téléchargé et installé le <a href="http://developer.android.com/sdk/index.html">Android SDK</a>. Si vous ne connaissez pas la marche à suivre, elle est indiquée dans <a href="http://blog.freelan.org/2010/11/20/installer-lenvironnement-de-developpement-pour-android/">cet article</a>.</li>
<li>Êtes prêt à passer pour un fanatique auprès de vos amis qui utilisent un IDE.</li>
</ul>
<p>Si vous remplissez toutes ces conditions, c&#8217;est parti !</p>
<h1>Développons en Java</h1>
<p>On a beau se passer d&#8217;Eclipse, on ne peut évidement se passer d&#8217;utiliser Java.</p>
<p>Commencez par télécharger le <a title="Télécharger le kit de développement Java (JDK)" href="http://www.oracle.com/technetwork/java/javase/downloads/index.html">kit de développement Java (JDK)</a> pour votre système d&#8217;exploitation, puis installez-le.</p>
<p>Pour ma part, j&#8217;ai choisi le chemin d&#8217;installation par défaut, c&#8217;est à dire &#8220;C:\Program Files\Java&#8221; sur mon Windows Seven 64 bits.</p>
<p>On se retrouve avec les deux répertoires suivants :</p>
<div id="attachment_39" style="width: 111px" class="wp-caption aligncenter"><a href="http://blog.freelan.org/wp-content/uploads/2010/11/folders.png"><img class="size-full wp-image-39" title="Répertoires Java" src="http://blog.freelan.org/wp-content/uploads/2010/11/folders.png" alt="" width="101" height="51" /></a><p class="wp-caption-text">Répertoires Java</p></div>
<p>La dernière étape concernant Java, consiste à ajouter le sous-répertoire &#8220;C:\Program Files\Java\jdk1.6.0_22\bin&#8221; au PATH de l&#8217;environnement.</p>
<p>Ouvrez une fenêtre console et saisissez la commande suivante :</p><pre class="crayon-plain-tag">javac</pre><p>Si vous obtenez la sortie suivante :</p><pre class="crayon-plain-tag">C:\Users\Julien&amp;gt;javac
Usage: javac &amp;lt;options&amp;gt; &amp;lt;source files&amp;gt;
where possible options include:
 -g&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Generate all debugging info
 -g:none&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Generate no debugging info
 -g:{lines,vars,source}&nbsp;&nbsp;&nbsp;&nbsp; Generate only some debugging info
 -nowarn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Generate no warnings
 -verbose&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Output messages about what the compiler is doing
 -deprecation&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Output source locations where deprecated APIs are used
 -classpath &amp;lt;path&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specify where to find user class files and annotation processors
 -cp &amp;lt;path&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specify where to find user class files and annotation processors
 -sourcepath &amp;lt;path&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specify where to find input source files
 -bootclasspath &amp;lt;path&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Override location of bootstrap class files
 -extdirs &amp;lt;dirs&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Override location of installed extensions
 -endorseddirs &amp;lt;dirs&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Override location of endorsed standards path
 -proc:{none,only}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Control whether annotation processing and/or compilation is done.
 -processor &amp;lt;class1&amp;gt;[,&amp;lt;class2&amp;gt;,&amp;lt;class3&amp;gt;...]Names of the annotation processors to run; bypasses default discovery proces
s
 -processorpath &amp;lt;path&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specify where to find annotation processors
 -d &amp;lt;directory&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specify where to place generated class files
 -s &amp;lt;directory&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specify where to place generated source files
 -implicit:{none,class}&nbsp;&nbsp;&nbsp;&nbsp; Specify whether or not to generate class files for implicitly referenced files
 -encoding &amp;lt;encoding&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Specify character encoding used by source files
 -source &amp;lt;release&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Provide source compatibility with specified release
 -target &amp;lt;release&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Generate class files for specific VM version
 -version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Version information
 -help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Print a synopsis of standard options
 -Akey[=value]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Options to pass to annotation processors
 -X&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Print a synopsis of nonstandard options
 -J&amp;lt;flag&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Pass &amp;lt;flag&amp;gt; directly to the runtime system</pre><p>C&#8217;est que tout est bien configuré <img src="http://blog.freelan.org/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
<h2>Un peu de ménage</h2>
<p>Avant d&#8217;installer le JDK, je me suis rendu compte que j&#8217;avais déjà une version du runtime Java installée.</p>
<p>Si c&#8217;est également votre cas, rien ne vous empêche de la garder, mais pour éviter les conflits potentiel, et ne pas gaspiller inutilement de l&#8217;espace disque, j&#8217;ai choisi de procéder manuellement à sa désinstallation avant d&#8217;installer le JDK.</p>
<p>J&#8217;ai également à ce moment là, fait le ménage dans les variables d&#8217;environnement qui faisaient référence à Java.</p>
<h1>Ant, un &#8220;Makefile-like&#8221; pour Java</h1>
<p>Le Android SDK utilise Ant pour automatiser la compilation des projets. Pour ceux qui connaissent, c&#8217;est une alternative orientée Java à Makefile, CMake, SConstruct ou encore BJAM.</p>
<p>Pour les plus curieux, vous pouvez faire un tour sur <a href="http://ant.apache.org/">la page officielle de Ant</a>.</p>
<p>Sinon, passons directement au téléchargement : <a href="http://ant.apache.org/bindownload.cgi#Current%20Release%20of%20Ant">Télécharger Ant</a>.</p>
<p>Décompressez l&#8217;archive où bon vous semble (j&#8217;ai choisi encore une fois de tout mettre dans C:\) et ajoutez les variables d&#8217;environnement suivantes :</p>
<ul>
<li><strong>ANT_HOME</strong> : Le chemin vers l&#8217;archive décompressée. Chez moi : &#8220;C:\apache-ant-1.8.1&#8243;</li>
<li><strong>JAVA_HOME</strong> : Le chemin vers l&#8217;installation du JDK. Chez moi : &#8220;C:\Program Files\Java\jdk1.6.0_22&#8243;</li>
<li><strong>PATH</strong> : Ajoutez le chemin vers les binaires de Ant. Chez moi : &#8220;C:\apache-ant-1.8.1\bin&#8221;</li>
</ul>
<p>Une fois que tout est configuré, ouvrez une <strong>nouvelle console</strong> et tapez :</p><pre class="crayon-plain-tag">ant</pre><p>Si vous obtenez la sortie suivante :</p><pre class="crayon-plain-tag">C:\Users\Julien&amp;gt;ant
Buildfile: build.xml does not exist!
Build failed</pre><p>C&#8217;est que Ant est correctement installé.</p>
<p><span style="color: #ff6600;">Si ça  ne fonctionne pas, vérifiez bien que l&#8217;environnement de votre console  est bien à jour. Sous Windows, il faut fermer toutes les fenêtres  consoles et les ré-ouvrir pour appliquer les modifications faites à  l&#8217;environnement.</span></p>
<h1>C&#8217;est tout ?</h1>
<p>Oui. Il n&#8217;en faut pas plus pour avoir un environnement de compilation simple pour Android.</p>
<p>Nous pouvons d&#8217;ores et déjà voir comment créer un nouveau projet, le compiler et le déployer sur un émulateur.</p>
<h2>Création d&#8217;un projet</h2>
<p>Pour créer un nouveau projet, nous allons utiliser la commande &#8220;android&#8221;.</p>
<p>Voici la syntaxe pour créer un nouveau projet :</p><pre class="crayon-plain-tag">android create project \
--target &lt;em&gt;&amp;lt;version_cible&amp;gt;&lt;/em&gt; \
--name &lt;em&gt;&amp;lt;nom&amp;gt;&lt;/em&gt; \
--path &lt;em&gt;&amp;lt;chemin&amp;gt;&lt;/em&gt; \
--activity &lt;em&gt;&amp;lt;activit&eacute;&amp;gt;&lt;/em&gt; \
--package &lt;em&gt;&amp;lt;&lt;/em&gt;espace_de_nom&lt;em&gt;&amp;gt;
&lt;/em&gt;</pre><p>La signification des différents paramètres est la suivante :</p>
<ul>
<li><strong>version_cible</strong> : l&#8217;identifiant de version Android cible à utiliser. Pour avoir la liste des identifiants disponibles sur votre poste, utilisez la commande <strong>&#8220;android list targets&#8221;</strong>.</li>
<li><strong>nom</strong> : Le nom de votre projet. Ce paramètre est optionnel, mais s&#8217;il est spécifié, ce nom sera celui du paquet &#8220;.apk&#8221; généré ultérieurement.</li>
<li><strong>chemin</strong> : Le répertoire cible où sera créé votre nouveau projet.</li>
<li><strong>activité</strong> : Le nom complet de l&#8217;activité. Exemple : &#8220;MyAndroid&#8221;.</li>
<li><strong>espace_de_nom</strong> : L&#8217;espace de nom (ou &#8220;namespace&#8221;) utilisé par votre projet. Exemple : <strong>&#8220;org.freelan.myandroid&#8221;</strong>.</li>
</ul>
<p>Google donne la commande exemple suivante :</p><pre class="crayon-plain-tag">android create project \
--target 1 \
--name MyAndroidApp \
--path ./MyAndroidAppProject \
--activity MyAndroidAppActivity \
--package com.example.myandroid</pre><p>Qui crée dans le répertoire courant un sous-répertoire &#8220;MyAndroidAppProject&#8221; contenant le nouveau projet.</p>
<div id="attachment_46" style="width: 166px" class="wp-caption aligncenter"><a href="http://blog.freelan.org/wp-content/uploads/2010/11/tree.png"><img class="size-full wp-image-46" title="Arborescence d'un nouveau projet Android" src="http://blog.freelan.org/wp-content/uploads/2010/11/tree.png" alt="" width="156" height="274" /></a><p class="wp-caption-text">Arborescence d&#39;un nouveau projet Android</p></div>
<p>Nous ne rentrerons pas ici dans les détails de cette arborescence, mais voici tout de même dans les grandes lignes les choses intéressantes :</p>
<ul>
<li>Les fichiers source Java sont situés dans le répertoire &#8220;src&#8221;.</li>
<li>Tout ce qui concerne les chaînes de caractères, fichiers XML représentant l&#8217;interface graphique (ou &#8220;Layouts&#8221;) ou images sont dans le répertoire &#8220;res&#8221;.</li>
<li>Ne touchez <strong>jamais</strong> aux fichiers &#8220;*.properties&#8221; ! Ils sont utilisés par Ant pour la phase de &#8220;build&#8221; et n&#8217;ont pas vocation à être modifiés manuellement.</li>
</ul>
<h2>Compilation du projet</h2>
<p>Le projet, tel que créé par défaut est simpliste mais fonctionnel. Le rôle de ce tutoriel n&#8217;étant pas d&#8217;apprendre à concevoir une application Android mais de simplement maitriser les outils du SDK, nous ne ferons aucune modification de ce projet.</p>
<p>Pour être diffusée, une application Android doit être <strong>signée</strong>. Ceci implique plusieurs démarches dont nous traiterons dans un autre tutoriel. Pour l&#8217;heure, nous choisissons de compiler notre projet en &#8220;debug&#8221;, ce qui nous permet de nous affranchir de cette étape.</p>
<p>Dans la même console, toujours à la racine du projet, tapez simplement la commande :</p><pre class="crayon-plain-tag">ant debug</pre><p>Qui a pour effet de générer dans le répertoire &#8220;bin&#8221; différentes choses, dont le fichier <strong>&#8220;MyAndroidApp-debug.apk&#8221;</strong>.</p>
<p>Ce n&#8217;est pas plus compliqué que ça.</p>
<h2>Création d&#8217;un périphérique virtuel</h2>
<p>Pour tester notre application, il nous faut soit un téléphone sous Android relié en USB et configuré en mode développeur, soit un téléphone virtuel lancé dans un émulateur.</p>
<p>Si vous n&#8217;avez pas encore créé de téléphone virtuel, voici la marche à suivre :</p>
<p>Dans votre console, tapez la commande :</p><pre class="crayon-plain-tag">android</pre><p>Ce qui a pour effet d&#8217;ouvrir la fenêtre suivante :</p>
<div id="attachment_47" style="width: 755px" class="wp-caption aligncenter"><a href="http://blog.freelan.org/wp-content/uploads/2010/11/android.png"><img class="size-full wp-image-47" title="Gestion des téléphone virtuels" src="http://blog.freelan.org/wp-content/uploads/2010/11/android.png" alt="" width="745" height="433" /></a><p class="wp-caption-text">Gestion des téléphone virtuels</p></div>
<p>Cliquez sur &#8220;New&#8230;&#8221;, puis spécifiez les caractéristiques de votre téléphone virtuel :</p>
<div id="attachment_48" style="width: 420px" class="wp-caption aligncenter"><a href="http://blog.freelan.org/wp-content/uploads/2010/11/new_phone.png"><img class="size-full wp-image-48" title="Caractéristiques du téléphone virtuel" src="http://blog.freelan.org/wp-content/uploads/2010/11/new_phone.png" alt="" width="410" height="566" /></a><p class="wp-caption-text">Caractéristiques du téléphone virtuel</p></div>
<p>Puis validez en cliquant sur &#8220;Create AVD&#8221;.</p>
<p>Si tous les paramètres sont corrects, votre téléphone virtuel est créé. Vous pouvez d&#8217;ores et déjà le démarrer en le sélectionnant dans la liste et en cliquant sur le bouton &#8220;Start&#8230;&#8221;.</p>
<p>Ce premier démarrage peut être assez long, aussi, soyez patient.</p>
<h2>Installer son application sur le téléphone</h2>
<p>Une fois le paquet &#8220;apk&#8221; créé, l&#8217;installation sur un téléphone (qu&#8217;il soit virtuel ou non) se fait très simplement :</p><pre class="crayon-plain-tag">adb install &lt;em&gt;bin\MyAndroidApp-debug&lt;/em&gt;.apk</pre><p>La commande prends quelques secondes et vous indique le succès ou l&#8217;échec de l&#8217;opération.</p>
<p>Si vous disposez de plusieurs émulateurs, ou d&#8217;un émulateur et d&#8217;un téléphone physique, adb ne peut pas deviner où installer votre paquet.</p>
<p>Utilisez alors la syntaxe suivante pour spécifier le périphérique à utiliser :</p><pre class="crayon-plain-tag">adb -s emulator-5554 install bin\MyAndroidApp-debug.apk</pre><p>Ou positionnez la variable d&#8217;environnement <strong>ANDROID_SERIAL</strong> avant vos appels à adb.</p>
<p>Pour obtenir la liste des numéros de série des périphériques, vous pouvez utiliser la commande suivante :</p><pre class="crayon-plain-tag">adb devices</pre><p>La commande &#8220;adb install&#8221; possède tout un tas d&#8217;option qu&#8217;il ne serait pas raisonnable de détailler ici. Vous devriez cependant y jeter un coup d&#8217;oeil. Pour les lister, tapez simplement :</p><pre class="crayon-plain-tag">adb install</pre><p>Qui produit la sortie suivante :</p><pre class="crayon-plain-tag">C:\Users\Julien&amp;gt;adb install
Android Debug Bridge version 1.0.26

 -d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - directs command to the only connected USB device returns an error if more than one USB device is present.
 -e&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - directs command to the only running emulator. returns an error if more than one emulator is running.
 -s &amp;lt;serial number&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - directs command to the USB device or emulator with the given serial number. Overrides ANDROID_SERIAL environment variable.
 -p &amp;lt;product name or path&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp; - simple product name like 'sooner', or  a relative/absolute path to a product out directory like 'out/target/product/sooner'.
 If -p is not specified, the ANDROID_PRODUCT_OUT environment variable is used, which must be an absolute path.
 devices&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - list all connected devices
 connect &amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - connect to a device via TCP/IP
 disconnect &amp;lt;host&amp;gt;:&amp;lt;port&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - disconnect from a TCP/IP device

device commands:
 adb push &amp;lt;local&amp;gt; &amp;lt;remote&amp;gt;&nbsp;&nbsp;&nbsp; - copy file/dir to device
 adb pull &amp;lt;remote&amp;gt; [&amp;lt;local&amp;gt;]&nbsp; - copy file/dir from device
 adb sync [ &amp;lt;directory&amp;gt; ]&nbsp;&nbsp;&nbsp;&nbsp; - copy host-&amp;gt;device only if changed
 (see 'adb help all')
 adb shell&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - run remote shell interactively
 adb shell &amp;lt;command&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - run remote shell command
 adb emu &amp;lt;command&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - run emulator console command
 adb logcat [ &amp;lt;filter-spec&amp;gt; ] - View device log
 adb forward &amp;lt;local&amp;gt; &amp;lt;remote&amp;gt; - forward socket connections
 forward specs are one of:
 tcp:&amp;lt;port&amp;gt;
 localabstract:&amp;lt;unix domain socket name&amp;gt;
 localreserved:&amp;lt;unix domain socket name&amp;gt;
 localfilesystem:&amp;lt;unix domain socket name&amp;gt;
 dev:&amp;lt;character device name&amp;gt;
 jdwp:&amp;lt;process pid&amp;gt; (remote only)
 adb jdwp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - list PIDs of processes hosting a JDWP transport
 adb install [-l] [-r] [-s] &amp;lt;file&amp;gt; - push this package file to the device and install it
 ('-l' means forward-lock the app)
 ('-r' means reinstall the app, keeping its data)
 ('-s' means install on SD card instead of internal storage)
 adb uninstall [-k] &amp;lt;package&amp;gt; - remove this app package from the device ('-k' means keep the data and cache directories)
 adb bugreport&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - return all information from the device that should be included in a bug report.

 adb help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - show this help message
 adb version&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - show version num

DATAOPTS:
 (no option)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - don't touch the data partition
 -w&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - wipe the data partition
 -d&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - flash the data partition

scripting:
 adb wait-for-device&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - block until device is online
 adb start-server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - ensure that there is a server running
 adb kill-server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - kill the server if it is running
 adb get-state&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - prints: offline | bootloader | device
 adb get-serialno&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - prints: &amp;lt;serial-number&amp;gt;
 adb status-window&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - continuously print device status for a specified device
 adb remount&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - remounts the /system partition on the device read-write
 adb reboot [bootloader|recovery] - reboots the device, optionally into the bootloader or recovery program
 adb reboot-bootloader&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - reboots the device into the bootloader
 adb root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - restarts the adbd daemon with root permissions
 adb usb&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - restarts the adbd daemon listening on USB
 adb tcpip &amp;lt;port&amp;gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; - restarts the adbd daemon listening on TCP on the specified port
networking:
 adb ppp &amp;lt;tty&amp;gt; [parameters]&nbsp;&nbsp; - Run PPP over USB.
 Note: you should not automatically start a PPP connection.
 &amp;lt;tty&amp;gt; refers to the tty for PPP stream. Eg. dev:/dev/omap_csmi_tty1
 [parameters] - Eg. defaultroute debug dump local notty usepeerdns

adb sync notes: adb sync [ &amp;lt;directory&amp;gt; ]
 &amp;lt;localdir&amp;gt; can be interpreted in several ways:

 - If &amp;lt;directory&amp;gt; is not specified, both /system and /data partitions will be updated.

 - If it is &quot;system&quot; or &quot;data&quot;, only the corresponding partition is updated.</pre><p></p>
<h2>Démarrer une activité</h2>
<p>Une fois installée, vous pouvez démarrer l&#8217;activité sur votre téléphone  comme vous le feriez pour n&#8217;importe quelle autre application. Mais si vous le souhaitez, vous pouvez également le faire en ligne de commande (voire automatiquement, si vous mettez toutes les commandes dans un script).</p>
<p>La commande ci-après démarre votre activité sur le téléphone spécifié (ou sur le seul téléphone connecté) :</p><pre class="crayon-plain-tag">adb shell am start -a android.intent.action.MAIN -n com.example.myandroid/.MyAndroidAppActivity</pre><p>Vous pouvez d&#8217;ailleurs démarrer n&#8217;importe-quelle activité en utilisant cette méthode.</p>
<h2>Une seule commande pour tout</h2>
<p>Astuce qu&#8217;il est agréable de connaître : Il est possible de réunir les dernières étapes en une seule commande en utilisant la commande suivante :</p><pre class="crayon-plain-tag">ant install</pre><p>Qui va se charger de faire un &#8220;ant debug&#8221;, &#8220;adb install&#8230;&#8221; pour vous. Plutôt sympa non ?</p>
<h1>Conclusion</h1>
<p>Le développement Android en mode console s&#8217;avère moins pénible à mettre en place que je ne l&#8217;aurais pensé. Google a fait un travail impressionnant en fournissant aux développeurs des outils simples et facile à intégrer à n&#8217;importe quel environnement.</p>
<p>Certains argueront que l&#8217;apprentissage du développement Android est bien plus facile sous Eclipse, et je pense que dans un sens ce n&#8217;est pas faux : il est clair qu&#8217;avoir le complètement automatique et des assistants permet d&#8217;apprendre peu à peu et facilement les différentes structures de données à utiliser. Cependant, la découverte de cet environnement console permet assurément de comprendre tout ce qu&#8217;Eclipse fait pour nous de façon automatique.</p>
<p>L&#8217;utilisation directe de &#8220;adb&#8221; peut notamment fournir au développeur des outils avancés indispensables et une aide précieuse au développement.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.freelan.org/2010/11/22/developper-pour-android-sans-utiliser-eclipse/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>
