繁体   English   中英

有什么方法可以在Android上进行多核编程,而不仅仅是多线程?

[英]What are some ways to do multi-core programming on Android, not just multi-thread?

在Android上进行多核编程的方法有哪些,是Async-Tasks和线程本身使用了多个核还是我们需要调用某些API来实现这一点?

您不需要使用任何API。 操作系统和Dalvik虚拟机计划可用内核上线程的执行。

我喜欢Qualcomm开发人员站点上的这篇博客文章,因为Qualcomm深入到了Android的硬件核心方面: https : //developer.qualcomm.com/blog/multi-threading-android-apps-multi-core-processors -part-1-2https://developer.qualcomm.com/blog/multi-threading-android-apps-multi-core-processors-part-2-2

TL; DR-无需API,只需使用可用的其他Android结构(如AsyncTasks,Java Threads和IntentService)进行干净的并行化,其余的工作将由Dalvik-Linux Kernel完成。 其中一些重要的部分与此处相关:

我的单线程应用程序可以受益于多个内核吗? 怎么样?

甚至单线程应用程序也可以受益于不同内核上的并行处理。 例如,如果您的应用程序使用媒体服务器,则媒体处理和UI呈现应用程序逻辑可以同时在不同的内核上运行。 而且,垃圾收集器可以在其他内核上运行。

如何编写利用多核的代码?

为了最大程度地发挥多核设备上可用处理能力的潜力,在编写应用程序时要牢记并发。 应设计应用程序,以便将可以并行执行的任务设置为在单独的线程上运行。

这里还有答案: 单线程应用程序是否在android中利用多核? 特别是分析单个线程应用程序如何利用多核的一种方法。

我也很喜欢这个来自AT&T进入多核的Dalvik的自身编码的具体细节。 他们使用Mandelbrot设置图像来说明通过反向链接到Android开发者站点进行多线程处理很酷。

使用多线程来使用多核,因为android操作系统和Dalvik vertical machine(DVM)管理多任务并在需要时使用多核,因此您不必使用任何Api。 要了解有关他们的更多信息,请下载此pdf

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM