最近一段时间以来我们听到的来自开发者的一个普遍反馈,就是要求我们为更多的设备提供RenderScript的***特性支持。在过去的几个Android发行版本里,我们已经为RenderScript运行时加入了大量的功能了,但是这些功能很多都是有Android版本依赖性的,因此很多新功能在落实到具体设备的时候还是有很大的局限性。对此,我们从去年开始做出各种努力解决问题,现在,我们应该可以把我们的工作成果和Android开发者们分享了。
这次我们要宣布的***的RenderScript支持库是随着***的SDK工具包一起发布的,它能让开发者在不同版本的平台上充分发挥RenderScript的功能,目前可以最早支持到Android 2.2(Froyo).
通过使用ADT版本22.2,SDK工具包版本22.2,以及Android构建工具版本18.1.0,从Android 2.2以及之后的版本的应用程序都能够实现在Android 4.3版本的RenderScript中提供的几乎所有功能。其中包括***的RenderScript功能,例如高性能处理和性能优化,都可以通过script来实现。
使用RenderScript支持库
使用RenderScript支持库的方式非常直白。你值需要更新ADT和SDK工具包到***版本,然后做两个最简单的操作,就可以把RenderScript加入到你的app当中:
1. 在你需要使用RenderScript的类中,导入RenderScript图形库包:android.support.v8.renderscript 。如果你你已经有了内置的RnederScript(例如你用的是Android 4.3版本),你需要把导入包从android.renderscript
改为android.support.v8.renderscript
。
- import android.support.v8.renderscript.*;
2. 在你的project.properties里,确保你的目标代码是android-18,并加入下列代码:
- renderscript.target=18
- renderscript.support.mode=true
- sdk.buildtools=18.1.0
这就可以了!通过RenderScript支持库,你能够继续在app开发中使用原生的RenderScript包(有一些小小的例外情况,下面会提到),并且你还能在你自己的脚本中使用RenderScript工具链的***特性。
完整的RenderScript支持库设置详细步骤见:Accessing RenderScript Java APIs.
API实现细节
如果你有意向在应用开发中使用RenderScirpt支持库,那么下面几件事情你应该知道:
首先,RenderScript支持库支持几乎所有的原生RenderScript API功能。但是有几个例外:Allocation.USAGE_IO_INPUT
和Allocation.USAGE_IO_OUTPUT
。这两个API目前还没有包含到RenderScript支持库里。
其次,Android 4.2和更早的设备会强制RenderScript应用在CPU上运行,不过4.3和以后的版本会让他们的RenderScript应用在任意空闲的处理器上运行。因为支持库脚本版本的脚本必须通过预编译才能支持跨平台特性,所以预编译脚本在性能相较于Android 4.3版本的RenderScript运行时编译方式会略有损耗,因为预编译脚本在编译优化方面有一定的限制。
我们真的非常高兴能够看到RenderScript支持库的推出。目前已经有一些发布的应用里使用到了RenderScript支持库——例如Google+ Android应用(2013年5月之后的版本)的照片编辑器里就使用了RenderScript支持库,在将来一些更大,更流行的应用里面,RenderScript会更多地证明自己。我们希望你也会喜欢RenderScript支持库。