近日,Google 正式宣布將會在 Android 12 中棄用 RenderScript API 。 Renderscript 早在 Android 3.0 ( Honeycomb )時代就被 Google 引入使用了,成為了系統中的一個用於異構 CPU/GPU 編程的 API ,並且在一段時間內還成為了用於 3D 渲染的 API 。但隨著 Android 版本升級,對 Renderscript 的要求也越來越高,很多時候 Renderscript 的使用就顯得併不是那麼得心應手了,而 Google 也曾為這款 API 的設計作出讓步。隨著 GPU 計算通過 Vulkan 甚至 OpenGL 的實現,如今 RenderScript 存在的意義已經不大了。
Google 在 Android 開發者博客中提及,其實早已不建議將 RenderScript 用於對性能需求至關重要的任務, Android 開發者應該轉向可在 GPU 硬件層級上高效運作、且具有出色的跨平台體驗的 Vulkan API 。並且還提供了一個示例,對比了 RenderScript 與 Vulkan API 的運行差異。
對於那些缺乏 Vulkan 支援的舊裝置,開發者們將不得不維護兩套代碼方案。但 Google 開源了一個 Android 庫用來代替大多數不再被推薦使用的 Intrinsics 函數。該庫為大多數 RenderScript 內部函數提供了高度優化的 CPU 實現,據悉這個開源庫除了 BLAS 外,其他功能都能夠實現。從對比中可以發現,這個新庫對 CPU 的執行速度更快。
Google 最後還表示到, RenderScript 雖還可以繼續在 Android 12 上運行,但開發者會在編譯 RenderScript 代碼時收到相關警告。