J'ai écrit un J2ME à la conversion Brew qui est utilisé à Javaground. Il est tout à fait possible d'écrire plusieurs résolutions, un seul code binaire. Nous avons une base de données de bogues de périphériques afin qu'il puisse détecter via l'ID de plate-forme l'appareil et ensuite générer une série de drapeaux qui marquent quels bogues sont marqués. Par exemple, la plupart (sinon la totalité) des téléphones Motorola Brew ont un bug où un appel entrant n'interrompt pas l'application jusqu'à ce que vous répondiez à l'appel, donc j'utilise TAPI pour surveiller un appel entrant et générer un événement hideNotify (puisque nous sommes émuler Java, bien que le code généré soit pur C++). Je fais quelques vérifications à l'exécution pour la version Brew, et je désactive certaines API si c'est Brew 2 plutôt que Brew 3.
Les jeux de type 3D sont plus faciles à rendre indépendants de la résolution puisque vous effectuez une mise à l'échelle logicielle.
Il existe également 2 API distinctes pour le son, IMEDIA et ISOUNDPLAYER, ISOUNDPLAYER est l'ancienne API et est supportée sur tous les appareils mais ne dispose pas de toutes les fonctionnalités (vous ne pouvez utiliser l'audio multicanal qu'avec IMEDIA). Je crée un objet IMEDIA, et il retombera pour créer un objet ISOUNDPLAYER s'il ne peut pas obtenir l'objet IMEDIA. Le problème avec une construction totalement universelle est qu'il y a une grande différence de capacité, donc ça peut valoir la peine d'avoir quelques builds, les plus anciens n'ont que moins de 1 Mo de tas (et une petite taille d'écran), et puis vous obtenez beaucoup avec 6MB + (176x204 à plus grand). Avec Brew, vous disposez d'un ensemble de valeurs de clés assez cohérent (contrairement à Java), bien que certains des nouveaux périphériques soient des écrans tactiles (et vous devez gérer l'entrée du pointeur) et des écrans rotatifs.
Il y a aussi quelques anciens téléphones Nokia qui utilisent grand mode endian qui signifie les fichiers ne sont pas les mêmes que les fichiers mod normaux (sauf si vous voulez écrire une tête de préfixe de langage assembleur vraiment cool qui décode le fichier)