Android 为什么将硬件加速为false会加快速度?

Android 为什么将硬件加速为false会加快速度?,android,Android,我有一个在平板电脑设备上运行的应用程序,它有两个窗格,左边有一个关于替换片段的简单动画: private void loadLeftFragment(Fragment fragment, boolean isAnimated) { FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction(); if (isAnimated) {

我有一个在平板电脑设备上运行的应用程序,它有两个窗格,左边有一个关于替换片段的简单动画:

private void loadLeftFragment(Fragment fragment, boolean isAnimated) {
        FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();

        if (isAnimated) {
            fragmentTransaction.setCustomAnimations(android.R.anim.slide_in_left,
                    android.R.anim.slide_out_right);
        }

        fragmentTransaction.addToBackStack(null);
        fragmentTransaction.replace(R.id.left_frame, fragment).commit();
    }

请注意代码的动画和平。它在Nexus7上运行非常平稳,但在Galaxy Tab 2上则不是。因此,我在AndroidManifest.xml中试用了
android:hardwareAccelerated=“true/false”
标记。我得到的是,当该值设置为
false
时,Galaxy选项卡2上的动画与Nexus 7上的动画类似,即平滑且好看。我没想到会出现这样的行为,假设它应该是相反的-将
hardwareAccelerated
值设置为
true
会使事情“更顺利”。但是如果我将它设置为
true
我会看到滞后,而
false
则很好!我错过了什么?谢谢。

这完全取决于内存使用情况。当你打开硬件加速时会发生什么, 应用程序的动画和UI呈现是通过GPU进行的,这会导致系统内存使用率受到影响。为每个进程加载OpenGL驱动程序需要大约2MB的内存使用,并将其提升到8MB。在RAM有限的设备上,这可能是一个真正的问题。当更多的RAM被占用时,系统必须关闭更多的后台任务以节省内存


因此,必须根据目标设备巧妙地使用此选项

但是如何构造依赖关系呢?你有一些在不同的真实设备上使用的例子吗?