17 Replies Latest reply on Aug 17, 2012 3:19 PM by Peter Arcuri

    how to improve windows mobile performance?

    Ben Lam

      Hi, I'm starting to play with Rhomobile, going through the tutorial (http://docs.rhomobile.com/rhoelements/rhoelements-tutorial#enabling-barcode-scanning), on a Motorola MC9090, Windows Mobile 6.1 Classic, processor: PXA270-624Mhz, memory: 54.19MB.

       

      I'm analyzing the performance to see if we can use Rhomobile in our projects.


      I used 'production build' in Rhomobile then installed the CAB onto the device.


      The page transitions (tapping on 'Products') and also the loading of pages (new Product) seem slow.


      I am wondering if I'm missing something? I don't believe there's a 'release build' since Ruby is interpreted... I think I read in the documentation I can remove transitions... beyond that is there other ways for me to optimize my app?


      Does Rhomobile run faster on iOS/Android and it's just that Windows Mobile is a little slow?


      Any help/info appreciated. Thanks!

        • Re: how to improve windows mobile performance?
          Glenn Sayer

          Ben,

           

          Transitions and button shadows will cause performance issues.  These all take cycles to do and these older devices don't have the memory, processor, or graphics card processor to do heavy fancy graphics.  With this in mind, it does perform much better on Android devices as these usually have faster processors and more memory.

           

          The best way to address performance issues is to start removing graphic functions that are not needed (transitions, shadows,...) and also any JS that is not needed.  Some of the Mobile Web Frameworks can also put a lot of strain on a system.

          • Re: how to improve windows mobile performance?
            Peter Arcuri

            Ben, I agree with Glenn's comments, but be advised that MotoWebKit for the MC9090 isn't formally supported at this time. See the release notes for compatability as it relates to device capabilites. Motorola is currently working on reducing the memory footprint for MotoWebKit, which provides scanning and other device capabilities unique to Moto devices. The plan is to have this in version 2.2, shortly after v2.1. If all goes as plan version 2.1 should come out in the next several weeks.

              • Re: how to improve windows mobile performance?
                Ben Lam

                Many thanks Glenn & Peter.

                 

                Is Windows CE 6 supported? Some sources say it is and others only list Windows Mobile 6.

                 

                Tried running the test app on a MC9190 with CE 6. I see the app being built in the console then it clears and the app doesn't get run on the device. The app seem to be copied over. When I double tap the application on the device nothing happens.

                  • Re: how to improve windows mobile performance?
                    Peter Arcuri

                    Hi Ben, the release notes for RhoMobile v2.0.5 states full support for MC9190 running WinCE 6.0. See snapshot.

                     

                    CE6Support.png

                    With regards to running on device, you may want to build a Cab file first then copy it over to the device. Go through the steps of installing the Cab then launch the app. See if this works.

                      • Re: how to improve windows mobile performance?
                        Ben Lam

                        Many thanks Peter, I tried the following with the same result - nothing happens when I double tap RhoMobileApplication2.exe and no log file in the installed folder (\Program Files\RhoMobileApplication2) or inside the \Program Files\RhoMobileApplication2\rho folder. It runs fine on the 9090 w/ WM6 butI can't seem to get it to work with 9190 CE6.

                         

                        - 'Production build' in Rhostudio and installed the CAB on the 9190

                        - Installing RhoStudio on my laptop and tried running from there

                        - Created a new project & run configuration

                         

                        I don't believe there are any prerequisites that need to be installed on the device?

                         

                        The last time I attempted the run the console didn't clear (as it did every other time) so I am pasting the text here to see if it means anything to you (ignore the date/time stamp - cold booted the device).

                         

                        Any troubleshooting tips really appreciated.

                         

                        I 03/05/2005 00:53:48:000 4eb14e8a           MainWindow| OnLicenseScreen

                        I 03/05/2005 00:53:48:000 4eb14e8a           MainWindow| RhoSetFullScreen: 1

                        I 03/05/2005 00:53:48:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=320

                        I 03/05/2005 00:53:50:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=320

                        I 03/05/2005 00:53:50:000 4eb14e8a     Core::CSync::Run| Running Event:

                        I 03/05/2005 00:53:50:000 4eb14e8a           MainWindow| ACTIVATE: 0

                        I 03/05/2005 00:55:41:000 4eb14e8a Scanner::CScanner::LoadEMDK| RSM Functionality is not supported on this device

                        I 03/05/2005 00:55:43:000 4eb14e8a     Core::CSync::Run| Running Event:

                        I 03/05/2005 00:55:43:000 4eb14e8a     Core::CSync::Run| Running Event:

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| ACTIVATE: 1

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| OnLicenseScreen

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| RhoSetFullScreen: 0

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=294

                        I 03/05/2005 00:55:44:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=268

                        I 03/05/2005 00:55:46:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=268

                        I 03/05/2005 00:55:47:000 4eb14e8a           MainWindow| ACTIVATE: 0

                        I 03/05/2005 00:55:47:000 4eb14e8a            RhodesApp| callAppActiveCallback

                        I 03/05/2005 00:55:47:000 4eb14e8a         AppCallbacks| addCommand: APP-DEACTIVATED

                        I 03/05/2005 00:55:47:000 4eb14e8a                  Net| Method: GET;Url: http://127.0.0.1:1043/system/deactivateapp

                        I 03/05/2005 00:55:47:000 ae914002         AppCallbacks| process command: APP-DEACTIVATED

                        I 03/05/2005 00:55:47:000 ae914002         AppCallbacks| ThreadQueue blocked for 4294967295 seconds...

                        I 03/05/2005 00:55:47:000 6e596fde           HttpServer| Process URI: '/system/deactivateapp'

                        I 03/05/2005 00:53:48:000 4eb14e8a           MainWindow| OnLicenseScreen

                        I 03/05/2005 00:53:48:000 4eb14e8a           MainWindow| RhoSetFullScreen: 1

                        I 03/05/2005 00:53:48:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=320

                        I 03/05/2005 00:53:50:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=320

                        I 03/05/2005 00:53:50:000 4eb14e8a     Core::CSync::Run| Running Event:

                        I 03/05/2005 00:53:50:000 4eb14e8a           MainWindow| ACTIVATE: 0

                        I 03/05/2005 00:55:41:000 4eb14e8a Scanner::CScanner::LoadEMDK| RSM Functionality is not supported on this device

                        I 03/05/2005 00:55:43:000 4eb14e8a     Core::CSync::Run| Running Event:

                        I 03/05/2005 00:55:43:000 4eb14e8a     Core::CSync::Run| Running Event:

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| ACTIVATE: 1

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| OnLicenseScreen

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| RhoSetFullScreen: 0

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=294

                        I 03/05/2005 00:55:44:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=268

                        I 03/05/2005 00:55:46:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=268

                        I 03/05/2005 00:55:47:000 4eb14e8a           MainWindow| ACTIVATE: 0

                        I 03/05/2005 00:55:47:000 4eb14e8a            RhodesApp| callAppActiveCallback

                        I 03/05/2005 00:55:47:000 4eb14e8a         AppCallbacks| addCommand: APP-DEACTIVATED

                        I 03/05/2005 00:55:47:000 4eb14e8a                  Net| Method: GET;Url: http://127.0.0.1:1043/system/deactivateapp

                        I 03/05/2005 00:55:47:000 ae914002         AppCallbacks| process command: APP-DEACTIVATED

                        I 03/05/2005 00:55:47:000 ae914002         AppCallbacks| ThreadQueue blocked for 4294967295 seconds...

                        I 03/05/2005 00:55:47:000 6e596fde           HttpServer| Process URI: '/system/deactivateapp'

                        I 03/05/2005 00:53:48:000 4eb14e8a           MainWindow| OnLicenseScreen

                        I 03/05/2005 00:53:48:000 4eb14e8a           MainWindow| RhoSetFullScreen: 1

                        I 03/05/2005 00:53:48:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=320

                        I 03/05/2005 00:53:50:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=320

                        I 03/05/2005 00:53:50:000 4eb14e8a     Core::CSync::Run| Running Event:

                        I 03/05/2005 00:53:50:000 4eb14e8a           MainWindow| ACTIVATE: 0

                        I 03/05/2005 00:55:41:000 4eb14e8a Scanner::CScanner::LoadEMDK| RSM Functionality is not supported on this device

                        I 03/05/2005 00:55:43:000 4eb14e8a     Core::CSync::Run| Running Event:

                        I 03/05/2005 00:55:43:000 4eb14e8a     Core::CSync::Run| Running Event:

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| ACTIVATE: 1

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| OnLicenseScreen

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| RhoSetFullScreen: 0

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=294

                        I 03/05/2005 00:55:44:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=268

                        I 03/05/2005 00:55:46:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=268

                        I 03/05/2005 00:55:47:000 4eb14e8a           MainWindow| ACTIVATE: 0

                        I 03/05/2005 00:55:47:000 4eb14e8a            RhodesApp| callAppActiveCallback

                        I 03/05/2005 00:55:47:000 4eb14e8a         AppCallbacks| addCommand: APP-DEACTIVATED

                        I 03/05/2005 00:55:47:000 4eb14e8a                  Net| Method: GET;Url: http://127.0.0.1:1043/system/deactivateapp

                        I 03/05/2005 00:55:47:000 ae914002         AppCallbacks| process command: APP-DEACTIVATED

                        I 03/05/2005 00:55:47:000 ae914002         AppCallbacks| ThreadQueue blocked for 4294967295 seconds...

                        I 03/05/2005 00:55:47:000 6e596fde           HttpServer| Process URI: '/system/deactivateapp'

                        I 03/05/2005 00:53:48:000 4eb14e8a           MainWindow| OnLicenseScreen

                        I 03/05/2005 00:53:48:000 4eb14e8a           MainWindow| RhoSetFullScreen: 1

                        I 03/05/2005 00:53:48:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=320

                        I 03/05/2005 00:53:50:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=320

                        I 03/05/2005 00:53:50:000 4eb14e8a     Core::CSync::Run| Running Event:

                        I 03/05/2005 00:53:50:000 4eb14e8a           MainWindow| ACTIVATE: 0

                        I 03/05/2005 00:55:41:000 4eb14e8a Scanner::CScanner::LoadEMDK| RSM Functionality is not supported on this device

                        I 03/05/2005 00:55:43:000 4eb14e8a     Core::CSync::Run| Running Event:

                        I 03/05/2005 00:55:43:000 4eb14e8a     Core::CSync::Run| Running Event:

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| ACTIVATE: 1

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| OnLicenseScreen

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| RhoSetFullScreen: 0

                        I 03/05/2005 00:55:43:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=294

                        I 03/05/2005 00:55:44:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=268

                        I 03/05/2005 00:55:46:000 4eb14e8a           MainWindow| resizeWindow: xSize=240;ySize=268

                        I 03/05/2005 00:55:47:000 4eb14e8a           MainWindow| ACTIVATE: 0

                        I 03/05/2005 00:55:47:000 4eb14e8a            RhodesApp| callAppActiveCallback

                        I 03/05/2005 00:55:47:000 4eb14e8a         AppCallbacks| addCommand: APP-DEACTIVATED

                        I 03/05/2005 00:55:47:000 4eb14e8a                  Net| Method: GET;Url: http://127.0.0.1:1043/system/deactivateapp

                        I 03/05/2005 00:55:47:000 ae914002         AppCallbacks| process command: APP-DEACTIVATED

                        I 03/05/2005 00:55:47:000 ae914002         AppCallbacks| ThreadQueue blocked for 4294967295 seconds...

                        I 03/05/2005 00:55:47:000 6e596fde           HttpServer| Process URI: '/system/deactivateapp'

                          • Re: how to improve windows mobile performance?
                            Peter Arcuri

                            For clarity, in your Build.yml file do you have the following?

                             

                            app_type: "rhoelements"

                            capabilities:

                              - motorola_browser

                             

                            If not try building your app with those parameters and re-deploy on the MC9190.

                              • Re: how to improve windows mobile performance?
                                Ben Lam

                                Thanks Peter, it had the right app_type but not capabilities. I added motorola_browser and still have same result unfortunately... Is the console log written out somewhere I can review? Is there a way to troubleshoot why the app doesn't seem to launch on the device as I don't see a log file there? It seems it runs fine on the WM6 9090 but not on the CE6 9190 and I wonder why.

                                  • Re: how to improve windows mobile performance?
                                    Peter Arcuri

                                    It sounds as if the wrong RhoElements runtime version is being incorporated in your package. Try loading the RhoElements runtime separately on the device and target any website to see if it runs properly. This is done by modifying the Config.XML file to predetermine which site to hit upon launch or you can simply turn debug on also within in the Config.XML file. In debug, you will be presented an address bar to enter the URL.

                                     

                                    The RhoElements shared runtime specifically for WinCE is located in:

                                     

                                    \MotorolaRhoMobileSuite2.0.5\RhoElements2 Shared Runtime\Windows CE\RhoElements 2.0.5.27.0 CE Runtime.cab

                                      • Re: how to improve windows mobile performance?
                                        Ben Lam

                                        Thanks Peter, after installing the specified CAB I am able to run RhoElements.exe with debug on and successfully browsed to www.google.ca. Sweet! What are my next troubleshooting steps?

                                          • Re: how to improve windows mobile performance?
                                            Peter Arcuri

                                            Hi Ben, I've investigated this further and found in the documentation that in order to target a WinCE device the corresponding Platform Software Development Kit (PSDK) is required with an entry added to the Build.yml file. The docs.rhobile.com for native application develpment shows use of the MC3000.

                                            WinCEdevices.png

                                            Since you are using MC9190 CE, you will need the MC91x0 CE6.0 Platform SDK (PSDK) v.0106.046.0. You can download this from the Motorola support site;

                                             

                                            http://support.symbol.com/support/search.do?cmd=displayKC&docType=kc&externalId=13404&sliceId=&dialogID=412000039&stateId=1 0 411990477

                                             

                                            Let me know how that goes.

                                              • Re: how to improve windows mobile performance?
                                                Ben Lam

                                                Many thanks Peter,

                                                 

                                                Sorry, I missed that when reading the docs. I installed the PSDK.

                                                 

                                                How do I find out what to put in place of "MC3000c50b (ARMV4I)" for the 9190 (and for other Motorola devices for that matter)? The readme says a build configuration will be aded to Visual Studio 2008 but I don't see it.

                                                 

                                                I tried "MC9100c60 (ARMV4I)" and a number of others without success (I get the build error

                                                vcbuild.exe : error VCBLD0006: invalid configuration name: RELEASE|MC9100C60 (ARMV4I))

                                                  • Re: how to improve windows mobile performance?
                                                    Peter Arcuri

                                                    Let me ask the question and see what I can come up with.

                                                    • Re: how to improve windows mobile performance?
                                                      Peter Arcuri

                                                      Okay Ben, here is the latest... Use of the "MC3000c50b (ARMV4I)" is for all Moto's WinCE platforms regardless the device. So, you'll need to download and install this specific PSDK - Platform SDKv1.4 for MC3000c50B (BSP35.0). You can get it here:

                                                      http://support.symbol.com/support/search.do?cmd=displayKC&docType=kc&externalId=11964&sliceId=&dialogID=412928442&stateId=1%200%20412926329

                                                       

                                                      You can confirm you have Visual Studio 2008 and have successfully installed this generic PSDK by going through the steps below:

                                                      1. Start Visual Studio 2008
                                                      2. Select File->New->Project
                                                      3. Select  Other Languages->Visual C++->Smart Device->Win32 Smart Device Project
                                                      4. Type any name, and click OK
                                                      5. Check and see what is listed in the “Installed SDKs” column. It should look something like this:

                                                      RequiredPSDK.png

                                                        • Re: how to improve windows mobile performance?
                                                          Ben Lam

                                                          Peter, thank you! You're spot on! The app now runs on the 9190 and is faster than the 9090.

                                                           

                                                          Compared to a .NET CF application it still runs slow (screens loading for example). Demoing to our sales guy he wonders if our client base will accept the performance hit as the clients who spend money on a scanner and custom software do have some performance expectations.

                                                           

                                                          Is RhoMobile for clients who need to trade multiple platform operation for performance? Perhaps Rhomobile is more suited for our clients who want to use consumer based devices vs. traditional mobile scanners?

                                                            • Re: how to improve windows mobile performance?
                                                              Peter Arcuri

                                                              I’m glad you were able to get things running on the WinCE platform.

                                                               

                                                              I agree there is a performance hit, when it comes to web-based apps versus native. But web has long-term benefits where web apps of today will survive the uncertainty of the OS treadmill. Will .NET CF run on the next relevant OS for the enterprise, probably not. So investing in an app today could end up to be costly later if it’s not xplatform ready. We're seeing more of our traditional enterprise clients enbracing RhoMobile for this full support for WinCE, WinMo, and also the popular OSes such as Android and iOS.

                                                               

                                                              Typically, enterprise apps are straight forward in that data is captured without having to load high end graphics so UI refresh isn’t noticeable to end users. Typically, that is - depends on the app and its design. Having the ability in taking one app and target all these OSes is certainly a feature enterprises are increasingly adopting.

                                                                • Re: how to improve windows mobile performance?
                                                                  Ben Lam

                                                                  Thanks Peter, I see, I will discuss this trend in our next team meeting.

                                                                   

                                                                  Is there some kind of performance Rhomobile optimization guide? I seem to recall from reading the docs I can turn transitions off etc. which should help. I should say the bar code reading is very fast, just the UI is a tad slow.

                                                                   

                                                                  Thanks again for all your help.

                                                                   

                                                                  PS Is the only android scanner Motorola currently has available is the enterprise tablet? Is there plans to make portable scanners such as the MC9190 available with android?

                                                                    • Re: how to improve windows mobile performance?
                                                                      Peter Arcuri

                                                                      While there are various methods and techniques for web elements rendering performance out on the internet, Motorola is ever so improving performance with RhoElements along with fixes and new features - planned for future releases. Version 2.1 is schedule to be released in the next couple of weeks, while version 2.2 in particular (planned for late November) will have even further improvements.

                                                                       

                                                                      Motorola is has adopted a multi-OS strategy and in so you will observe devices with different OSes. The chosen OS for devices is typically associated with the industry or type of applications best suited for the ergonomics of the device. For instance, warehouse suitable device such as MC91xx will continue on the Windows path while consumer (customer) facing devices will lean towards the Android OS. All is subject to change, however, since we now live in a very dynamic era.