Glossary · 5 · Hardware SDKs and devices
Emulator
Also known as: System emulator, Device emulator
German: Emulator
In computing, an emulator is software, or hardware, that imitates a target system, such as a processor, a complete device or a platform, closely enough that software built for the target runs on it unchanged.
- Hardware SDK
- Testing
In one sentence
An emulator imitates a target processor, device or platform closely enough that software built for that target runs on it unchanged.
Example
An app team tests its release on emulated phones with several screen sizes and Android API levels before it runs the final checks on physical devices.
How it applies
- Hardware SDKs: Emulators let developers run and debug target software before hardware is available or without one device per variant. QEMU, an open-source machine emulator and virtualizer, provides in system emulation a virtual model of an entire machine (CPU, memory and emulated devices) to run a guest operating system; in user mode it runs programs built for another processor architecture. See also virtualization.
- Platform SDKs: Mobile platform kits ship device emulators. The Android Emulator simulates Android devices on a computer so that an app can be tested on a variety of devices and Android API levels without each physical device.
- Limits: An emulator reproduces the behavior its authors modeled. Timing, peripherals, sensors, power behavior and faults of the real hardware may differ, so emulator results do not replace tests on the target. For control systems, hardware-in-the-loop (HIL) testing runs the real controller against a simulated process instead.
- Developer SDKs: Cloud SDKs offer local emulators of their services (for example, databases or message queues) so that code can be tested without a cloud account; their behavior, quotas and error cases can differ from the real service.
- Documentation: State which emulator and version a test or sample was run on, which hardware features it does not cover and which tests must be repeated on real devices.
Emulator vs. simulator
An emulator imitates the target closely enough to run the target's own binaries. A simulation models the behavior of a system, a process or a device, often at a higher level of abstraction, without running its real software. The words are used loosely in practice: the Android documentation, for example, says its emulator "simulates" devices.
External references
- QEMU: About QEMU
- Google, Android Developers: Run apps on the Android Emulator