Android ne reconstruire qu'une partie du framework

Si vous souhaitez ne recompiler qu’une partie du framework android vous pouvez utiliser la commande mmm.

Par exemple pour ne recompiler que la calculatrice:

source build/envsetup.sh
mmm packages/apps/Calculator/

Savoir quelle DLL sont chargées par un programme

Il est parfois nécessaire de connaître la liste des DLL utilisés par un programme . Il existe plusieurs méthodes pour le savoir. Cette méthode à l’avantage de ne pas demander l’installation de logiciels extérieurs.

Il suffit de lancer cmd.exe.

On utilise ensuite la commande:

 tasklist 

Cette commande vous permet de lister les processus qui tournent actuellement. On peut ainsi repérer le nom du processus qui nous intéresse.

On va ensuite afficher la liste des Dlls liées au programme via cette commande:

 tasklist /m /fi "imagename eq PROGRAMME" 

L’option /m nous donne la liste des modules. L’option /fi permet de filtrer la sortie.

Par exemple pour Firefox:

 tasklist /m /fi "imagename eq firefox.exe" 

<179|center>

Changer de version de SDK android dans Eclipse

Généralement quand on débute avec android on commence à développer avec la dernière version du SDK. Malheureusement lorsque l’on veut publier son application on s’aperçoit que le marché est resté sur les anciennes versions.

Par exemple au jour d’aujourd’hui il y a encore 38% du marché sous android 1.5. Il ne faut donc pas négliger ces utilisateurs: http://developer.android.com/resources/dashboard/platform-versions.html

#Installer le SDK Via la commande android vous pouvez gérer les versions de SDK installé et installable.

<176|center> #Modification de la version dans eclipse Tout d’abord, il faut aller dans les propriétés du projet: <172|center>

Dans la section Android choisissez le SDK ciblé: <177|center>

Puis avec un clic droit sur le projet/Android Tools/Fix project properties: <172|center>

Cela corrige notamment le .jar du SDK qui sera chargé.

#Changer de version dans le manifest Pour que votre application soit toujours valide, il ne faut pas oublier de changer la version minimum de l’OS requise dans le fichier AndroidManifest.xml.

Par exemple pour Android 1.5:

   <uses-sdk android:minSdkVersion="3" />

#Retourner en 1.5 Si vous venez d’une version supérieure à la 1.5 lorsque vous allez repartir en arrière votre fichier R.java ne sera plus généré correctement cela est dû à la présence des dossiers:

  • res/drawable-hdpi
  • res/drawable-mdpi
  • res/drawable-ldpi

Ces dossiers sont apparus dans android 1.6. Pour que cela marche en 1.5 il ne vous faut que le dossier res/drawable.

Afficher du debug sous Android

Habitiuellement quand on fait du java on utilise system.out.println pour afficher notre debug sur la console. Sous Android cela n’est pas possible.

Le système qui le remplace est l’API android.util.Log.

Cette API vous permet d’envoyer des messages avec différent niveau de visibilité:

  • VERBOSE
  • DEBUG
  • INFO
  • WARN
  • ERROR

#Utilisation de l’API La première chose à faire est de charger le code nécessaire à l’API.

 import android.util.Log;

Vous pouvez ensuite envoyer votre message.

Log.v("ListLevels", "create");

Le premier argument est le TAG qui permet de savoir qui est l’émetteur. Généralement c’est le nom de l’activité.

Le deuxième argument est le message en lui même.

Vous disposez de différentes méthodes pour envoyer des messages pour chaque niveau:

  • VERBOSE: Log.v
  • DEBUG: Log.d
  • INFO: Log.i
  • WARN: Log.w
  • ERROR: Log.e

#Affichage du debug dans eclipse

Pour afficher les logs une fois l’émulateur lancé cliquez sur la perspective DDMS.

<170 center>

Les logs s’affichent dans la zone du bas. <171|center>

Vous pouvez filtrer en fonction du niveau du message ou du texte du message.

#Bon à savoir Le niveau debug est automatiquement supprimé au moment de l’exécution si vous n’êtes pas en mode debug.

#Plus d’informations http://developer.android.com/reference/android/util/Log.html

Les variables spéciales en shell

#$# $# Contient le nombre d’arguments passe a votre script

#$* *$** Contient la liste des paramètres passée au script

#$@ Comme *$** mais il prend en compte les espaces, on récupère donc les arguments sous forme de tableau.

Par exemple pour ce code:

for var in "$*"
do
	echo $var;
done
test.sh "toto tata" tutu

Donnera:

toto tata tutu

Alors que pour ce code:

for var in "$@"
do
	echo $var;
done
test.sh "toto tata" tutu

Donnera:

toto tata
tutu

#$? $? Contient le résultat de la dernière commande exécuté

#$$ Le PID du shell

#$! Le PID de la dernière commande mise en background.

#$_ Contient le dernier argument de la précédente commande.

Exemple:

# echo toto
toto
# echo $_
toto

#$0 $1 $2 Ces variables contiennent les arguments passés en paramètre à votre script shell.

Lire les IPTC en Python

Pour récupérer les IPTC en Python vous avez plusieurs choix dont PIL.

Le support des IPTC de PIL étant incomplet je me suis rabattu sur le module IPTCInfo.

Voici un exemple d’utilisation:

from iptcinfo import IPTCInfo
import sys

info = IPTCInfo('test.jpg')
# Affiche la liste des mots clef
print info.keywords