Android支持庫——RenderScript
最近一段時間以來我們聽到的來自開發(fā)者的一個普遍反饋,就是要求我們?yōu)楦嗟脑O備提供RenderScript的***特性支持。在過去的幾個Android發(fā)行版本里,我們已經(jīng)為RenderScript運行時加入了大量的功能了,但是這些功能很多都是有Android版本依賴性的,因此很多新功能在落實到具體設備的時候還是有很大的局限性。對此,我們從去年開始做出各種努力解決問題,現(xiàn)在,我們應該可以把我們的工作成果和Android開發(fā)者們分享了。
這次我們要宣布的***的RenderScript支持庫是隨著***的SDK工具包一起發(fā)布的,它能讓開發(fā)者在不同版本的平臺上充分發(fā)揮RenderScript的功能,目前可以最早支持到Android 2.2(Froyo).
通過使用ADT版本22.2,SDK工具包版本22.2,以及Android構建工具版本18.1.0,從Android 2.2以及之后的版本的應用程序都能夠?qū)崿F(xiàn)在Android 4.3版本的RenderScript中提供的幾乎所有功能。其中包括***的RenderScript功能,例如高性能處理和性能優(yōu)化,都可以通過script來實現(xiàn)。
使用RenderScript支持庫
使用RenderScript支持庫的方式非常直白。你值需要更新ADT和SDK工具包到***版本,然后做兩個最簡單的操作,就可以把RenderScript加入到你的app當中:
1. 在你需要使用RenderScript的類中,導入RenderScript圖形庫包:android.support.v8.renderscript 。如果你你已經(jīng)有了內(nèi)置的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支持庫,你能夠繼續(xù)在app開發(fā)中使用原生的RenderScript包(有一些小小的例外情況,下面會提到),并且你還能在你自己的腳本中使用RenderScript工具鏈的***特性。
完整的RenderScript支持庫設置詳細步驟見:Accessing RenderScript Java APIs.
API實現(xiàn)細節(jié)
如果你有意向在應用開發(fā)中使用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運行時編譯方式會略有損耗,因為預編譯腳本在編譯優(yōu)化方面有一定的限制。
我們真的非常高興能夠看到RenderScript支持庫的推出。目前已經(jīng)有一些發(fā)布的應用里使用到了RenderScript支持庫——例如Google+ Android應用(2013年5月之后的版本)的照片編輯器里就使用了RenderScript支持庫,在將來一些更大,更流行的應用里面,RenderScript會更多地證明自己。我們希望你也會喜歡RenderScript支持庫。