3 ms·
I wish. The Android emulator is so slow as to be almost unusable. The iOS simulator is fine.
by robertoandred 6y ago
I wish. The Android emulator is so slow as to be almost unusable. The iOS simulator is fine.
- heavyset_go 6y agoiOS simulator can leverage the host's macOS libraries and kernel. Android doesn't share anything at all with Windows or macOS, and shares only the kernel at best with Linux. The best you can hope for is running Android in a container on a host Linux system, or via WSL. Unless you can get containers running natively on macOS, or run a Linux kernel a la WSL, there will need to be a layer of emulation to run Android.
- Kipters 6y agoI find it a bit ironic that WSL was born for supporting Android apps on Windows (Mobile)
- qwerty456127 6y ago> Android doesn't share anything a An Android app is a Java app using a set of special APIs. Why can't it run on a host JVM given some libraries implementing the same APIs? I'm not interested in the NDK.
- MaulingMonkey 6y ago> Why can't it run on a host JVM given some libraries implementing the same APIs? That's a hideously huge API surface to double-implement - with a new and unique set of bugs reducing it's usefulness in CI builds - for slightly improved performance in a relatively niche dev edge case (!ndk android dev without android hardware.) You'd also need to skip conversion to DEX format (or convert back) to run on a standard JVM. But your suggestion isn't technically impossible. You could (re)implement the subset of APIs your application happens to use yourself, if you really wanted to go down that route - which by virtue of being a much smaller subset of the APIs than the entire Android Java API surface, wouldn't even be practically impossible.
- pjmlp 6y agoWhat one can expect, they don't even manage to keep up with Java.
- xenadu02 6y agoWhile the iOS Simulator does share the host kernel it does not share libraries. It is effectively a separate userspace, with its own launchd_sim, its own mach bootstrap namespace, and so on. The only exception to that is libsystem_{pthread,kernel,platform} because those form the kernel's ABI boundary. Libraries like libc, libdispatch, et al are the iOS build and use the iOS ABI.
- heavyset_go 6y agoThanks for the clarification, I was under the impression that they shared libraries like the browser engine and what not. Not sure where I got that misconception.
- dahfizz 6y agoI've never had any problems with the android emulator on my 7 year old 4770k. It's perfectly smooth. If your desktop can't replicate the performance of your phone, it's misconfigured or seriously underspecced.
- 72deluxe 6y agoI think it has issues with either GPU acceleration, or with saving state and resuming the emulator. It cannot do both, so you have to choose between fast startup and fast usage. During typing this comment I nearly lost my mind because my macbook shift key is playing up and other keys are doing key repeats. I think I might go insane, stupid butterfly design