Is there any difference between emulator and simulators? - android

I am just bit confused with two different things as we have emulators in android and simulators in blackberry. Is there any difference between a simulator and an emulator or are they just different names for the same thing?

Emulator is combination of hardware and software.
Simulator is only software.
Consider example of android emulator, when any action is done on android emulator, the instruction is get converted into ARM call and then to the underlying operating system(windows/mac/unix).
In case of iPhone simulator instructions on simulator are directly converted to the native call(Mac).
That's why emulator provides more realistic behavior.

See both the names are same for the "Virtual kind of Devices".
Its Emulator for Android, Simulator for BlackBerry, again Simulator for iPhone as well.
What is Virtual Device?
Virtual device means which is not a real phone(but almost giving the same functionality as real phone does except some features like camera) but developer can use it to test their application).

In the given context they both would refer to the same thing. However this is worth a read http://en.wikipedia.org/wiki/Emulator#Emulation_versus_simulation.

From RIM's own website:
There are a variety of BlackBerry® simulators available to emulate the functionality of actual BlackBerry products, including BlackBerry devices and BlackBerry Enterprise Server™.
In other words, yes, simulators are just a RIM term for emulators.

A simulator is mostly used to theoretically examine a system. Whereas an emulator clones the original system in some aspects.

Emulator : emulates Hardware and Software
Simulator: simulates only software
Check the following link :
http://www.mobileqazone.com/forum/topics/difference-emulator-and?xg_source=activity

Whereas I am concerned about these :
Emulator : When you have the hardware capability and do not need to translate each instruction. in other words instructions are supported by hardware.
Simulator : when instructions are not supported and you need to translate them with the native language.
Emulator are supposed to be faster than simulator, since no instruction translation is needed .

Related

does the Android Studio Emulator also emulate the spec and performance of the device?

I am developing an app on a very powerful desktop machine. I need to know how it would perform on a phone. When running the app on the Android Studio Emulator, doe sth emulator also emulate the spec and performance of the phone?
No. This is not an exact 1:1 simulator of existing device. It's emulator. And given the variety of existing devices it'd be rather problematic to have one that would exactly mimic specific device. If you need one, the I'd say that having physical device in hand would be the best approach, aside the emulator.

Why Android Emulator is Way Slower than iPhone Simulator? [closed]

Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
Just Curious. Did Apple do an awesome job with their iPhone simulator?
When Compared,The android Emulator running on i7 and iPhone simulator on i3. The iPhone simulator is faster than the real iPhone.
Did I fail to set things up right?
It's a matter of architectural decisions:
iOS simulator runs native code, directly on your CPU - the project has to be recompiled for x86 architecture to be used with simulator. The simulator itself simply emulates all the iOS APIs.
Android emulator, on the other hand, uses QEMU to run ARM (or x86, but ARM is more popular) CPU virtual machine, with all the software stack on top of it - Linux kernel, Android system image, etc. Think of it as an emulated hardware.
It's a sort of trade off - the way iOS does it is much faster, but it is harder to make it 100% compatible with the target system. For Apple it was perhaps a bit simpler, as iOS and Mac OS have many things in common.
For Android it makes a lot of sense to emulate the whole stack - it is easier to build cross-platform SDK, easier to test some system level components with it, etc. It's simply a different ecosystem, with different goals. Don't forget, that Android emulator can be used e.g. to test native ARM libraries compiled with Android NDK.
Today the Android emulator performance is more or less acceptable, but it was just a disaster in the early Android days. That said, personally I think that fast, API-level native simulator for Android would be a great addition to the SDK, making it possible to test less demanding projects much faster.
Interesting reading: http://logic-explained.blogspot.com/2011/09/why-is-there-no-x86-native-emulator-for.html
iphone ,iphone simulator,apple laptop ,xcode are apple products
but android
windows-Microsoft
android -Google
eclipse -eclipse vendor
these tools are different vendors that why android simulator slow.
i am just kidding :)
Apple Simulator is created using system configuration means it will take the System's ram, memory,cache automatically you don't have to configure it, so an Iphone Simulator is not act as real device but in case of Android one has to provide all the configuration details before creating the emulator,Android emulator to a great extent will act as real device but can be much slower than an Iphone Simulator.
Yes that's true, The emulator (FYI) is slower then simulator.
Does apple did an awesome job with the iPhone simulator?
No other developer can answer this because iOS is not open-source.
Did I fail to set things up right?
No, you are right at everything.
First of all Android does not have a Simulator it has an Emulator.
Secondly I believe the speed of the Emulator depends on your machine config. Better the config the better it will run provided you have created the AVD properly and given it ample memory.
That's simple:
Android Emulates real device, so real architeture and really close behaivour and layout.
In other hands apple simulator is not an emulator, so you can't expect real behaviour, but it has a close layout, which mainly solves for IOS, as you needs only 1 device to test the app behaviour.
Android SDK has an emulator, Whereas ios SDK has simulator.
A simulator behaves similar to something else, but is implemented in an entirely different way. It provides the basic behavior of a system but may not necessarily abide by all of the rules of the system being simulated. It is there to give you an idea about how something works. It uses Desktop resources like processor, ram etc.,
An emulator is a system that behaves exactly like something else, and abides by all of the rules of the system being emulated. It is effectively a complete replication of another system, right down to being binary compatible with the emulated system's inputs and outputs, but operating in a different environment to the environment of the original emulated system.
Thus simulator will be definitely fast compared to emulator.
The Android simulator is actually an emulator, designed to mimic a mobile device running Android, meaning it emulates the hardware running Android OS, to make it as close to 100% identical as possible. The JVM converts Java bytecode into ARM instructions that are decoded by the emulator.
The iOS simulator works at a higher level, simulating the operating system and its libraries, translating OS calls into OS X implementations and simulating events in the other direction like device rotation or low memory conditions. When you run an app on the iOS simulator, the app is compiled into x86 that runs natively on your Mac. Unlike the Android emulator, your iOS app won't run out of memory in the simulator because it's not constrained to any particular iOS device's memory limitations.

Is there ANY android emulator that supports microphone input?

So far I haven't been able to find any solution that would allow me to test voice input via microphone on the android emulator.
I have been able to get away during development by limiting my testing to cheap Android phones (sorry, I don't have much money) but now some users complain that my app doesn't work on Android 3 and 4.
So, I am desperately looking for an Android emulator (that can run on Windows 7) to help me test my microphone-based app on various Android versions (did I say fragmentation?)
Is there any android emulator that supports microphone input?
Other suggestions that can utilize the standard Android "emulator"?
As you noted, the live-android (with this HowTo) is outdated, so as far as I can tell, you have only one (free) option that goes up to Android 4: Android x-86 on a USB thumb drive plugged into another netbook or laptop you have.
The only problem I see is that a standard Android USB cable for connecting your debugger will not work because netbooks or laptops don't have a micro USB connector like real Android devices have.
This is an old question so the answers here need updating.
All of the emulators included in the AVD manager (Eclipse/Android Studio) support microphone input now, although the ARM versions don't really have a sample rate that matches reality. The microphone inputs x86 based emulators work really well, but only at 8kHz.
There is a new kid on the block called Buildroid for VirtualBox (formerly VirtualBox-AOSP). This may be what you are looking for.
Thanks to Babu for this solution. Emulator can supports virtual input and record sound same like laptop

Complete Development using the Motorola XOOM

I really want to get into Android programming but I only have access to company resources right now. I have the money right now to purchase a XOOM or a development laptop. Is it possible to compile Android apps using the command line on the Xoom while using other apps to write the program files.
What would seem like a dream environment would be if I purchased a XOOM and a BlueTooth Keyboard. Am I dreaming? Developing using older Android devices was naturally limited by the screen space of the device and the underlying hardware also.
No, as far as I know, you cannot develop Android applications from within Android. You will need a Windows, Mac, or Linux desktop environment to develop Android applications. Visit the Android Developer site for additional info on the SDK.
Go for the development laptop, and test your applications on the emulator. Initially you can get friends to test them out on their android for you, and hopefully by the time you make something important enough you will be able to afford your own android.
Check out AIDE. It can build and deploy apps natively on Android.
Google doesn't have a version of the SDK that runs on an android device, although as devices become more powerful this would be a pretty awesome thing to have.
You'll want the laptop, since it can emulate different android devices.
Buy the laptop and get a cheap phone on craigslists.
Although, the XOOM emulator doesn't work at all, so if you want to develop specifically for that tablet it's a good idea to buy it. It's impossible to emulate android 3.0 on any computer on earth :)

Can I use any Android Phone for application development?

Can I use any Android Phone for app development? Here in the Philippines, there are many available mobile phones with Android installed. But I want to buy the cheapest phone available (which I think is Samsung i5500 Galaxy 5). Thanks in advance!
You can use any android powered device for development, just make sure it has Development menu option. To check go to Menu -> Settings -> Applications -> Development. If there is somewhat like USB Debugging option you can use device for the development.
Why not use the actual dev kit? There is a complete setup with virtual phone included that you can run as an eclipse plugin.
http://developer.android.com/sdk/index.html
I think any Android platform based phone will be OK.
Yes you can, and I would definitely recommend using a real phone. The emulator is excellent, but somewhat slow for a number of applications that require hardware (OpenGL comes to mind). Even a G1 tends to be faster than the emulator for certain things. If you're creating an app that uses Bluetooth, there's no way to do so on the emulator currently. Konstantin's directions are good for actually setting up the phone.
You need to understand one thing before you buy the phone. What version of Android SDK you will be using for to develop the app. If say, you are developing the app for cupcake and above, you better have a phone with cupcake version. But if you have Froyo phone, you will not be still able to run the app, but some depreciated functions might not be available and your app may crash.
If you want to develop in Windows there is a list of devices available for which the USB drivers work: USB Driver for Windows
If you don't need the GSM part you could also think about using the Archos 5 Internet Tablet, which is a Android powered media player and supports ADB (Android debug bridge) as well

Categories

Resources