Android News

Aller au contenu | Aller au menu | Aller à la recherche

samedi 10 octobre 2009

De nouveaux Android arrivent

Je viens de recevoir ce message de la part de l’équipe Android Market :

Hello,
We're writing to inform you about a couple changes to Android Market that require your attention.
First, we have added the ability to target applications by carrier in all countries.  For example, if you are showing your app in the United States, you can now choose among Sprint, T-Mobile, and Verizon Wireless.  If your apps are intended for users of specific carriers, please go to the Android Market developer website at http://market.android.com/publish (in the Publishing Options section under Locations) and target your applications to those carriers accordingly.
Second, Android Market will soon be available on devices with different screen sizes.  Until now, Android devices have only had "normal"-sized screens, e.g., HVGA (320x480).  The latest platform release, Android 1.6, expands support for upcoming devices that cover three different screen sizes:  small, normal, and large.  Please note that Android Market will allow apps built with the Android 1.5 SDK (or lower) to show only on normal- and large-screened devices.  Android Market will allow apps built with the Android 1.6 SDK to show on all three screen sizes.  Therefore, you will need to upgrade your app to Android 1.6 if you want it to also show on small screen devices that will launch in the coming weeks.  For complete details on Android's support for different screen sizes and the implications for your apps, we strongly recommend that you read the Android Developers Blogpost at http://android-developers.blogspot.com/2009/10/support-for-additional-screen.html.
Thanks, and we look forward to continue working with you on Android
Market.
Sincerely,

The Android Market Team

mercredi 16 septembre 2009

Sortie du SDK Android 1.6

Le nouveau SDK 16 viens de sortir, et apporte son lot de nouveautés. Il intègre les nouvelles fonctions d'android 1.6 :

  • Gestion de plusieurs tailles d'écran
  • La fonction de recherche globale
  • La nouvelle version du market place
  • La fonction text2speach

Une petite vidéo de présentation :


Android 1.6 Official Video

lundi 27 juillet 2009

Démonstration de Donut 2.0

Sur le blog Autoroot, Alexandre a fait un test complet de la prochaine version de Donut, la prochaine version d'Android (qui n'est probablement pas la version 2.0). Le tout agrémenté d'images et surtout d'une vidéo.

Retrouvez le test ici :

http://www.autoroot.com/2009/07/26/jai-teste-le-systeme-android-donut-beta-sur-un-htc-dream/

Merci à Alexandre qui nous a donné cette info.

mercredi 24 juin 2009

HTC HERO - Démonstration

Pour ceux qui suivent l'actualité sur Android, plusieurs vidéos et "news" circulaient sur la toile ces derniers mois sur le prochain téléphone d'HTC, surnommé HERO. Toutes nous promettaient une interface utilisateur complètement revisitée par HTC. Aujourd'hui avec l'annonce officielle de sa commercialisation, voici une petite vidéo qui l'accompagne.

Vidéo du HTC HERO

lundi 15 juin 2009

Tests unitaires sous Eclipse avec le plugin Android

Lorsqu’on travaille avec le plugin Android pour Eclipse, le lancement d’une configuration de type JUnit échoue avec un message qui ne vous aidera pas vraiment :

junitinternal

Cela est dû à l’inclusion du jar android dans le classpath ; ce jar contenant sa propre version de JUnit destinée à être utilisée dans un système Android, cela explique alors cette erreur (quoique …).

Dans la fenêtre «Run configurations», onglet «Classpath», vous trouverez une ligne «Android 1.5» que vous pouvez supprimer. Dorénavant les tests unitaires seront lancés avec une version standard de JUnit.

android15entry

Pour éviter cette manipulation à chaque fois qu’une configuration de test est créée, vous avez aussi la possibilité d’utiliser TestNG. Ainsi vous n’aurez plus de conflit avec le jar d’Android (bien entendu il s’agit d’utiliser les classes propres à TestNG et pas le support de JUnit). Le support de TestNG n’est pas intégré par défaut dans Eclipse, il existe pour cela un plugin.

vendredi 12 juin 2009

Binding JSON/Javabeans avec Jackson

Nous avions déjà vu comment sérialiser des objets en XML en utilisant des annotations, il est également possible de sérialiser/désérialiser des Javabeans en JSON en quelques lignes avec Jackson. Nous pouvons isoler ces lignes de code dans une classe JsonSerializer :

public class JsonSerializer implements Serializer
{
    private ObjectMapper om = new ObjectMapper();

    public void serialize(OutputStream os, Object o) throws IOException
    {
        serialize(new OutputStreamWriter(os), o);
    }

    public void serialize(Writer writer, Object o) throws IOException
    {
        try
        {
            om.writeValue(writer, o);
        } catch (JsonMappingException e)
        {
            System.out.println(e.getMessage());
        }
    }

    public <T> T deserialize(Reader reader, Class<T> clazz) throws IOException
    {
        return om.readValue(reader, clazz);
    }
}

Maintenant, dans un Service ou un Adapter Android, nous pouvons lire/écrire nos Javabeans dans des flux JSON :

JsonSerializer js = new JsonSerializer();

// exemple de sérialisation

js.serialize(flux, new Person("Florent", "Cappelle")
            {{
                    setTels(Arrays.<Tel>asList(new Tel("012345678", Tel.HOME_LANDLINE)));
                    setTels(Arrays.<Tel>asList(new Tel("062345678", Tel.MOBILE_LINE)));
                }}

);

// désérialisation

Person result = js.deserialize(reader, Person.class);

Le mécanisme de sérialisation utilise les noms des getters et les valeurs qu’ils retournent pour générer le flux JSON. Les collections et tableaux sont convertis en leurs équivalents en JSON, ce qui donne par exemple :

{“adresses”:[],”emails”:[], “firstname”:”Florent”, name:”Cappelle”, “tels”:[“number”:”0612345678”, “type”:1]}

Il est possible d’ignorer certains getters en les annotant avec @JsonIgnore et il existe d’autres annotations pour adapter vos Javabeans avec un format JSON prédéfini.

Jackson est donc un choix pertinent pour la stack de développement Google étant donné qu’il fonctionne aussi sur Google App Engine (sans avoir à le modifier contrairement à XStream).

À noter aussi que Jackson fournit des providers pour JAX-RS ainsi qu’une API bas niveau (et donc plus rapide).

mercredi 3 juin 2009

Android HiveGotContacts : Lancement de l'application

Nous lançons aujourd'hui simultanément plusieurs "produits" liés entre eux pour faciliter la gestion de votre identité numérique, un des produits concernés se trouve être une application Android : HiveGotContacts.

Elle réutilise le concept de Hive déjà rencontré précédemment sur ce blog pour mettre en place un nouveau carnet de contacts, et est enrichie à travers ses possibilités d'interaction avec de nombreux formats existants (les vCards, les domaines en .tel), ainsi qu'avec un nouveau format, Ergosoom, qui se lie avec l'application de gestion du même nom.

Un visuel de l'application.

Lire la suite...

jeudi 28 mai 2009

Android 2.0 DONUT

 

Voici une première démonstration des nouvelles fonctionnalités de “DONUT” réalisée

par Romain GUY lors du GOOGLE I/O 2009

Pour les impatients, allez directement à la 4ème minutes…

Vidéo du GOOGLE I/O sur Android

video sur youtube

lundi 25 mai 2009

Utilisation de XStream sous Android

XStream est une bibliothèque Java qui permet de sérialiser et de désérialiser des objets en s’appuyant sur la réflexion et des Converters pour la plupart des types de base (Float, Integer, Collections, ...). La dernière version (1.3.1) fonctionne plutôt bien sous Android.
Il est possible de paramètrer la sérialisation afin d’adapter une classe Java à un format XML particulier et aussi d’éviter d’avoir le nom complet (avec le package) de la classe dans le XML de sortie. Pour cela, Xstream dispose d’annotations et des méthodes correspondantes dans XStream pour les version de Java antérieures à JavaSE 5.
Exemple avec les annotations :
  1. @XStreamAlias("person")
  2. public class Person implements Serializable {
  3.  
  4.     private String name;
  5.     private String firstname;
  6.  
  7.     @XStreamImplicit(itemFieldName="email")
  8.     private List<Email> emails;
  9.  
  10.     @XStreamImplicit(itemFieldName="tel")
  11.     private List<Tel> tels;
  12.  
  13.     public Person() {
  14.     }
  15.     // utiliser xstream.processAnnotations(Person.class);
  16. }
Et l’équivalent avec les méthodes de XStream :
  1. xstream.alias("person", Person.class);
  2. xstream.addImplicitCollection(Person.class, "emails", "email", Email.class);
  3. xstream.addImplicitCollection(Person.class, "tels", "tel", Tel.class);
Et le résultat de la sérialisation d’un objet Person :
Au niveau des limitations, la plateforme Android ne supporte pas les parseurs StAX et par conséquent le Driver JettisonMappedXmlDriver qui permet de sérialiser/désérialiser en JSON. De plus, XStream s’appuie sur la variable «java.specification.version» afin de déterminer la version de Java : Android fixe cette variable à 0.9, ce qui désactive la gestion des annotations Xstream.
Toutefois, il est possible d’étendre la classe XStream et de redéfinir la méthode qui crée les classes de mapping afin de pouvoir utiliser les annotations Xstream. Il s’agit de la classe AndroidXStream dans l’archive zip associée à ce billet.
L’analyse des annotations est beaucoup plus lente que les méthodes de la classe XStream mais ces dernières rendent le code plus difficile à maintenir à mon goût.
Il est également possible d’utiliser le Driver JsonHierarchicalStreamDriver afin de sérialiser un objet en JSON, par contre la désérialisation n’est pas supportée. Il faudra alors utiliser les classes du package org.json (déjà présent dans l’API Android).
XStream se révèle particulièrement utile avec les Web Services qui utilisent des formats assez complexes. Pour persister des données en local les classes ObjectOutputStream et ObjectInputStream seront plus efficaces.
Vous trouverez un projet d’exemple dans cette archive : XstreamDemo.zip

vendredi 15 mai 2009

Android Captcha : Réutiliser un composant Google

L'interface de base d'Android possède de nombreux gadgets qui s'avèrent très intéressants. Cependant, tous ne sont pas visibles publiquement dans la librairie, mais Android étant un projet open source, et les sources étant accessibles, il est donc tout à fait possible d'aller les récupérer pour les adapter.

Lire la suite...

mercredi 13 mai 2009

Les developpeurs francais peuvent vendre leurs applications Android

Eric Chu :

We have also added seller support for developers from Germany, France,
Spain, the Netherlands, and Austria.  Developers from these countries can
now go to the publisher website to publish their priced applications.
Google Checkout serves as the payment and billing mechanism for Android
Market in all countries.  Developers who do not already have a Google
Checkout merchant account can easily sign up for one via the publisher
website.  Developers can find more information about priced applications
in Android Market at http://market.android.com/support/.

Recu par email.

jeudi 7 mai 2009

Android Cupcake 1.5 : Réaliser son widget

Bonjour, depuis la sortie du dernier framework, une nouvelle possibilité réclamée depuis longtemps est apparue : la possibilité de faire vos propres widgets et de les ajouter sur votre home. Nous allons voir dans les grandes lignes ce qu'il faut faire, les limitations, et vous retrouverez en pièce jointe un widget HelloWorld déjà fait.


Lire la suite...

mercredi 6 mai 2009

Tutorial : Les dossiers dynamiques ou Live Folder

Un dossier dynamique est un raccourci sur le bureau qui affiche une liste ou une grille avec des informations dynamiques qui viennent d’une application. Cela peut être les derniers contacts appelés, les derniers favoris, etc …

Nous allons voir comment créer ces dossiers pour afficher nos derniers SMS. Pour cela, on va utiliser l’astuce décrite dans un précédent billet pour accèder aux SMS de l’application.

 

livefoldersms

Lire la suite...

mercredi 29 avril 2009

Android Cupcake : comment flasher le Dev Phone

Il existe depuis peu une version officielle de l’image système de Cupcake pour les HTC Dev Phone. La procédure de mise à jour est rapide, sans risque de blocage non récupérable et en plus conserve les applications que vous avez déjà installées ainsi que leurs données.
Sachez aussi que cette procédure est réversible.
Vous aurez besoin de deux archives zip à télécharger sur le site de HTC : http://www.htc.com/www/support/android/adp.html
  • ota-radio-2_22_19_26I.zip (Radio Image Android 1.5)
  • signed-dream_devphone-ota-147201.zip (Recovery Image 1.5)
La première étape est de mettre à jour le firmware radio :
  • Assurez-vous que la SDCard est bien connectée au téléphone, transférez la première archive (ota-radio-2_22_19_26I.zip) vers la SDCard et renommez-la en update.zip, voilà comment faire en ligne de commande : 
    • <ANDROID_SDK>\tools\adb -d push ota-radio-2_22_19_26I.zip /sdcard/update.zip
    • <ANDROID_SDK>\tools\adb -d shell sync
  • Arrêtez le téléphone, puis démarrez-le en mode recovery en maintenant appuyé la touche Home.
  • Vous devriez avoir un écran à fond noir avec une icône contenant un point d’exclamation, effectuez la combinaison de touches ALT+L pour faire apparaître les options :
  • Vous pouvez ignorer l’erreur "Can’t open ...". Faites ALT+S, le firmware se met alors à jour. une fois la mise à jour terminée, redémarrez le téléphone avec Home+Back.
  • Le système n’est alors toujours pas mis à jour. Transférez la deuxième archive (signed-dream_devphone-ota-147201.zip) de la même façon que la première (vers /sdcard/update.zip), redémarrez le téléphone en mode recovery, ALT+L, ALT+S, puis Home+Back une fois la mise à jour terminée.
  • Le téléphone redémarre plusieurs fois, patientez un peu et vous aurez alors le nouveau système Android 1.5 (Cupcake).

Pour plus de détails sur les mises à jour, il existe un Google Groups dédié : http://groups.google.com/group/Android-DevPhone-Updating

lundi 27 avril 2009

Android 1.5 is here!

Xavier Ducrohet

I am also happy to let you know that our partners at HTC have made available new system images to upgrade your Android Dev Phone 1 (ADP1) to Android 1.5. This new version (which is only available for the ADP1) is based on the Cupcake branch from the Android Open Source Project and corresponds to the system image of the Android 1.5 SDK, release 1. If you have questions about the process of updating your device, you can ask the mailing list that we've set up.

Android 1.5 is here!

Tutorial : Manipuler les contacts - STEP 1 : READ



Voir, Modifier, Supprimer des contacts ! En Ajouter des nouveaux ! En importer dans votre application, en exporter depuis celle-ci... C'est ce que nous allons voir ici ! Au final on obtiendra quelque chose comme ça : screen2 Le nom, le numéro, et la photo de chacun de vos contacts. Pour cette première partie, on commencera par "LIRE" les contacts.

Lire la suite...

samedi 25 avril 2009

Market Place Android et France

La market place Android permet maintenant de déployer uniquement sur la France.

image

jeudi 23 avril 2009

ZXing : Comment tester le scan de code QR sur l’émulateur

La semaine dernière (Tutorial : Scanner et générer des codes QR (2D) sur Android), nous avons vu comment faire appel à l’application Barcode Scanner afin de décoder un code QR. Barcode Scanner ne propose que l’appareil photo pour la capture de l’image du code, ce qui le rend inutilisable sur l’émulateur.

Il est possible en utilisant JMF et une connection TCP/IP émulateur/hôte de simuler l’appareil photo avec la Webcam (expliqué ici) mais cela n’est pas pratique pour nos besoins.

La solution retenue est de créer une nouvelle activité de scan qui prend en paramètre une image présente sur la sdcard. Pour ce faire, il vous faudra :

  • Créer une image de sdcard et la monter dans l’émulateur (expliqué ici) ;
  • Charger des images de codes QR (format png ou jpeg) sur cette sdcard (voir lien précédent) ;
  • Créer une IntentFilter qui aura la même action que l’activité de scan de ZXing :
  1. <activity android:name="ScanFileActivity">
  2.   <intent-filter>
  3.     <action android:name="com.google.zxing.client.android.SCAN" />
  4.     <category android:name="android.intent.category.DEFAULT" />
  5.   </intent-filter>
  6. </activity>

Ainsi, lorsqu’une Intent avec cette action sera soumise, le système Android proposera une liste déroulante des applications capables de les traiter.

  • Ensuite il faut créer la classe de l’activité ScanFileActivity. L’écran de cette activité affichera une liste des images présentes sur la SDCard et lorsque l’une d’entre elles sera choisie, un objet QRcodeReader est instancié dans un thread avec les données de l’image en paramètre. Cette classe de la bibliothèque ZXing prend en paramètre un objet MonochromeBitmapSource adapté à la classe Bitmap d’Android via la classe RGBMonochromeBitmapSource
  • La classe ScanFileActivity renvoie un résultat en respectant le même format que CaptureActivity (classe de Barcode Scanner). Du coup, il n’y aucun changement à faire sur l’activité principale écrite lors du précédent article.
Cette nouvelle activité n’étant pas utile sur un vrai téléphone, il faudra alors commenter sa déclaration dans le fichier AndroidManifest.xml ou l’isoler dans une application à part.
En conclusion, ce billet montre une fois de plus la force des Intent dans la plateforme Android.
Vous trouverez les sources des fichiers mentionnés dans cet article ici : http://code.google.com/p/zxing/source/checkout

mercredi 22 avril 2009

HiveLayout et Android 3 : La Cellule (et les sources).

Après le HiveLayout vu précédemment, il nous manque toujours des HiveCells à ajouter pour obtenir notre affichage complet. Il s'agit ici de trouver un moyen efficace de dessiner l'Hexagone et de gérer les clics à l'intérieur de sa zone, et d'ajouter du contenu à l'intérieur de l'Hexagone. Et surtout, c'est l'occasion de vous donner des sources d'un projet qui met en œuvre l'aspect théorique :)


Lire la suite...

vendredi 17 avril 2009

Tutorial : Scanner et générer des codes QR (2D) sur Android

startVous avez une idée d’application s’appuyant sur les codes QR ? ZXing vous permettra de la réaliser (presque) sans effort !

En effet, l’une des principales forces d’Android est de pouvoir réutiliser des fonctionnalités déjà implémentées par des applications existantes. Le principe est de créer des objets Intent qui vont cibler l’application implémentant la fonction qui nous intéresse, éventuellement de lui passer des paramètres (méthode «putExtra») et de faire appel à l’activité capable de répondre à ce besoin en utilisant «startActivityForResult». Cette dernière renverra une réponse sous forme d’un objet Intent passé en paramètre à «onActivityResult». Je ne m’étenderai pas plus à ce sujet (plus d’infos ici: http://developer.android.com/guide/topics/fundamentals.html#actcomp).

Le projet ZXing (se prononce «Zebra Crossing») est un ensemble de bibliothèques et d’applications de lecture de code-barres visant un large spectre de plateformes : Java SE /Java ME, C++, C#, iPhone, Blackberry, … et bien sûr Android :).

L’ensemble du projet est à télécharger à cette adresse:

http://code.google.com/p/zxing/downloads/list

Lire la suite...

- page 1 de 2