RhoElements Performance Improvements #1
How to improve your HTML5 rendering and application performance.
An overview of the RhoElements performance improvement drive
The great thing about an open developer community is the ability to interact and work at a group and individual level with many of the developers out there. It really allows us to prioritize product feature sets and focus on the things that the greater community feels are a priority. It also allows us to get real-time feedback on the product and address any concerns that may arise in a more agile process. The RhoMobile Suite team really prides itself on being agile and producing a product that not only meets the needs of those developing enterprise cross-platform applications, but also does so with the utmost level of quality and performance. Recently there have been concerns that HTML5 cannot deliver a performant application, and with the latest announcements around Facebook and their application it has even more people wondering.
In all reality there are many performant HTML5 applications that have been very successful while following key best practices. As a result we really listened to the community, got the team focused and are excited to present a blog series on how to do just that. Over the coming weeks we will be sharing with you a series of best practices, test suites and configuration settings that allow you to make intelligent decisions on how to best design, architect and develop your cross-platform application.
The first step: Improving Motorola WebKit performance
Our first step is very simple. As a result of our focus on performance and this blog series, we also worked with a number of developers in the community on a series of edge cases. This allowed us to drive further optimization into the HTM5 Webkit rendering engine that is provided with RhoElements for devices with a lower powered CPU and less available memory than your modern day consumer smartphones. And the great news is that it had a general impact as well on overall performance of the solution.
This hotfix has been developed to deliver performance improvements in the Motorola WebKit engine for both Windows Mobile and Windows CE devices. It is recommended that anybody developing applications for Motorola devices running Windows operating systems upgrade to this latest release to see a noticeable decrease in rendering time.
Contents of the Patch and Installation
Prerequisites
In order to install this hotfix you must first download and install Motorola RhoMobile Suite 2.1, available from
http://www.motorola.com/Business/US-EN/RhoMobile%20Suite/Downloads
Note: This fix is already included in RhoMobile Suite 2.2.
Installation and Deployment Instructions
This patch consists of four Windows DLLs which need to be copied to your Windows Mobile / Windows Embedded Handheld or Windows CE device. It is necessary to copy the DLLs manually to your device as you may have multiple RhoElements applications installed.
This patch is attached to this blog post as a zip file, MotorolaWebKit_r9406.zip. Download this zip file and extract it to a temporary directory on your computer, the contents should be as follows:
- eklibrary.dll
- openssl.dll
- PBEngine_WK.dll
- webkit.dll
To install this patch please follow the steps below:
- Shutdown any instances of RhoElements running on your device.
- Connect your device to your PC using ActiveSync or the Windows Device Center
- On your device locate RhoElements application installation and overwrite the DLLs present on the device as follows:
For Hybrid applications:
- If your applications are using the shared runtime then navigate to \Program Files\RhoElements\
- In that directory you will see four DLLs whose names correspond with the DLLs in this patch, overwrite them with the patched DLLs.
- For more information on the shared runtime see my blog post at https://developer.motorolasolutions.com/community/rhomobile-suite/docs/developer-reference/blog/2012/06/29/accessing-the-shared-runtime
- The location of the shared runtime may differ on localized Operating Systems, for example on an Italian OS the location is \Programmi\RhoElements\
For Native applications:
- Any application developed in RhoStudio which does not use the shared runtime is considered a Native Application.
Option 1: modifying your application on your device.
- The location of a Native application on your device will depend on the application name, for example by default an application named “MyApp” will reside in \Program Files\MyApp\
- In your application’s directory you will see four DLLs whose names correspond with the DLLs in this patch, overwrite them with the patched DLLs.
- Every time you rebuild your application you will need to repeat this step, to apply this patch properly it is recommended you modify your RhoMobile Suite installation.
Option 2: modifying your RhoMobile Suite installation.
- To upgrade the Motorola WebKit version installed with RhoMobile Suite 2.1.1.7 you need to overwrite the DLLs on your computer, then they will be picked up the next time you build your application
- On a PC this can be done by browsing to [Drive]:\MotorolaRhoMobileSuite2.1.1.7\ruby\lib\ruby\gems\1.9.1\gems\rhoelements-2.1.1.7.1\libs\data
- In this directory you will see four DLLs whose names correspond with the DLLs in this patch, overwrite them with the patched DLLs.
Anonymous (not verified)
3 Replies
Hi Darryn, I'm still using Rhodes 3.3.2 so this article is not for me, but I'd like to know how to optimize my apps performance in WM 6.5 device with low end CPU and memory, especially when my SQLite database is huge (12 megs). Heck, the app just shows the loading screen and then exits. The same app works fine on an Android smartphone, specifically, SGS2.
FYI that to view the the installed DLLs via ActiveSync, you must be able to view these hidden files.
In Windows XP....
<ol>
<li>Open Windows Explorer</li>
<li>From the menu, navigate to Tools > Folder Options > View > Hidden files and folders</li>
<li>Select "Show hidden files and folders" and click "OK" button</li>
</ol>
Now you should be able to see the DLLs as described above.