Android phones have better processor and more RAM than iPhone. Then after many android phones are suffering from hang problem.

Both OS are based on Linux then why should this big performance issue arise?

  • Specialization! iOS is optimized for a small set of specialized Apple processors. Android needs to work on many different CPUs and thus trades performance for support and availability. – GiantTree Jan 13 '16 at 18:55
  • 1
    Where did you read iOS uses Linux kernel? – Firelord Jan 13 '16 at 19:49
  • 1
    "majority of android phones are suffering from hang problem" This is a very dubious claim. If you're seeing hang problems perhaps you should ask a question about that specifically, giving details about your phone. – Dan Hulme Jan 14 '16 at 9:19
  • Brothers, why are you putting so much emphasis on words? My question was regarding performance. Instead of giving a proper or hinted answer, you down vote the question? Very strange. @GiantTree : your comment is highly appreciated. – Ravi Hirani Jan 14 '16 at 14:37

The problem is specialization!
Apple's iOS is optimized for a small set of specialized Apple processors, which are ARM-based but because of e.g. custom extensions are able to do a lot more than the specification. Each app is compiled for every set of hardware (like one binary per CPU+GPU combination).
Android needs to work on many different CPUs (Qualcomm, Exynos, MediaTek and all there different models) and thus trades performance for support and availability on all those devices.

With the latest addition of ART, Android tries to gain back a bit of the sacrificed performance by recompiling the binary (from the Dalvik bytecode) with vendor specific compilers that allow them to specialize the binaries again.

However, apps that rely on libraries compiled with the NDK (Native Devlopment Kit) see no improvement when using functions of them, because the binary files are not recompiled.


Because the devices that have hanging problems are not the ones with better processors and more RAM. Unlike iPhone, where there's only the expensive devices, Android runs on a whole range of devices. At one end, there are the flagships from the big manufacturers, which have a lot of effort put into them to make sure the animations are silky smooth and there are no dropped frames or hanging. At the other end are the cheap devices which use much cheaper components - often the components that don't show on the product feature list - and have little effort put into the system integration.

On this site we typically get a lot of questions from users who've bought those min-spec devices and then been disappointed by their performance. This doesn't happen with iPhones because the OS simply doesn't support cheapo devices. It's worth noting that iOS isn't without its performance problems. After each new version of iOS, users of older iPhones who've made the mistake of upgrading tend to complain that their phone runs much slower on the newer OS. It's not because the OS has suddenly got much worse: it's because it's trying to do a lot more, and use the increased resources on the newer phones, and those older, slower phones just can't do everything at once.

The fact that Android uses a Linux kernel is not relevant. In fact, you get the same behaviour out of any Linux: if you run it on a high-powered machine, you get good performance, but if you run it on a cheaper machine, you get poor performance.

Not the answer you're looking for? Browse other questions tagged or ask your own question.