在视图,窗口和活动级别控制硬件加速的目的是什么?

时间:2016-03-16 18:06:27

标签: android hardware-acceleration

我正在阅读硬件加速,并看到它提到你可以在窗口,视图和活动级别控制它。有这么多粒度控制的原因吗?如果您想禁用或启用硬件加速,我认为应用程序级别已经足够了。

1 个答案:

答案 0 :(得分:1)

硬件加速的粒度有几个原因。 Romain Guy在article中发现了许多好点。

一个特殊的senerio将在记忆激烈的情况下;这是文章的引用:

  

由于硬件层消耗视频内存,因此强烈建议使用   您只在动画期间启用它们。这可以   通过动画听众实现:

view.setLayerType(View.LAYER_TYPE_HARDWARE, null);
ObjectAnimator animator = ObjectAnimator.ofFloat(
     view, "rotationY", 180);
animator.addListener(new AnimatorListenerAdapter() {
    @Override
    public void onAnimationEnd(Animator animation) {
        view.setLayerType(View.LAYER_TYPE_NONE, null);
    }
});
animator.start();

所以,也许你只想在某些视图上启用它们以节省内存,但仍然希望动画能够顺利运行,以便你使用硬件加速。

其他原因可能来自某些自定义视图,导致图形管道使用不当,因此您可能会遇到性能问题或屏幕撕裂,并希望在特定视图中将其关闭。