How does the speed of a program when run in the simulator compare to a real iPhone or Ipod touch? Is it faster or slower?
iPhone simulator is simulator. It doesn't emulate real hardware, just mimics its behavior. In fact, apps compiled for simulator are just x86 binaries executed on Mac OS X machine directly. So it fully utilizes all processing power and network bandwidth of the development machine.
You can assume you're running regular Mac OS X app. In fact, it is. This is the answer for why we can't run iOS app in iOS simulator. You need compiled binary for x86. However, with this approach, you can't get exactly same behavior with real device.
Basic UIKit graphics are very fast because it's simulated on top of OS X's Quartz which is hardware accelerated, but the OpenGL ES context is an exception. It's really slow. Even it's a simulator, the simulator emulates OpenGL ES with software renderer to display correct result. It doesn't use hardware accelerations.
Android emulator is an emulator. It's essentially a VM emulates all of target machine behaviors, so it is far more slower than iPhone simulator. But it can behave exactly same with real device. You can even run Android app from Android market on Android emulator directly.
However there is some gotchas. There're so many Android hardware, but emulator only emulates a part of them. Google's implementation. If your device have its own special module, of course, it cannot be emulated. It's possible using some kind of emulator plugin from each hardware vendors, but as I know, almost no vendor offers it.
So, iPhone simulator is always a lot faster than real device. And Android emulator never been faster than real device even it had become a lot faster than initial release.
iPhone simulator (fully?) utilizes computer resources so it runs faster than real device.
That may mean that you need to always make application tests on real device to get adequate picture of application performance.
Related
I'm looking for a new testautomation tool to test our responsive web application for different devices (Windows Phone, Android, Iphone, Ipad etc). Maybe it is a misunderstanding, but do I need a Mac computer to test a web application through a Ipad or Iphone. For a tool like SilkMobile this is not necessary.
See:
http://appium.io/slate/en/v1.1.0/?ruby#running-appium-on-mac-os-x
I hope you can help me out.
You can use virtual machine to run OS X and iOS emulator.
To test ios applications on IPad or Iphone through appium, Mac ios x 10.7 or higher is required.
you may not need real devices like iphone or ipad, you can use simulators, But Mac PC or Book is required. [Or can be virtually installed in VMware workstation]
See the requirements, Appium requirments
I wonder if I update my primary testing device to iOS8, will this have a negative effect on testing iOS apps compiled with iOS7 SDK on this device? For example bugs related specifically to iOS8, which would not appear on device running iOS7. What problems should I expect?
Ideally, you should have one device to test each operating system version you are targeting. Once you upgrade, you will not be able to catch any issues that relate to iOS7.
I have both provisioned devices set up to be built to by XCode and the built-in iOS simulator. In general I like to do quick bug-fixes and early-stage testing in the simulator because it tends to be able to do multiple runs more quickly.
Does anyone know of a resource that lists known issues with the simulator? By "known issues" I mean situations where the simulator's behavior deviates significantly from that of the device. Sometimes I won't know if something is a genuine bug or just a simulator problem and it's kind of a pain to run on a testing device just to verify.
I'm trying to develop an app using Xcode 4.3.3 with iPhone 5.1 simulator.
When i run this app on simulator, i got no warnings and it's working very well. But,when i try to make this work on iOS device,i got an warning message which is Received memory warnings. I got this warning message while the app starts to display images on the screen. I'm using SDWebImage project which is available in github to display images.I think this problem is releated to how memory organization differs from iOS device to simulator. I have looked this question How does building for iOS device and simulator actually differ? to see how the building app for iOS Device and Simulator differs. But,what i found about memory organization didn't satisfy me. Do you guys have any idea why this is happening ?
Another question : Is there any limitation for an application in the context of memory management? What i mean is, for example let's say 5MB memory is allocated ,will i get any messages which points to this issue ?
Thanks in advance.
You will never get memory warnings in the simulator unless you create them yourself (with the "Simulate Memory Warning" option). You have access to the entire memory of the Mac, including virtual memory. You had better not run out with a mobile app...
If you're seeing memory warnings on device, it means you're using too much memory. The best tool for determining where you're having trouble is Instruments and specifically the Allocations instrument. This will show you what is taking the most memory and where you should focus. Most memory warnings are due to a leak or retain loop.
you should better do not debug with the simulator , because the simulators memory is the mac , but your devices memory is very limit , and the capability of the simulator is better
Are there any simulators that run symbian applications?
Since its introduction, Symbian has provided an emulator to allow development of Symbian on a PC.
Currently, the Symbian Foundation is developing a simulator which will eventually replace the emulator. At present, however, this is a work in progress and is not really suitable for general purpose Symbian development.
What is the difference between the two? The links above will provide the full story, but the key difference is as follows:
The emulator is effectively a port of Symbian OS to a new architecture: whereas all Symbian devices in the market today are based on ARM architecture, the emulator is a port to x86. This port is not a particularly faithful representation of a real device however - for example, while Symbian OS on the device provides memory protection between user-side processes, the emulator runs as a single Windows process, with each Symbian process running as a separate emulated thread. This and other aspects of the emulator mean that your app may behave differently when moved from the emulator onto the device.
The simulator is based on QEMU, which provides instruction-level simulation of the ARM architecture. This means that the same binaries can be run on the simulator and on the device (at least in most cases - each device, including the simulator, still has its own adaptation layer which is not portable in this way). The simulator also more closely models a real device - providing, for example, the same level of memory protection.
The emulator is included in the Symbian SDK.
Assuming that you installed the SDK in the default location, to run the emulator just launch
C:\S60\devices\S60_5th_Edition_SDK_v1.0\epoc32\release\winscw\udeb\epoc.exe
You can find here more detailed informations.