有人说Android系统不支持多核,对此我有些不解,因为Android所使用的Linux Kernel在多年以前就可以支持多核了,网上找了一片文章,可以支持我的观点:


Dual-core support on Android OS

http://smartphonebenchmarks.com/forum/index.php?/topic/317-dual-core-support-on-android-os/



With the recent introduction of dual-core Android phones & tablets, many people have been asking if these devices do indeed recognize both cores and use them effectively. I’ve also read many messages in the forums and blogs claiming that Froyo (Android 2.2) or even Gingerbread (Android 2.3) cannot utilize both cores. Others also claim although Froyo does recognize both cores, you need Gingerbread which is optimized for dual-cores. Could manufacturers actually be releasing phones with two brains but only knows how to use just one effectively?

..........
The answer is fortunately, a NO.

For most of today’s applications, you will not feel the extra performance improvement on dual-core devices. This is because they use just a single thread for CPU intensive tasks. Even today, properly designed apps will use a foreground thread to render GUI and a background thread for calculations. This provides more responsive GUI,even on single-core devices. So dual-core processors will help to some degree, but not to its full potential. Since the two threads don’t split work equally (often not even close), one core is forced to work harder then the other.

There are very few applications that will spawn multiple threads symmetrically. Meaning, work that requires heavy CPU utilization are split equally across multiple threads. When apps are designed in such a manner, dual-core processors will help out greatly, often approaching towards the theoretical beneficial factor of 2x.

Smartbench 2011 is one such app. In fact, I am not aware of any other benchmark app that are multi-core friendly at this time. (Please correct me if I am wrong).

Have a look at the chart above. This chart is not up to date, but it can still be used to illustrate the point. The chart has been clipped, so this does not represent the actual “top 10″, but I wanted to compare NVIDIA Tegra 2 devices (in this case, LG Optimus 2X and Motorola Xoom/Atrix) against overclocked single core phones (in this case, 1.4GHz Galaxy Tab and 1.8GHz myTouch 4G). Pay attention to the “Productivity scores” (which are represented by green bars). As you can see, even at 1.8GHz, myTouch 4G doesn’t stand a chance against the dual-core Tegra 2 processor which is running at 1GHz. (In fact, Tegra 2 devices are performing at a level greater than 2x level. This is because Tegra 2 is based on more recent ARM Cortex A9 design which by itself also raises the performance bar per clock.)

Does this tell you that Android running on these devices uses both cores? Absolutely.

And which versions of Android are they using? FROYO!

The reality is that Froyo running on these devices have been recompiled with SMP (Symmetric Multi-Processing) option turned on. The Linux kernel used in Android OS has been supporting multi-core processors for many years. This should not be a news to us.

There are no reasons why Gingerbread SMP would support dual cores any more efficiently than Froyo SMP either.

It might be possible to further optimize these SMP enabled Android OS but even in its current state, it is more than capable of handling both cores.

Android OS itself multi-tasks natively. There are far more than 2 threads running at any given moment at the OS level. With two cores available to work with, these tasks will get done faster. So overall, if you are running multiple apps or a lot is going on in your phone, you may experience some improvements on dual-core phones even if the apps are not dual-core tuned.

If you bought yourself a dual-core device, the chances are that your Android OS was SMP enabled. So don't worry if it came with a Froyo, you are using both cores.

更多相关文章

  1. android app 添加logo
  2. Android(安卓)使用模拟位置(支持Android(安卓)6.0)
  3. 搭建Android(安卓)NDK开发环境
  4. android 开发包简介
  5. android 自定义view支持gif格式播放
  6. Android(安卓)Toolchain与Bionic Libc
  7. Android(安卓)支持多屏幕机制
  8. cocos2d-x编译到android平台后,增加返回键和菜单键支持
  9. Android开发者指南(12) ―― Android(安卓)Supported Media Form

随机推荐

  1. C#实现杨辉三角的示例
  2. C#使用Free Spire.Presentation实现对PPT
  3. ASP.NET样板开发框架ABP系列之ABP入门教
  4. 通过IPIP.NET实现数据库来查询IP地址的实
  5. C#实现添加Word文本与图片超链接的方法
  6. C#操作Styline二次开发实现画线功能
  7. asp.net下的中文分词检索工具分享
  8. C# 加密类工具实例分析
  9. .net中关于异步性能测试的示例代码
  10. C# ArrayListd的长度问题解决