http://www.cnblogs.com/TerryBlog/archive/2012/03/02/2377251.html

RenderScript 是一种低级的高性能编程语言,用于3D渲染和处理密集型计算(3D播放等和关于CPU密集型的计算)。一直以来Android 在绘图性能的表现一直差强人意,引入NDK之后才有所改善,而在Honeycomb 中发布了RenderScript 这一杀手级在Framework 后,大大的增加了Android 本地语言的执行能力和计算能力。以下是参考一些网上总结的几点:

编程语言和可移植性

RenderScript 采用了c99语法(标准C来自1999年,最新标准是C11,来自2011年),新的应用编程接口(API)最终编译成原生代码。这意味着做为Android 图形开发者就不得不再系统的学习一套API,因为它的API并非人人都清楚,而Google 对于RenderScript  这方面的文档又少之又少。

RenderScript 无法从其他C应用程序移植过来,不过它在Android 设备上比NDK 更常见。相比于NDK的可移植性要弱一些,记得以前移植过一个C程序叫Cadaver的webdav客户端 就是使用的NDK,所以这点来说RenderScript 的移植性可以说有待改善。

编译和调试

RenderScript 在机器上进行第一遍编译,然后在目标设备上进行最后一遍编译(Just-In-Time Compiling),因而带来更高效的原生二进制代码。这也就是意味着,凡是支持RenderScript 的设备都可以运行你的代码。不用管什么架构。

目前 ,RenderScript 带来的代码只能在主处理器上运行,它会自动生成可利用多个核心的代码(如果设备上有多个核心)。就因此,编译出来的程序是针对该机器的最佳优化,这解决了Device Fragmentation,也就是说开发者再也不必担心使用者的手机、平板够不够好、有没有GPU...等等问题,全都交给RenderScript 去担心就好。没有GPU,RenderScript 写好的程序就交由CPU来处理(背后的编译技术其实是使用的LLVM)。

性能

RenderScript 有类似于CUDA的Compute API用于计算,配置和设置相对比较容易。最终的运行速度实际上要比胜过于NDK 的实现方式, 需要编写的代码比较少。而RenderScript 最适合用于做3D的用户界面或高性能计算任务。而上面的编译和调试所说的一样,随着最后一遍的编译可以通过硬件直接或得性能的提升。

最后

引入RenderScript 并不是来代替NDK的,而是给开发者多一种选择。

如何学习?

关于官方的文档

http://developer.android.com/guide/topics/renderscript/index.html  这是官方RenderScript 的首页

http://developer.android.com/guide/topics/renderscript/graphics.html   关于图形方面的知识

http://developer.android.com/guide/topics/renderscript/compute.html  关于计算方面的知识

国外一个比较不错的开发者的博客,目前只有两篇:

http://blog.iangclifton.com/2011/08/24/renderscript-101-part-1-renderscript-basics-tutorial/

http://blog.iangclifton.com/2011/08/24/renderscript-101-part-2-renderscript-interaction/

另外那些rs文件里面的函数如何寻找?

4.0的请到框架这里查找相应的头文件:

frameworks/base/libs/rs/scriptc,这里包含以下的头文件

rs_allocation.rsh  rs_atomic.rsh  rs_cl.rsh  rs_core.rsh  rs_debug.rsh  rs_graphics.rsh  rs_math.rsh  rs_matrix.rsh  rs_object.rsh  rs_quaternion.rsh  rs_time.rsh  rs_types.rsh

或者在SDK的platform 下也可以找到。

对应的文档在下面:

关于Android RenderScript 的详细说明和一些实用文档的更多相关文章

  1. Android SQLite 数据库详细介绍

    Android SQLite 数据库详细介绍 我们在编写数据库应用软件时,需要考虑这样的问题:因为我们开发的软件可能会安装在很多用户的手机上,如果应用使用到了SQLite数据库,我们必须在用户初次使用 ...

  2. Android BLE蓝牙详细解读

    代码地址如下:http://www.demodashi.com/demo/15062.html 随着物联网时代的到来,越来越多的智能硬件设备开始流行起来,比如智能手环.心率检测仪.以及各式各样的智能家 ...

  3. android的logcat详细用法!

    from://http://www.miui.com/article-272-1.html [技术交流]android的logcat详细用法! logcat是Android中一个命令行工具,可以用于得 ...

  4. PoiDocxDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0),目前只能java生成】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 这个是<PoiDemo[Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)]>的扩展,上一篇是根 ...

  5. PoiDemo【Android将表单数据生成Word文档的方案之二(基于Poi4.0.0)】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 使用Poi实现android中根据模板文件生成Word文档的功能.这里的模板文件是doc文件.如果模板文件是docx文件的话,请阅读 ...

  6. Android Picasso最详细的使用指南

    Picasso 是Square 公司开源的Android 端的图片加载和缓存框架.Square 真是一家良心公司啊,为我们Android开发者贡献了很多优秀的开源项目有木有!像什么Rerefoit . ...

  7. 【转】Android Support Library详细介绍

    网上对Android Support Library中各个依赖包介绍的中文资料太少了,结合官方文档和有限的参考资料做了一次总结,有描述得不对的地方还请指正. 一.主工程.依赖包.jar包.androi ...

  8. Android Support Library详细介绍

    网上对Android Support Library中各个依赖包介绍的中文资料太少了,结合官方文档和有限的参考资料做了一次总结,有描述得不对的地方还请指正. 一.主工程.依赖包.jar包.androi ...

  9. android的logcat详细用法

    Android日志系统提供了记录和查看系统调试信息的功能.日志都是从各种软件和一些系统的缓冲区中记录下来的,缓冲区可以通过 logcat 命 令来查看和使用. 使用logcat命令 你可以用 logc ...

随机推荐

  1. 自定义VIew方法

    onFinishInflate() 回调方法,当应用从XML加载该组件并用它构建界面之后调用的方法 onMeasure() 检测View组件及其子组件的大小 onLayout() 当该组件需要分配其子 ...

  2. height:calc(100% - 40px)

    在移动端开发的过程中,常常会遇到头部高度是40px,而内容页是除去头部,占满视窗的整个高度,有时候是用js来处理,现在用css的calc是非常方便的: .container{ height: calc ...

  3. PMP 质量管理7张图 很形象

    PMP 质量管理 中的因果图.控制图.流程图.核查表.直方图.帕累托图.散点图

  4. 160516、redis安装(linux+windows)

    1.windows中redis安装使用 第一步:下载windows版本的redis这里redis_win.zip并解压,加压后目录中有下面的文件 redis-server.exe   redis服务端 ...

  5. java方法的理解、调用栈与异常处理

    一.流程分支 If/else :基于boolean值的双分支 Switch:基于数字(整数.char.byte.枚举).字符串 类型的多分支 Int month =5; Switch 二.方法meth ...

  6. Zabbix数据库表结构

    上一篇:Zabbix分布式监控 acknowledges 当出现报错的时候记录 查看着张表记录了一个事件 actions 动作 自动发现 问题告警 恢复告警 自动注册 alerts 报警信息 同web ...

  7. 20165330 2017-2018-2 《Java程序设计》第2周学习总结

    课本知识总结 第二章 基本数据类型与数组 标识符:标识类名.变量名.方法名.类型名.数组名及文件名的有效字符序列. 标识符的第一个字符不能是数字字符,且字母区分大小写. Java语言使用Unicode ...

  8. 状态维持在web层 每层都可以Cache

    API网关的开源解决方案那么多,为什么我们却还要选择自研? - SDK.CN - 中国领先的开发者服务平台 https://sdk.cn/news/8001 技术细节Microservice+SOA状 ...

  9. jquery.easing的使用

    下载地址:http://www.jb51.net/jiaoben/32922.html 基本语法:easing:格式为json,{duration:持续时间,easing:过渡效果,complete: ...

  10. Vi 的常用命令

    1. vi 的三种工作模式 命令模式 打开文件首先进入命令模式, 是使用 vi 的入口; 通过命令对文件进行常规的编辑操作, 例如: 定位,翻页,复制,粘贴,删除等; 末行模式 执行保存,退出等操作, ...