Android 硬件加速

android:hardwareAccelerated

Posted by LXG on June 6, 2023

硬件加速-Android

硬件加速

从 Android 3.0(API 级别 11)开始,Android 2D 渲染管道支持硬件加速,也就是说,在 View 的画布上执行的所有绘制操作都会使用 GPU。启用硬件加速需要更多资源,因此应用会占用更多内存。

硬件加速,直观上说就是依赖GPU实现图形绘制加速,软硬件加速的区别主要是图形的绘制究竟是GPU来 处理还是CPU,如果是GPU,就认为是硬件加速绘制,反之,则是软件加速。

优点

  1. 硬件加速对渲染的流畅度有大幅提升。
  2. 在开启硬件加速后,上下拖动列表的感觉是没有跳帧的平滑拖动感,如果没有硬件加速,拖动时能感受到有丢帧。
  3. 在窗体切换动画上也类似,硬件加速开关对切换动画的影响很大。
  4. 对于video、canvas、webgl,没有硬件加速是没法商用的,Android webview里video标签里的视频如果没有硬件加速会看不到画面。

缺点

  1. 硬件加速属于双缓冲机制,使用显存进行页面渲染(使用较少的物理内存),导致更频繁的显存操作,可能引起以下现象:白屏、花屏、闪屏;
  2. 低RAM内存配置手机上闪退。
  3. 虽然新出的Android5.0的手机整体配置较高(显存较大),但是如果页面中使用大量图片或者过于复杂的CSS样式时同样容易出现白屏、花屏、闪屏现象。

A133

【FAQ1624】A133 GPU-带宽瓶颈问题排查

GPU利用率


ceres-c3:/ # cat /sys/kernel/debug/pvr/status
Driver Status:   OK
Firmware Status: OK
HWR Event Count: 0
CRR Event Count: 0
FWF Event Count: 0
APM Event Count: 0
SLR Event Count: 0
GPU Utilisation: 4%

【FAQ779】 获取GPU调试信息


1|ceres-c3:/ # cat /sys/kernel/debug/sunxi_gpu/dump
voltage:950000mV;
man:off;
idle:off;
scenectrl:off;
dvfs:off;
independent_power:No;
Frequency:504MHz;

A133 死机日志

Logcat


06-06 16:41:44.618  2864  2908 W OpenGLRenderer: dequeueBuffer failed, error = -110; switching to fallback

kernel_log_1

kernel_log_1

kernel_log_2

kernel_log_2

kernel_log_3

kernel_log_3

kernel_log_4

kernel_log_4

kernel_log_5

kernel_log_5

kernel_log_6

kernel_log_6