Share via


When Do You Switch From The Emulator To A Device?

As a comment on my last post, Matthew pointed out that he generally only uses the emulator for simple apps and generally uses real devices for testing.  Our long term goal for the emulator is to make it good enough for many developers to build and test their applications without the need to purchase devices.  There's a few reasons for this :

  1. The Windows Mobile development platform is consistent so the APIs exposed by the emulator are consistent with the APIs exposed by devices 
  2. Devices are expensive (both device and service)
  3. You can't always buy your target device in your territory, for example a European developer can't easily buy the Q
  4. With the proliferation of different device form factors, keeping the test matrix up to date is time consuming and expensive

We've made big strides with our device emulator in the last few years.  We moved to true ARM emulation, we've improved performance and in Windows Mobile 6 added new functionality for testing interaction with cellular events and testing GPS applications.  With the emulator we're able to release emulator packs to support new form factors as they come to market.  For example, we were able to release a Smartphone Landscape emulator pack to support the Q and Blackjack when they launched.

Which brings me to my question!  What programming tasks have forced you to move from working in the emulator to working on an actual device?

Comments

  • Anonymous
    February 15, 2007
    I was working on an app that required Outlook contacts, and AFAIK at the time, there was no way to make my data available through the emulator - so all my testing was done on the device.

  • Anonymous
    February 15, 2007
    When working on a language that is not supported by the emulator

  • Anonymous
    February 15, 2007
    We are still missing Bluetooth emulation... :( That could be a reason to move to the device for the development stage...

  • Anonymous
    February 15, 2007
    When testing IrDA and Bluetooth code, no way to simulate without real hardware.

  • Anonymous
    February 15, 2007
    Barcode scanning.  There are dozens of devices that can scan barcodes and each one has its own SDK.  The only way to test the SDK and the physical scanning engine is with a live device.

  • Anonymous
    February 15, 2007
    Thanks for the feedback so far and keep it coming. Outlook Data : Although I haven't tried it, you should be able to sync the emulator directly with your Exchange Server to get Outlook data OR cradle the emulator with ActiveSync and sync with Outlook on your desktop. IR/Barcode/Bluetooth : Thanks for these.  I'll send the ideas back into the product team for future consideration. Keep it coming.

  • Anonymous
    February 15, 2007
    I have to use the real device when working with serial port data, particularily incoming GPS data.

  • Anonymous
    February 15, 2007
    The comment has been removed

  • Anonymous
    February 15, 2007
    The comment has been removed

  • Anonymous
    February 15, 2007
    Photo capture. I was working on a project recently that required me to write code to capture photos, but with no device, this made it very hard (Device is an expensive Symbol device). Being able to emulate the camera API, and GPS would make the circle complete

  • Anonymous
    February 16, 2007
    I've just switched back from device to emulator  as my WMDC passthrough has just packed up... I wish emulator and device internet connectivity was a lot more solid when developing....

  • Anonymous
    February 16, 2007
    UI development. The mouse is not a realistic replacement for a Pocket PC pen and a full fledged keyboard is not as limited as a Smartphone keypad with T9.

  • Anonymous
    February 16, 2007
    What about being able to send the emulator an SMS

  • Anonymous
    February 16, 2007
    The comment has been removed

  • Anonymous
    February 16, 2007
    We gave up on the emulator for any number of reasons. I'll try to list them in order of descending importance:

  1. The emulator performance is, all said and done, horrendous. I know ARM emulation is no trivial thing (we have our own ARM emulation core as part of another project) and I have no qualms with the relative performance of the emulator, but in practical terms the performance is too poor for any meaningful debugging. Furthermore part of our project are performance-oriented, and for those there's no subsitute to an actual working ARM for testing.
  2. Some parts of the OS have very idiosyncratic behavior. For example: Windows Media Player simply ignores the uiMode property under the emulator, which makes it quite impossible to develop WMP-powered applications  using the emulator. Since there are no updated emulator images (to my knowledge) and I don't have the know-how or inclination to build my own image with Platform Builder, this reduces our faith in the emulation accuracy considerably.
  3. The emulator does not support "esoteric" resolutions and/or form factors; the device we're currently working on has a WVGA screen and it's impossible to work with using the emulator.
  4. Although this is not usually a problem, the differences between the various WM input devices and a mouse can, at times, really break a UI. This basically sums it up, I hope it gives you food for thought. Given serious performance increases (I'm sorry, as impressive as the 40% boost in DE 2.0 sounds it's just not good enough) I think the emulator would be an absolute must-have tool; currently, though, whenever I use it I feel that it's slowing me down.
  • Anonymous
    February 17, 2007
    For barcode scanning, you'd have to thump the various OEMs and make them use a common API. Frankly this can't come soon enough! (Please adopt Symbol's, it's the best of the lot IMO). I'm not really serious about this - I know that 99%+ of Windows Mobile devices will never see a barcode scanner. Recently I've been trying to write a comms routing engine which uses WiFi or Ethernet through the 'Work' connection if a (W)LAN interface is available, or GPRS if not. This was very difficult to debug because you lovely people (sarcasm) decided to disable the radios while ActiveSync was active on Windows Mobile 5.0, so some debugging was done with the Pocket PC 2003 SE Emulator, but that does not feature a working GPRS emulation (looking forward to WM 6 emulators on this front). I do normally prefer a device because you really know what you're getting. You can't easily debug suspend/resume scenarios (either on the emulator or the device), although I admit it's a challenge to keep the debugger connection going through suspend/resume cycles!

  • Anonymous
    February 18, 2007
    hi, needed when testing GSM/WIFI connectivity. But also sometimes because the emulator is a bit slow compared with my iPaq. regards

  • Anonymous
    February 18, 2007
    The comment has been removed

  • Anonymous
    February 19, 2007
    So if I summarized what I've read so far I'd say main areas for improvement are :

  • Broader, more realistic hardware support - IR, Serial, Bluetooth, USB, WiFi, Barcode, Camera, comms (wifi and phone)

  • Performance

  • Pen input A couple of notes.  With the Windows Mobile 6 SDK you can send an SMS to the emulator using the CellEmu tool.  You can also simulate those events with the 5.0 SDK but the 6 SDK has a better tool.  The 6 SDK also has improved support for battery life status so you can set the battery into a number of states. Followup questions :

  • Screen emulation- AFAIK we support all Windows Mobile resolutions in market.  Is the device you're trying to emulate released already or is it still in development?

  • WMP issue : See if the emulator ignores uiMode in the 6 SDKs.  I wonder if it's not the emulator that is behaving differently but just that our software is an oler build on the emulator than on the device and the bug was fixed on the device version of the software.

  • Language support : Have you downloaded our localized emulator images?

  • Anonymous
    February 20, 2007
    The comment has been removed

  • Anonymous
    February 20, 2007
    The comment has been removed

  • Anonymous
    February 20, 2007
    Is the current emulator setup works in windows vista ?

  • Anonymous
    February 20, 2007
    No offense, but barcode scanning? Lol ;). There are so many different devices out there each with their own SDK. Not to mention changes that come with updates etc etc. Personally I see no use whatsoever of implementing this into the emulator. I've been working on a barcode program for a year now and I can only say that I nearly always work on the emulator (because deployment to my device lasts about 5minutes..) and only in case of real barcode testing i switch to the device. This is easily done with debug conditionals. My code is layered nicely, which means I could just emulate a barcode being scanned quite easily. Its only obvious that when testing different barcode settings that you need to do this on the device, but since most SDK's come with nice documentation, that shouldnt be such a problem either. However, what I could be better in the emulator is the use of the function buttons. When I press F3 or something, I dont want the emulator to open some program for me, I want that keyevent passed to my program directly. My 2 different devices (HHP and Casio) dont do this. And personally, I 'd prefer an easier (meaning faster) way to copy files from and to the emulator. Kind regards.

  • Anonymous
    February 23, 2007
    The comment has been removed

  • Anonymous
    February 23, 2007
    How about if you wanted to test the reaction of multiple input buttons that can be pushed to cause a crash?

  • Anonymous
    February 24, 2007

  • Screen emulation- AFAIK we support all Windows Mobile resolutions in market.  Is the device you're trying to emulate released already or is it still in development? The device is not yet on the market, and is due to be released in March (now that the NDAs are irrelevant, I can tell you that it's EM-One, http://www.sharp.co.jp/em/special/s01sh/).

  • WMP issue : See if the emulator ignores uiMode in the 6 SDKs.  I wonder if it's not the emulator that is behaving differently but just that our software is an oler build on the emulator than on the device and the bug was fixed on the device version of the software. I won't be installing any additional SDKs this far into the development, but I'll try this out on the next version. As for your supposition, it's what I also assumed, but it changes nothing because there were no newer emulator images released.

  • Anonymous
    February 25, 2007
    I'm developing a service which "talks" to other phones using the phone network wih TAPI (not packet data, but CSD). THis can't be done on the emulator because:

  1. AFAIK, I can't have two emulators talking to each other via a simulated phone network
  2. The data I need to send and receive must be processed in real time, and the performance obliges me to run simulations 10 times slower than actual time. Regarding problem #2, I woul be glad if the old i386-based emulator was still avaiable: it would solve my problems in this area.
  • Anonymous
    March 01, 2007
    Never.   Our team has completely abandoned the emulators since the PPC2002 days.  Back then they were ridiculously slow.  I have noticed some improvements with them as of late. Debugging & transferring unmanaged applications is just as fast or faster (for our team) than using emulators.

  • Anonymous
    March 14, 2007
    How about real keyboard emulation? Also using T9 and how it interopates with form input.  The eumlator does none of these things.

  • Anonymous
    March 17, 2007
    @ chublogga & jamespr: i've published a whole series on device emulator 1.0 over at the funcave (www.chrisrue.com), including a detailed walkthrough of configuring direct push connectivity to exchange server, using either emulated wifi or activesync guest pass-through. here's the index URL for the entire series: http://www.chrisrue.com/funcave/2006/06/wm5-device-emulator-index.html all best, chris

  • Anonymous
    April 09, 2007
    In a very simple and usual case: sending sms to an emulator seems to be impossible with the new 6SDK emulators and the CallEvents gadget (http://msdn2.microsoft.com/en-us/library/ms838145.aspx). The source program does not even compile now under VS2005Sp1+WinMobile6SDK as lots of C# language changes have been made between VS2003 and 2005; besides, it's even tough (haven't yet) to find whether a WM6 Emulator has a virtual radio, which is required by the CallEvents tool for it to function. Any idea if an updated CallEvents will be released?

  • Anonymous
    May 30, 2007
    OEM Hardware doesn't always function exactly as the emulator API would (for getting the device ID under WM 5.0, for example). We have found some differences in JPEG support under different OEMs (SHLoadImageResource). Some inter-application issues (crashes and hangs) can be demonstrated on device only. Miron

  • Anonymous
    April 26, 2008
    Bluetooth emulation still not there in Vs 2008 prof. + mobile 6.0 prof. sdk on Vista. How are we supposed to test bluetooth hardware with the emulator? I was very happy to see a winsock extension for Bluetooth and thought it is much easier than programming for JSR 82 in Motorola/Nokia SDKs under Java. But what is the use in providing a programming support without proper tools? Mot. and Nokia SDKs have device emulators that connect to underlying BT and let you test correctly. When will we see BT emulation? Thanks Mani

  • Anonymous
    July 16, 2008
    to mani's bluetooth emulation on nokia s60 SDK or sun's wtk, the emulation does not require the bluetooth hardware at all, you can test the samples for bluetooth between phone to phone only and not phone to (not host)PC, if you can do that then there is emulation support for local bluetooth hardware. no offense!

  • Anonymous
    August 10, 2008
    The comment has been removed

  • Anonymous
    August 26, 2008
    The comment has been removed

  • Anonymous
    December 17, 2008
    I've decided not to wait until MS released Bluetooth for the emulator and implemented it myself. If you are interested have a look at http://code.google.com/p/bthmsdevemul/. Your comments and suggestions are welcome.

  • Anonymous
    March 06, 2009
    The comment has been removed