Hey all,
I have been wondering about this recently, and thought I'd ask here. Why do Android phones need so many cores on their processors? If at all?
The iPhone 5s still has a 2 core processor and it runs brilliantly. For years now one of the focus points for Android phones has been the number of cores it has. It's kind of like the "megapixel wars" of cameras. More is better. Don't buy this dual-core processor phone, ours has EIGHT! But really, are they necessary?
Some might say battery life is increased through having more as lower frequency cores can be utilised for light tasks, however looking at the Anandtech review for the Moto X we can see that there is not much difference. Interestingly enough, they concluded that having 2 cores didn't improve battery life much either, contrary to Googorola's claims.
So at the end of the day, what does it come down to? Is it simply that all these cores are necessary because OEMs such as Samsung aren't willing to spend the time and effort required to optimise their phones to perform well on processors with less cores? Perhaps it is simply like the aforementioned "megapixel wars" of cameras, and more cores is predominantly a marketing ploy?
Either way it will be interesting to see what kind of processors Motorola use in the future after being bought by Lenovo, and where Samsung, HTC et al. go from here.
Okay, your thread degenerated quickly into an Apple vs. Android contest that did not actually address your question. Because of that, I just skimmed most of that, so I appologize if my answer to the question contains information already covered elsewhere in the thread.
The first reason Android phones need more cores than the iPhone is that Android is less hardware optemized than iOS. Because Apple is a single integrated company, their OS is fine tuned to run only on their hardware. Android however does not get this optemization because it needs to run on a large variety of hardware specs. This leads us to our second point.
Point two, Android runs apps in a virtual machine. It uses Dalvik right now and may switch to ART in the future. Virtual machines are generally less efficient than running outside of a virtual machine. Using the virtual machine strategey eliminates many of the headaches developers would otherwise face trying to run their apps on a variety of phones with a variety of cpu/gpu combos from a variety of chip makers by giving a more uniform development environment. iOS does not run apps in a virtual machine, so it does not have this inefficiency, but it comes at the expense of hardware choice. Note that Windows does not run apps in a VM, but all Windows devices used x86/x64 processors until recently and ARM Windows devices do not run older windows apps. If Android did not use a VM, which apps you could run would be highly processor dependent, which, with very few exceptions, is not the case right now.
Thirdly is multitasking. Android has real multitasking that allows multiple apps to be running at once. iOS, in general, does not allow that. This means that you can have a lot more threads being executed at once in Android than in iOS. Since each core can only handle one thread at a time, more cores means more threads being executed at once. Now, a dual core processor can still outpace a quadcore processor if it can process threads more efficiently/quickly. But, all other aspects of a processor being equal, more cores will execute more threads at once. Some apps are even multi-core optimized so they can send their threads to multiple cores at once. Or if you are running 2-3 apps at once, each app can have its own processor core so it does not have to wait on the other apps threads to execute, which greatly slows down the phone and is a huge part of why pre-dual core processor Android phones were so much slower and so much less smooth than contemporary iPhones.
Okay, that is enough actual information for one thread, you may now return to your regularly scheduled fanboy battle already in progress.