What technology do they use to have Android/iOS emulator in web browser?

2 points by airswimmer ↗ HN
They are online Android/iOS emulators in browser. They are Manymo http://manymo.com and https://appetize.io .

Do you know how to implement a website like that? And what computer hardware should be using?

Should we run an actual Android/iOS phone behind?

Welcome to talk!

3 comments

[ 3.4 ms ] story [ 14.3 ms ] thread
I don't know about those emulators (probably they run the emulator on a powerful server and just send the display to the web browser); but emulators are just virtual machines, that is, mere programs, and web browsers can be programmed in JavaScript. So there, you have a X86 emulator written in JavaScript, running on your browser, and booting linux, and any linux programs you care to run on it:

http://bellard.org/jslinux/

If there were virtual machines behind the web pages, every time user would create an emulator for testing.

How powerful those servers should be? You know, even on a plain PC, it would take dozens of seconds and 512MB/1GB+ RAM to boot.

If they did what you assume, the powerful PC should be very powerful.

And in the frontend-programming, the webpage can talk with VMs in Ajax or persistent socket connection, e.g. TCP connection via websockets. And the message protocol for persistence can be specific.

"jslinux" uses ajax to fetch binary from server and runs it locally in web browser. It does not need any internet connection after that. The JS VM actually runs in your browser other than from any server. I think this is different from what http://manymo.com does.

Here's is the picture. http://imgur.com/XRvvw8N

And according to this spoofing, I think my assumption is right.

I did an investigation of its internet traffic in Chrome and see this http://imgur.com/XI3Rpy0 and this http://imgur.com/EEutJ6a .

It shows that Manymo uses Ajax and Websockets to talk with clients. Ajax for fetching materials and websockets for keeping persistence.

I did several projects using both/either Ajax and/or websockets, this web tech is so familiar. But what I am concerned now is what behind the VMs are and how they implement those VMs.

Using QEMU??