Back to blog
    August 17, 2026Tutorial

    Real Devices vs. Emulators: What You Only Catch on Hardware

    Emulators are good. They're fast, free, scriptable, and they belong in your pipeline — most of your suite should run on them. This isn't an argument for replacing them.

    It's an argument about the last mile: the class of bug that an emulator, by construction, cannot show you.

    What an emulator actually is

    An emulator runs the OS on your machine's CPU and GPU, backed by your machine's network and your machine's memory. That's exactly why it's fast. It also means every layer where mobile hardware is different has been replaced with something convenient.

    So the bugs that live in those layers don't appear.

    What only shows up on hardware

    Real GPU and thermals. Your laptop has more graphics power and better cooling than a phone. Scroll jank, dropped frames and animation stutter that a user sees after ten minutes of use often don't reproduce on a desktop GPU that never throttles.

    Real networks. An emulator's network is your office Wi-Fi. Not a train tunnel, not a congested cell, not a captive portal that intercepts your first request. Timeout and retry logic is precisely the code that only gets exercised under bad conditions.

    OEM skins. Stock Android in an emulator is not One UI, or MIUI, or a carrier build with its own permission prompts and battery-optimisation rules. Background work that survives on stock Android gets killed on a real handset with aggressive power management.

    Permission and system dialogs. The real OS interrupts. A permission sheet, a "low storage" warning, an OS update banner, an incoming call — each can land on top of your flow at the wrong moment. Emulator runs are suspiciously undisturbed.

    Hardware-backed features. Biometrics, the actual camera, NFC, real GPS drift, Bluetooth pairing, push delivery through the real notification service. These are stubbed or absent.

    Real touch. Fingers are imprecise and fast. A tap target that's comfortable with a mouse click at exact coordinates can be genuinely hard to hit on glass.

    The practical split

    A reasonable division of labour:

    Run on emulatorsRun on real devices
    Unit and integration testsRelease smoke tests
    Most functional regressionPerformance and scroll behaviour
    Fast PR feedbackAnything touching camera, biometrics, push, GPS
    Broad OS-version sweepsThe bug a customer reported that you can't reproduce

    The failure mode isn't "we used emulators." It's "everything passed on emulators, so we shipped."

    Getting a real device into the loop

    The reason teams skip hardware is friction: buying handsets, keeping them charged, updating them, wiring them to CI. That's the part worth removing rather than the testing itself.

    On RobotActions, a device is dedicated to you — provisioned on demand, not pulled from a shared pool, so state persists between runs and there's no queue. Point your existing Appium, Selenium or Playwright suite at the grid and keep every test you've written; nothing needs rewriting to start running the last mile on hardware.

    Run your suite on a real device →

    Ready to test on real devices?

    Sign in with Google or GitHub and get real iOS and Android devices in your browser — free to try.

    👋 Hi! Need help? Chat with us!

    Chat with us

    Online

    Before we start

    Share your details so we can follow up with you.