¿Por qué obtengo un comportamiento diferente en el simulador Codename One que en un dispositivo Android real?

Estoy tratando de averiguar por qué tengo un comportamiento diferente en el simulador (iPhone, Nexus, Nexus5, ... máscaras) VS en un dispositivo real Android con el siguiente código (mi objetivo es dibujar un texto sobre una imagen de fondo y guardar todo en resolución de imagen de fondo):

Tenga en cuenta que la GUI se realizó con el Diseñador.

    protected void beforeMain(Form f) {

    // The drawing label will contain the whole photo montage
    f.setLayout(new LayeredLayout());
    final Label drawing = new Label();
    f.addComponent(drawing);

    String nom = "Hello World";

    // Image mutable dans laquelle on va dessiner (fond blancpar défaut)
    // synthe is an Image
    Image mutableImage = Image.createImage(synthe.getWidth(), synthe.getHeight());
    drawing.getUnselectedStyle().setBgImage(mutableImage);
    drawing.getUnselectedStyle().setBackgroundType(Style.BACKGROUND_IMAGE_SCALED_FIT);

    // Draws over the background image and put all together on the mutable image.
    paintSyntheOnBackground(mutableImage.getGraphics(), 
            synthe,
            nom,
            synthe.getWidth(), 
            synthe.getHeight());

    long time = new Date().getTime();
    OutputStream os;
    try {
        os = Storage.getInstance().createOutputStream("screenshot_" + Long.toString(time) + ".png");
        ImageIO.getImageIO().save(mutableImage, os, ImageIO.FORMAT_PNG, 1.0f);
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

} // end of beforeMain

Y aquí está el método que llamo para dibujar un texto sobre una imagen

public void paintSyntheOnBackground(Graphics g, 
        Image synthe,
        final String pNom,
        int width, int height) {

     Font myFont = g.getFont();
        g.setFont(myFont);
        int w = myFont.stringWidth(pNom);
        int h = myFont.getHeight();

        // Added just to see the background
        g.setColor(0x0000FF);
        g.fillRect(0, 0, width, height);

        g.setColor(0xff0000);
        int x = g.getTranslateX() + width / 2 - w / 2;
        int y = g.getTranslateY() + height / 2 - h / 2;

        g.drawRect(x, y, w, h);
        g.drawString(pNom, x, y);

} // end of paintSyntheOnBackground

Aquí está el resultado en el simulador (GoogleNexus7):

Y aquí está el resultado en el dispositivo (Android 4.4):

Mi sistema de desarrollo presenta Eclipse en Linux con Codename One V3-4.

Sé que el simulador no puede reproducir casos específicos, pero aquí no hay nada especial, ¿no? ¿Qué puedo hacer para que el comportamiento en el simulador refleje el comportamiento real, ya que sería mucho más práctico probarlo en el simulador?

EDITAR: después de actualizar cada una de mis bibliotecas de proyecto CN1 de la versión 114 a la 115 (veresta pregunta para detalles sobre cómo hacer la actualización), Ahora puedo obtener el mismo comportamiento tanto en el simulador como en el dispositivo. Gran trabajo de corrección de errores del equipo CN1! Tenga en cuenta: en mi caso (Eclipse - Linux) tuve que actualizar las bibliotecas del proyecto entodos y cada uno Codename One project.

Cualquier ayuda sería muy apreciada!

Salud,

Respuestas a la pregunta(1)

Su respuesta a la pregunta