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

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 下也可以找到。

对应的文档在下面:

时间: 2024-08-10 23:19:07

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

移动端UI设计越来越流行的高斯模糊(Gaussian blur)和毛玻璃效果(磨砂效果),如何使用Android RenderScript简单实现?

高斯模糊(Gaussian blur)和毛玻璃效果(亦称磨砂效果),近两年在移动端的UI设计上越来越流行,特别是iOS手机上出现的较多,iOS系统也提供了相应的API帮助开发人员分分钟实现这两个效果.而Android系统则经历了一个漫长的探索过程,对图片的处理,从Java算法到NDK方式实现等,各种摸索层出不穷. 值得欣慰的是,Google终于在API 11中引入了 RenderScript ,一个强大的图片处理框架,帮助Android开发人员专注于图片处理算法而不是API的调度工作.使用Ren

[转] 关于 Eclipse 导出 Android项目 JavaDoc 详细过程

关于Eclipse 导出JavaDoc过程中,遇到的问题 ,google 了一下 ,网友们 总说不一 ,最终 还是 搞定了 现在分享给大家 希望对大家有所帮助 用Eclipse默认的 JavaDoc需要注意 有两个问题   1.   找不到关于Android相关的类   2. 不支持中文/乱码 , 后者是编码问题  编码 GBK 的不可映射字符   选中项目右键 --->Export--- 如图 点击 下一步 只需要 选择src 目录 点击 Next下一步 这儿 注意 两个问题 一个 是 编码问

Android清理设备内存详细完整示例(一)

MainActivity如下: package come.on; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; i

Android清理设备内存详细完整示例(二)

MainActivity如下: package cc.c; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.List; import android.app.Activity; import android.app.ActivityManager; import android.app.ActivityManager.MemoryInfo;

Android之TextView 详细字典

TextView属性详解属性详解android:autoLink设置是否当文本为URL链接/email/电话号码/map时,文本显示为可点击的链接.可选值(none/web/email/phone/map/all)android:autoText如果设置,将自动执行输入值的拼写纠正.此处无效果,在显示输入法并输入的时候起作用.android:bufferType指定getText()方式取得的文本类别.选项editable 类似于StringBuilder可追加字符,也就是说getText后可调

Android清理设备内存详细完整示例

MainActivity如下: package cc.c; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.List; import android.app.Activity; import android.app.ActivityManager; import android.app.ActivityManager.MemoryInfo;

Android BLE蓝牙详细解读

代码地址如下:http://www.demodashi.com/demo/15062.html 随着物联网时代的到来,越来越多的智能硬件设备开始流行起来,比如智能手环.心率检测仪.以及各式各样的智能家具和玩具类产品.安卓4.3(API 18)为BLE的核心功能提供平台支持和API,App可以利用它来发现设备.查询服务和读写特性.相比传统的蓝牙,BLE更显著的特点是低功耗.本文主要讲解Android低功耗蓝牙的api使用以及蓝牙扫描.连接.发送数据.接收数据等一系列操作,并主要介绍本人封装的Ble

HighCharts 详细使用及API文档说明

HighCharts 详细使用及API文档说明 2012-11-19 11:18 49574人阅读 评论(2) 收藏 举报  分类: HighCharts 一.HighCharts开发说明: HighCharts开发实际上配置HighCharts每个部分,比如配置标题(title),副标题(subtitle)等,其中每个部分又有更细的参数配置,比如标题下有对齐方式(align),标题文字(text)等.下图为整个图表的每个部分位置说明(请对照下面HighCharts整体结构) 二.HighCha

转: HighCharts 详细使用及API文档说明

一.HighCharts开发说明: HighCharts开发实际上配置HighCharts每个部分,比如配置标题(title),副标题(subtitle)等,其中每个部分又有更细的参数配置,比如标题下有对齐方式(align),标题文字(text)等.下图为整个图表的每个部分位置说明(请对照下面HighCharts整体结构) 二.HighCharts整体结构: 通过查看API文档我们知道HighCharts结构如下:(API文档在文章后面提供下载) var chart = new Highchar