你的位置:首页 > 软件开发 > 操作系统 > Android高效计算——RenderScript(一)

Android高效计算——RenderScript(一)

发布时间:2016-08-17 10:00:23
高效计算——RenderScriptRenderScript是安卓平台上很受谷歌推荐的一个高效计算平台,它能够自动把计算任务分配到各个可用的计算核心上,包括CPU,GPU以及DSP等,提供十分高效的并行计算能力。可能是由于应用开发时的需求不 ...

Android高效计算——RenderScript(一)

高效计算——RenderScript

RenderScript是安卓平台上很受谷歌推荐的一个高效计算平台,它能够自动把计算任务分配到各个可用的计算核心上,包括CPU,GPU以及DSP等,提供十分高效的并行计算能力。可能是由于应用开发时的需求不够,关于RenderScript的相关文章很少,刚好我在工作中应用到此平台,做了一些笔记,因此决定整理成博文分享给大家。内容主要来源于官方文档、StackOverflow以及自己的理解,如有错误,请大家指正。本篇主要介绍RenderScript的基本概念。

1 RenderScript简介

RenderScript是安卓提供的一个高效计算平台。它显著的特点在于:

  1. 能够自动利用各种核心,包括CPU,GPU以及DSP等,来进行并行计算,能大大提高在图片处理、数学模型等领域提供高效的计算能力;
  2. 不需要针对不同的核心平台而编写不同的代码,因为RenderScript是在设备上进行运行时编译的。

使用了RenderScript的应用与一般的安卓应用在代码编写上与并没有太大区别。使用了RenderScript的应用依然像传统应用一样运行在VM中,但是你需要给你的应用编写你所需要的RenderScript代码,且这部分代码运行在native层。

RenderScript采用从属控制架构:底层RenderScript被运行在虚拟机中的上层安卓系统所控制。安卓VM负责所有内存管理并把它分配给RenderScript的内存绑定到RenderScript运行时,所以RenderScript代码能够访问这些内存。安卓框架对RenderScript进行异步调用,每个调用都放在消息队列中,并且会被尽快处理。

Android高效计算——RenderScript(一) 

RenderScript工作流程需要经历三层:

  1. RenderScript运行时API:提供进行运算的API
  2. 反射层:相当于NDK中的JNI胶水代码,它是一些由安卓编译工具自动生成的类,对你写的RenderScript代码进行包装,使得安卓层能够和RenderScript进行交互
  3. 安卓框架:通过调用反射层来访问RenderScript运行时

 

RenderScript的主要优点:

  1. 可移植性:对于不同架构,不同的处理器都不需要考虑代码的差异化,因为都是运行时在设备上进行编译的;
  2. 高性能:提供充分利用所有核心的无缝的并行化计算
  3. 易用性:简化编码,不需要像JNI一样写胶水代码

缺点:

  1. 开发复杂:需要去学习新的api
  2. 调试可见性:因为RenderScript可能运行在除了主cpu之外的处理器上,所以调试困难 

2  使用RenderScript

    使用RenderScript需要对编译或者开发环境进行一定的配置。

    使用RenderScript主要分为两个步骤:编写.rs文件以及在Android framework中使用RenderScript,下面分别介绍。

2.1 环境配置

  • RenderScript的API可以有两种来源方式:

对于Android 3.0 (API level 11)及以上的可以在android.renderscript包中获取

通过android.support.v8.renderscript包获取,可以支持API level 8及以上的平台,官方强烈建议使用此支持包的方式来获取API

  • 编译环境要求:

Android SDK Tools revision 需要22.2及以上

Android SDK Build-tools revision 需要18.1.0及以上

  • 在project.properties文件中写入如下属性:
renderscript.target=18renderscript.support.mode=true

 

海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com

原标题:Android高效计算——RenderScript(一)

关键词:Android

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

可能感兴趣文章

我的浏览记录