Development

This page has been updated on the 29 March 2011.

How to solve picture problem with last version of the framework ?

In framework 2.4.X, we changed slightly the way the resources works. Now you can attach them to your package.
There is however one restriction: your components have no access to the resources of other components.
They have access to their own data folder plus the global data folder.
So if you upgrade an old graphical project in 2.4.X, reset all your pictures using the SDK.

Can i delete a DB variable ?

No, once a DB value is created you cannot delete it.
But you can set it to another value "" or 0 to symbolize the resetting of this value.

You can delete ALL DB variables using “restore db” command, in the advanced console.

How to convert binary BuffRef into String ?

You must avoid to use BuffRef.toString() which can truncate binary buffer.

You must use BuffRef.getBytes() to be sure to retrieve complete data buffer.
After this you can create a String with this byte array.

How to save data on the device ?

There are several ways to save data :

  • Parameter : each component can have parameter (boolean, int or buffref), use for reference value.
  • DB : value with maximum size of 128 Bytes, use as state machine for the component.
  • PDM : FIFO circular buffer, use to store huge data (max 512 PDM of max 3MB)
  • FileHandler : file management system, available soon

All this data is saved on the flash memory periodically and on event.

I get same value on two different successive configAccess.get() method ?

when you try to retrieve a parameter which is empty, the BuffRef is not set and you still have the previous value of the buffer inside.
so before each call of configAccess.get(), use the method BuffRef.clear().

How to avoid refresh problem in graphical transition ?

You can have some refresh problem when you want to make a transition between two graphical elements.
With this problem you will see your old screen instead of the new and when touching the screen the new screen suddenly appear.
Typical example are :

  • transition of screen after a popup
  • transition of screen after a switch between component
  • transition of popup on top of a screen

To avoid this problem, You must hide the transition behind the current element.
You must avoid going through another graphical element than the current one and the target of transition.

With transition of screen after a popup

  • Do not :
    • call the popup
    • close the popup
    • switch to screen (possible problem of refresh, see old screen)
  • Do :
    • call the popup
    • switch to screen
    • Close the popup

With transition of screen after a switch between component

  • Do not :
    • switch to other component
    • switch to screen (possible problem of refresh, see old screen)
  • Do :
    • set entry screen of the other component (using MuiApp.setEntryScreen(…))
    • switch to other component

With transition of popup on top of a screen

  • Do not :
    • call the first popup
    • close the first popup
    • call the second popup (possible problem of refresh, see screen)
  • Do :
    • call the first popup
    • call the second popup
    • close the first popup

Enable the debug on 2.4 modules

Since release 2.4, in all your projects you have to specify the debug level when you init the debug class.

Class Debug
init
public void init(int ena)

ena - Enable output level, default level is 'warn' (2).
-1 : no debug 
0  : all debug (debug, print, warn, error)
1  : debug level (print, warn, error)
2  : warn level (warn, error)
3  : error level (error)

User package structure

Here is a reminder about the advised user package structure

  • A user package must contain 3 levels (i.e. com/mdi/applicationName).
  • All files and classes must be placed into the 3^rd^ level (i.e. com/mdi/applicationName).
  • The project must not contain a data folder (i.e. com/mdi/applicationName/data).

How to ask a question ?

You can send an e-mail to support@mobile-devices.fr.