Using RhoElements on the MC2100
RhoElements and the MC2100
I have spoken to a number of customers over the past few months about their experiences using RhoElements on the MC2100 and wanted to share my findings.
The MC2100 is a lower tier devices, the product page (http://www.motorola.com/Business/US-EN/Business+Product+and+Services/Mobile+Computers/Handheld+Computers/MC2100) uses the term "value priced" which essentially means although you are getting a reliable, ruggedised mobile computer it will not be as performant as Motorola Solutions' higher end devices such as the MC75a or MC9190.
Whilst the MC2100 still embraces RhoMobile suite's "write once, run anywhere" philosophy any good developer must also take into consideration the performance of the hardware on which they are deploying.
What to expect out of the Box
The MC2100 runs Microsoft CE 6.0 Core which is cheaper license than CE professional and so we can pass this saving on. One difference between CE professional and CE core is you do not get Internet Explorer with the latter and so to make up for this we pre-install RhoElements in the device image. When you start up your shiny new MC2100 you'll see the following options:
- RhoElements
- RhoElements Basic Browser
Depending on what version of firmware you have on your MC2100 you will either have RhoElements 1.0.3 on your device or RhoElements 2.2, in either case your RhoElements link will launch a shell in which you can run your 'hybrid' HTML and Javascript based application, leveraging the device capabilities on the MC2100 such as the barcode scanner.
Clicking on the 'RhoElements Basic Browser' link will launch an internet browser with GUI containing an address bar, back/forward buttons etc.
What you might not see immediately is that DataWedge will use RhoElements to present its configuration screen, so don't be surprised if you get a RhoElements splash screen when configuring DataWedge.
Finally, if you just double click an HTML page on the device it will use RhoElements as the default viewer for HTML files. If you wish to exit from this state you can use the quit button displayed on screen.
What is the Basic Browser? Why is it Basic?
As mentioned above the MC2100 ships with CE Core which does not contain Internet Explorer. In order to provide you with an internet browsing capability we ship the 'Basic Browser' with the product.
This is where we need to start talking about the performance limitations of the device. By default the device will ship with 128MB of RAM, about 28MB of which is available for applications to use for their RAM since the rest is used either by the operating system or for storage memory. The Basic Browser requires about 10MB of RAM to launch leaving about 18MB free for any loaded web pages to run in. 18MB is not sufficient for web pages which have been written to target a desktop PC.
It is recommended to only use the Basic Browser to browser content designed for mobile devices, specifically in testing the performance of the mobile google (m.google.com), mobile bbc (m.bbc.co.uk) and mobile facebook (m.facebook.com) web pages all performed well on the device. Attempting to browse content designed for desktop computers will quickly cause the device to report it is running low on memory.
By default RhoElements ships with the following user agent:
Mozilla/5.0 (Windows CE 5.0) AppleWebKit/534.11 (KHTML, like Gecko) MotorolaWebKit/2.2.4.3 Mobile Safari/534.11
This is sufficient to allow a majority of popular websites to recognise that it is a mobile device and serve mobile content accordingly
Writing Applications which use the Shared Runtime
Similar to running the Basic Browser:
- A 128MB device
- Partitioned as set by the factory to share this 128MB between program and storage memory
- Launching the RhoElements runtime
You are left with around 23MB of RAM in which to write your hybrid application, that is an application designed to run applications in HTML and Javascript, most likely located on a remote server and using RhoElements to render your application also providing hooks into the device hardware.
Because the MC2100 does not have a super fast CPU (624MHz) you may notice that the scrolling performance can sometimes lag. It is recommended to design you application with as little scrolling as possible, not just for this device but also for mobile devices in Enterprise in general, which can provide a more intuitive and in this case performant application for your users.
For HTML styling, I did test a number of HTML5 pages with this device including the JQueryMobile kitchen sink application. By in large the device was able to cope well with HTML5 as long as you avoid animations or other CPU / memory hungry functions. Still if you are looking to squeeze every last CPU cycle out of the device you may wish to consider developing your application in HTML4 but the work required to achieve this would likely be unacceptable for most developers.
Finally, you should use the pre-installed shared runtime in the \Windows directory. If you try and re-install the shared runtime on the device you will notice an unacceptable decrease in your available RAM.
Writing Native applications
Native applications, available in RhoMobile Suite 2.0 and higher should not be developed for the MC2100. Creating a CAB file containing all code for the native application will prove too large to install on the device.
A native application which uses the shared runtime, as described at http://docs.rhomobile.com/rhoelements/rhoelements2-native#applications-in-shared-mode should also not be developed for the MC2100, applications developed in this way are currently prevented from running on the device.
Other Tips
You can increase the amount of RAM available to running applications on the MC2100, sacrificing storage memory which comes from the same pool of RAM:
- Go to the Control Panel
- Double Click System
- Select the Memory Tab
- Slide the slider towards 'Storage Memory', which gives more memory to 'Program memory'
- Select 'OK'
- Warm boot your device (Start --> Programs --> Warm Boot) for the change to take effect
Anonymous (not verified)