IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java ME Discussion :

Faire une bibliothèque compatible JavaME et JavaSE


Sujet :

Java ME

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Points : 8
    Points
    8
    Par défaut Faire une bibliothèque compatible JavaME et JavaSE
    Bonjour,

    Je voudrais développer une bibliothèque qui facilite les connections par Bluetooth. Donc au lieu de devoir tout comprendre comment ça marche Bluetooth on aurait par exemple une méthode retrieveReachableDevices() qui retourne un tableau avec les adresses des périphériques Bluetooth détectés à portée.

    Ensuite, pourquoi pas une méthode sendText(String message, String btAddress) qui envoie un message texte à un certain périphérique.

    Etc, etc, vous voyez un peu le genre de truc que je voudrais faire.


    Dans JavaME, il y a déjà toutes les classes qu'il faut dans le package javax.bluetooth, donc en important ça, on sait créer une bibliothèque qui va bien, et ça fonctionne dans le Wireless Toolkit de Sun (c'est un émulateur de téléphone, quand on en lance plusieurs, ça émule les connexions bluetooth aussi donc on doit pas déployer sur de vrais téléphones pour débugguer). J'ai testé sur mon téléphone ça marche aussi, c'est super.


    Par contre, dans JavaSE, il n'y a pas d'API standard pour accéder au bluetooth du PC. Ce problème se résout assez facilement en téléchargeant BlueCove, qui est une implémentation libre qui fonctionne sur Linux, Windows, Mac, et plein d'autres trucs. Et donc je peux aussi créer ma bibliothèque pour Linux/Windows/Mac etc.


    MAIS, le problème, c'est que les noms des classes ne sont pas les mêmes dans l'API de JavaME et dans BlueCove, et les noms des packages non plus. Ce qui fait que le code est différent pour les périphériques utilisant JavaME et ceux utilisant JavaSE.

    Mais moi je voudrais avoir un seul code, une seule librairie, et pouvoir l'utiliser aussi bien dans une application "de bureau" que dans un Midlet sur un GSM.


    Y a-t-il donc une technique particulière pour résoudre ce genre de problème, et ne pas avoir deux copies presque identiques du même code?


    Un grand merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    399
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 399
    Points : 413
    Points
    413
    Par défaut
    Oui, il faut creer une couche d abstraction. Tu utiliseras cette couche qui te permettra de faire du code identique et pour J2ME et pour J2SE. L implementation dependra quand a elle bien evidemment de la plateforme mais ce sera transparent pour l utilisateur (juste 2 package differents a utiliser)

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 10
    Points : 8
    Points
    8
    Par défaut
    Une couche d'abstraction, tu veux dire quoi exactement? Une espèce de classe "intermédiaire"?

    Je ferais par exemple MaClasseIntermédiaire.getUnCertainTruc() et cette méthode serait implémentée de façon différente sur JavaSE et JavaME?

    Hmmm... Ouais ça me paraît une bonne idée

  4. #4
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Basiquement le truc est de fournir une librairie haut niveau constituée quasiment uniquement d'interfaces et de classes abstraites qui définit les contrats que doit réaliser une implémentation.
    Au final tu auras trois jars pour ton API

    1 jar de librairie malib.jar qui contient la partie interface et les mécanismes de choix de backend
    1 Backend malib-jseimpl.jar qui contient l'implémentation des interfaces en JavaSE
    1 Backend malib-jmeimpl.jar qui contient l'implémentation des interfaces en JavaME

Discussions similaires

  1. Réponses: 3
    Dernier message: 25/01/2015, 10h44
  2. Faire une Bibliothèque de Fonctions sous NETBEANS
    Par fcfranck dans le forum NetBeans
    Réponses: 0
    Dernier message: 08/04/2011, 12h34
  3. Installer une bibliothèque (comment faire)
    Par exhortae dans le forum C
    Réponses: 3
    Dernier message: 14/12/2007, 09h08
  4. Une bibliothèque pour faire autre chose que jouer avec ma carte graphique ?
    Par Neilos dans le forum Coprocesseurs et calcul hétérogène
    Réponses: 7
    Dernier message: 09/11/2006, 09h51
  5. Réponses: 3
    Dernier message: 08/11/2006, 13h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo