Archives par mot-clé : Android

Installer et Configurer Eclipse

Publié dans Java | Laisser un commentaire

Avant, je préférais avoir un seul Eclipse avec tous les plugins qui vont bien pour mes différents projets (Java, PHP, Android) et je jouais avec les workspace quand il fallait passer d’un projet à un autre. Aujourd’hui, j’ai l’impression qu’il vaut mieux avoir des Eclipses séparés selon l’utilisation :

  • Un optimisé pour les projets PHP,
  • Un autre pour les projets Java, OSGi
  • Et un autre pour Android. Même si pour ces deux derniers, j’aurai plutôt tendance à les mettre ensemble, à voir…

Du coup, j’ai une petite procédure d’installation / configuration et optimisation de mon IDE. La voici en résumé.
Continuer la lecture

Service Android et TabActivity

Publié dans Java | Laisser un commentaire

Lors de l’utilisation conjointe d’une TabActivity sur Android, et d’un service Android dans l’une ou l’autre des Activity, il faut faire attention à la manière dont on se connecte / déconnecte au(x) service(s) !
Il n’est pas rare d’obtenir une erreur du style :

WARN/ActivityManager(784): Binding with unknown activity: android.os.BinderProxy@6545646

La solution consiste à utiliser :

getApplicationContext().bindService(...);
// et 
getApplicationContext().unbindService(...);

plutôt que :

bindService(...);
// et 
unbindService(...);

Ce serait dû à un bug du SDK Android. Mais personnellement, cela me semble assez logique qu’il y ait à faire attention à qui (l’Activity parente, ou bien les Activity des onglets) « bind » et « unbind » les services puisque l’on a plusieurs Activity en même temps.

Personnellement, chez moi, ça rendait mes Activity quasiment inopérante : impossible de cliquer sur des boutons, d’accéder aux services, bref, la galère !

Plus d’informations

Enable hardware keyboard on Android emulator

Publié dans Java | Laisser un commentaire

I thought it was possible in previous version, but it appears that now it is not possible to use the physical hardware keyboard of a computer in an Android emulator… Hopefully, this is just a small configuration to edit!

  • Open the AVD Manager: in Eclipse > AVD Manager
  • Select the particular AVD, or create a new one, and click on Edit
  • Go to the « Hardware » section, click on « New ».
  • Select the Property: « Keyboard Support », and change its value to « yes » (it is « no » by default)
  • That’s it! You can start your emulator and use your physical keyboard.

AVD Manager

More information

Activer le clavier physique sur un émulateur Android

Publié dans Java | Laisser un commentaire

Il me semble que dans les versions précédentes cela fonctionnait, mais toujours est-il qu’avec les derniers émulateurs Android, il n’est plus possible d’utiliser le clavier physique de mon ordinateur pour taper un texte sur l’émulateur !
Heureusement, ce n’est qu’une petite configuration à modifier 🙂

  • Dans Eclipse, aller dans l’AVD Manager
  • Sélectionner un AVD existant ou en créer un nouveau
  • Aller dans la section « Hardware » et cliquer sur « New »
  • Sélectionner la propriété « Keyboard Support » et changer sa valeur à « yes » (elle est à « no » par défaut)
  • L’émulateur est prêt à être redémarrer !

Continuer la lecture

Base de données SQLite en ligne de commande sur Android

Publié dans Java | Laisser un commentaire

Imaginons que vous ayez un émulateur d’Android qui tourne actuellement sur votre machine, avec votre application en cours de développement, et que vous aimeriez voir ce qui se passe dans la base de données SQLite de votre application. Rien de plus simple grâce à quelques commandes SQLite.
Tout d’abord, il faut ouvrir votre shell favori (Sur Windows : Menu démarrer > Accessoires > Invite de commandes). Puis utilisez la commande suivante :

monShell>adb -e shell
#sqlite3 /data/data/android.societies/databases/societies.db
...
Ouverture SQLite
...
sqlite>... mes commandes SQLite ...

L’option -e signifie « l’émulateur actuellement ouvert. Donc si vous en avez plusieurs, ou si c’est un vrai téléphone qui est connecté à votre ordinateur : allez lire la doc pour voir comment faire. Comme ça, je dirais : adb devices pour avoir l’id des émulateurs et des téléphones en route. Puis adb -s [id séléctionné] shell. Après le comportement du shell peut varier sur un téléphone.

Quelques commandes SQLite utiles

  • .help: pour connaître la liste des commandes utiles !
  • .databases: listes des bases de données
  • .tables: liste les tables d’une base de données

Et bien sûr, toutes les commandes SQL de votre choix :

SELECT * FROM _table
DELETE FROM _table
REINDEX _table

Plus d’information

Une boucle propre sur un Cursor en Java

Publié dans Java | Laisser un commentaire

Plusieurs solutions s’offrent à nous pour effectuer une boucle sur un objet Cursor en Java.

La plus sérieuse

Cursor c = ......;
for (c.moveToFirst(); !c.isAfterLast(); c.moveToNext()) {
	// Do something
}
c.close();

Mieux, efficace et fun !

Cursor c = ......;
c.moveToFirst();
do {
// Do something
} while (c.moveToNext());
c.close();

PhoneGap Plugin System

Publié dans HTML et CSS | Laisser un commentaire

Overall Architecture

I have already presented PhoneGap, my goal here is to present its plugin system. Indeed, to enlarge web application possibilities, it may be useful to use native calls through Javascript. For example, to use a piece of complex Android code (Java code) easily in Javascript. This is possible using the PhoneGap plugin system.
The overall architecture of these plugins is the following:

  • a native component making the job, for example a Java Android file
  • a HTML / CSS / Javascript GUI using this native component through Javascript calls
  • a bridge between Javascript and the native code to create the link.

This bridge is composed of:

  • one native file (i.e. one Java file),
  • one Javascript file exposing this native component,
  • and generally one quick configuration file specific to the platform.

Continuer la lecture

PhoneGap: first overview

Publié dans HTML et CSS | Un commentaire

PhoneGap is a platform for building mobile application using Web technologies: HTML, CSS and Javascript. Mobile platforms like Android, iPhone or Blackberry are not ready yet to manage such application, that is why PhoneGap is filling in the gap by providing a plugin system to use native call through Javascript.
This is very interesting platform because there is a global movement between Web technologies interacting with mobile, smartphone, … You know: HTML5, CSS3, Boot 2 Gecko (see also: B2G Wiki), Apache Cordova, SOCIETIES project, …


Continuer la lecture

Erreur Android : « Debug certificate expired »

Publié dans Java | Laisser un commentaire

Lors de la compilation, si Android vous sort une erreur du style « Debug certificate expired » : ni une ni deux, allez voir votre SDK et supprimez le fichier debug.keystore situé dans le répertoire .android généralement placé dans votre répertoire utilisateur. En clair : ~/.android/debug.keystore (Linux et Mac OS X) %USERPROFILE%/.android/debug.keystore (Windows).

Une réponse longue et plus précise est lisible ici :

"Debug certificate expired" error in eclipse android plugins – Stack Overflow.

Transformer un projet Eclipse général en un projet Eclipse Android

Publié dans Java | 3 commentaires

Imaginons que vous ayez un projet Eclipse qui soit de type Java ou autre (ou rien du tout), mais que vous savez pertinemment que c’est un projet Android et que vous aimeriez bien l’utiliser en tant que tel (histoire de pouvoir travailler quoi). D’instinct, on voudrait faire un clic droit sur le dossier, puis Configure > …  mais il n’y a rien pour Android. Voici la technique que je mets en oeuvre quand ça m’arrive.

Il faut modifier le fichier .project (ouvrir l’onglet Navigator pour le voir, ou bien aller directement le chercher sous Windows ou autre dans le dossier du projet Eclipse en question) pour qu’il contienne :

Continuer la lecture