Why is Android virtual device too slow? - eclipse

I just downloaded adt-bundle from the android developper's site to give it a try. problems begun when i hited the "run" button: The Android virtual device or "avd" is horribly slow. I have a pretty decent machine (core i7 & 16go of ram). Aren't they aware of that? i mean it has been several years that people develop for android, how did they manage to do that?

Iphone apps running on the iphone emulator are compiled for the native processor on the mac, and those only simulate the iphone not the actual processor.
The normal android emulator also simulates the processor of the phone which makes it quite slow in comparison.
You could try out the x86 emulator that runs natively on your PC' x86 CPU instead of emulating the CPU on the phone. That a look here.

Related

Other program get lag after running android emulator

I have a laptop with core i3 processors, 4gb RAM, and Intel HD Graphic VGA. When I tried to launch the emulator it was fine and the other program not lag. But after I run some apps in emulator the other program become lag for example chrome browser lag after some apps opened on emulator. I already tried memu, nox, and mumu emulator but all of that is the same make other program lag. Please anybody who have best solution could help me ? Thank you.
There are many different emulators out there. Now there are 3 ways to approach this problem
You can try to change the setting in emulators like NOX to make them more efficient.
You may be only able to run the emulator and a browser for the specs you are running.
You can look at other emulators that i have used on my Macbook Air early 2015 edition. These could range from Bluestacks 4 which is highly well performing emulator even on potato PC's and can be optimized to your liking. Also the KO player is a good idea if you are looking at a more gaming based alternative

iPhone emulator for Windows Mobile

Say I want to develop applications for iPhone, but I only have a phone with Windows Mobile and for whatever reason I cannot switch to iPhone or buy a new phone.
Is there any iPhone emulator for Windows Mobile that would allow me to run apps on Windows Mobile 6? I have HTC HD2.
P.S. I'm not interested in emulators for any other platform.
No there no is none, since the CocoaTouch platform is is not opensourced you can't really emulate the platform.
Nor is it possible to emulate iOS on your device, since iOS will require some specific hardware.
You will also need a Mac to develop app since Xcode will only run on OSX.
No. You can't do it without an iPhone and obviously a developer account in order to provision your device.
In your question, you should be asking something like" iOS emulator for windows", which is no.
Understand more about SDKs and emulators, you cannot emulate iOS on a actual WM device but a simulator in a computer; this is not a platform problem, it's a understanding problem, you can still code apps without iPhone and publish it, it's just skipping a step.
If you are on Mac OSX, your good to go, grab the SDK and use the emulator bundled with it
BTW, even if you do get a iphone, you still need a computer with OSX and xcode installed to start coding

Mobile phone emulator for end users on mainstream mobile phone platforms

I'm trying to develop a pc application(mainly for microsoft windows) to provide mobile phone emulation(especially on game) experience for the end users. It's like if you are an end user, you can download some mobile apps on your pc and test them on your pc rather than uploading to you mobile device before you really wanna have it.
I'm not trying to make it a device simulator with the os img installed, as there is no os img publicly available for some os, and it might not be so user-freindly either. All I wanna do is to load and parse the app installation file and simulate the look & feel of it, and help our users to make their decisions if they wanna install it or not.
If feasibly, we'd like to support the following mobile app file formats:
1). jar for j2me application(midp 1.x, midp 2.0, cldc 1.x, opengl 3d, feature phone api like nokia, sansumg, simense, motorola, etc.)
2). sis/sisx for symbian os(s60 v3, s60 v5, s60 uiq, s^2, s^3 etc.)
3). apk for android os(1.6, 2.1, 2.2, 2.3, 3.0 etc.)
4). cab/exe for windows mobile(mobile 2003, mobile 5.x, mobile 6.x etc.)
5). ipa for iphone(iphone 3g, 3gs, iphone 4, ipad, ipod etc.)
For jar it would not be such a big problem, as there are some apps like kemulator, microemulator succeed in doing this. For symbian/android, they might be no problem as they are both opensourced. But for windows mobile/iphone, they are big problems as there are no source code to reference, especially for iphone such a proprietary os.
Any suggestions or clues are greatly aprreicated. Thanks.
I can speak for Symbian - You can't run SIS file contents on Windows unless you really go into assembler level and rewrite the full emulator.
For example Symbian emulator that comes with SDK uses separate libraries for emulator and for final build (GCCE or ARMV5) so you have to make a separate build for a program to run in emulator.
What you are trying to do is a lot of work and your duplicating the work done by the simulators / emulators for each of the platforms.
I think there would be two main ways to do this:
What your suggesting and either use simulators / emulators. (Maybe the ones supplied in the development SDK's for each platform?)
Use physical hardware and somehow get stream screen captures of each physical device.
Trying to write your own simulators and/or emulators, I think is a lot of work and will take a very long time and for some device types (like iphone) I don't think it will work very well. There may also be legal trouble in writing your own simulator / emulator.
If you go down the physical hardware route, It may cost a lot of money for the initial layout.
Maybe you can do both? Physical hardware for trouble devices like iphone and symbian and simulators/emulators for android, blackberry and windows mobile?
I've got a lot answers after I posted my question on forum.nokia and google android-platform group, and the following contents is trying to complement this answer to this question, hopefully it would contribute to clarify the question for others too.
from forum nokia
I don't want to discourage you, but you've set yourself a formidable goal.
If Symbian and Nokia with all their resources haven't managed to during the last 10-12 years to make a device binary emulator, do not expect it to be easy for a lone, independent developer (especially when the binaries may have OS/platform version and hardware specific dependenies to account for, too).
And the emulators for J2ME, Android and iPhone that are supplied in the respective SDKs, are also no easy one-man-projects, I suspect.
In other words, it is not enough to "parse the installation file" (which is easy), but you'd also have to create the whole device/platform specific runtime emulation environment so that you can execute the binaries (you can't "simulate the look & feel", if you can't run the code).
In any case, as Java (J2ME and Android/Dalvik Java) already are targeting a virtual machine, with those it is easier than native binaries that target actual hardware (Symbian, iPhone, Windows CE/Mobile). Windows Phone 7 and later, is also, to my understanding, running in a managed/virtualized environment, instead of targeting the hardware/CPU directly, so it is a bit like Java in this respect.
In any case, even for Java, it won't be exactly easy for you, as you'd need to create a compatible Java virtual machine and runtime environment.
With all the existing Nintendo, Commodore 64, Atari, etc.., emulators, the developers usually have created the hardware emulator that allows the original binaries to be executed (the apps doesn't know it is not running on the real hardware). With ancient devices with much, much simpler processors/hardware, and which no longer evolve, it is much easier - I imagine - than trying to target, e.g., all Symbian versions and Symbian based phones (hundreds of models, vs., e.g., one Commodore 64).
from google group
Sure - "all" you need to do is read the entirety of the api documentation at
devloper.android.com, and then re-implement everything yourself. On top of
that, you will need to come up with a way to execute the arm machine code in
jni libraries, and somehow hook it into your emulation of the rest.
When you are finished with the project, you will be in a position to write
them.

Can I test if website works well on iPhone/iPad/etc. without iPhone?

For various varieties of Windows and IEs virtual machines work perfectly. But how do I test against iPhones?
It's not iPhone-specific site, I just don't want it to be too broken.
If you had a Mac you could install the iPhone SDK and use the iPhone Simulator.
Generally you should be ok by testing using Safari as that is the web browser that is available on both iPhone and iPad.
However, keep in mind the different amount of screen real estate for the iPhone and the reduced CPU power in both cases. These are not devices optimized to beat your quad-core Xeon base system but to reduce power consumption.
By testing against Safari (e.g. via Selenium RC and/or WebDriver) you can run a lot of tests without the device.
As a final confirmation before release I suggest to still borrow each of the target devices and run a test on it. Nothing beats the actual environment!
Good luck!
try testiphone.com
Or install the iPhone SDK and use the iPhone Simulator if your using a Mac.
The iphone simulator doesn't have the restrictions like memory and processor.
But for web application, you could try www.testiphone.com

Why is Windows Phone 7 emulator so slow compared to, um, iPhone OS Emulator?

I don't mean to start a war between iPhone vs Windows Phone 7, nor am I against Windows Phone 7. But I've noticed on both of my computers Windows Phone 7 emulator (Beta and CTP) lags like it's running on a crappy last-decade Celeron computer.
I have 2 computers: Macbook Pro 13" (2010 Model) with 2.4GHZ Core 2 Duo, 4GB RAM and ASUS G1 with 2.0 GHz Intel Core 2 Duo, 3GB RAM with fresh install of Windows 7.
Now iPhone emulator on Mac OS X is on the other hand so much smoother, and loads faster and just has better feel to it.
So why is Windows Phone 7 emulator so slow? Is that what we should expect from the devices that will be coming out this october? I hate more than anything on the phone is laggy UX; it just gets under my skin.
It would be nice if someone with the prototype device could comment on this issue.
That is because the so called "iPhone Emulator" is a simulator (hence the real name is "iPhone Simulator"). Simulators are non-native programs re-written for that computer. Emulators are non-native programs not re-written they are emulated which takes extra effort to translate everything to display the right things etc. This is why the Windows Phone 7 Emulator is slower than the iPhone Simulator.
But, since simulators do not quite as accurately represent the device as an emulator you can get better error results since the stuff is rewritten in simulators but everything is preserved in an emulator. But, even saying that, you usually don't need to worry about that.
Boy, there's a lot of "emulators are this, simulators are that" in some of those answers and I feel more confused after reading them, especially when we get into suggestions that things are "re-written for that computer"
What you need to understand is that the iPhone Simulator is an OPERATING-SYSTEM simulator, not a DEVICE simulator.
When you build for the simulator, you are compiling for an Intel x86 CPU. You link against special libraries that are for an x86 CPU but which implement the functions that are part of the iPhone operating system (call that UIKit)
When you build for the device, you are compiling for an ARM CPU. You link against special libraries that are for an ARM CPU, again which implement the UIKit.
This means that your code runs at full "machine" speed in both environments. There is no notion of "emulating a CPU" which is presumably what the Windows Phone 7 Emulator is doing, something similiar to the MacOS Virtual PC product of years ago (that Microsoft bought from Connectix, as I recall)
The problems that Rob Napier mentions are probably related to using native headers and libraries in his build (call those AppKit). There are some APIs that Apple have let bleed into the wrong SDKs, I recall there were issues with NSTask being available in the SDK even though it wasn't on the iPhone itself, for example. I'm sure there are other problems in this space, its not ideal (though its pretty cool)
Anyway, unless Microsoft have a compiler-toolset that can target both the Phone CPU and the regular Windows PC CPU, they are stuck with emulation at the CPU level, rather than at the Operating System Level.
The only advantage that this cpu-emulation approach has, to my mind, is that you can take the exact same binary and move it between device and PC and run it on both. Apples simulator approach requires you to rebuild the binaries for each platform. Personally, even on my "bottom of the line MacMini", my build times are so small that its just not an issue to rebuild whenever I switch platform.
The Windows Phone Emulator is actually the Windows Phone 7 operating system compiled for x86 running in a virtualized environment. It uses a derivative technology from Microsoft's VirtualPC/VirtualServer/Hyper-V. Thus it is really neither emulation (there is no ARM to x86 emulation going on) nor pure simulation.
The typical Windows Phone 7 device will be running an ARM processor at close to 1GHz. Emulating (as in CPU emulation) of an ARM processor requires a very powerful x86 processor. The strategy of using visualization allows the OS to execute at native x86 speed. Applications written in managed (.NET) code are executed by the x86 based .NET runtime on the OS.
So code performance on a typical PC (~1.5 - 3GHz) should typically exceed what is found on an actual ARM based WP7 device.
However, GRAPHICS performance is a whole 'nother story. Windows Phone 7 is built from the ground up on a Direct3D stack. The core OS and all graphics all the way up to the Silverlight and XNA runtimes use Direct3D. In the Windows Phone Emulator the low-level D3D graphics are "passed through" to the host PC's D3D implementation. Many problems people see with Windows Phone Emulator performance are due to poorly performing host PC graphics adapters or drivers.
See this forum response for some troubleshooting tips.
http://social.msdn.microsoft.com/Forums/en-US/windowsphone7series/thread/c4754ebd-f688-4c33-972a-a578b9db12ff
EDIT: Addressing Jeff's comment below asserting "Anyway, unless Microsoft have a compiler-toolset that can target both the Phone CPU and the regular Windows PC CPU, they are stuck with emulation at the CPU level, rather than at the Operating System Level."
All Windows Phone 7 applications & games are .NET based, thus are CPU independent. Repeating what I said above: The Windows Phone 7 Emulator does NOT emulate at the CPU level. It is running a native x86 compiled version of the OS in a virtual machine and runs the exact same application "binary" (a .XAP file) that will run on a physical device.
You need a directx 10 graphics card to get the best performance.
The beta appears to have introduced a problem effecting some peoples systems whereby GPU acceleration is not working in the emulator. The symptoms are slow rendering which is to be expected. I'd suggest adding your system details to the thread while the issue is being looked into for the best chance at a resolution on your system.
I think we need to clarify the meaning of this question to glean any type of meaningful answer from it. At the moment we could all very well be talking about different types of performance observations which potentially reduces this to more of a religous debate. I've added a comment to this effect, but you have to click "more" to see it.
The official MS document on this subject provides the reason for the slowness.
"Windows Phone Emulator is designed to provide comparable performance to an actual device "
http://msdn.microsoft.com/en-us/library/ff402563(v=VS.92).aspx