isHardwareAccelerated() 始终 returns 错误

isHardwareAccelerated() always returns false

我正在尝试为我的应用程序打开硬件加速 但我似乎从来没有从这个函数中得到 'true' 结果。 我尝试了 Android 开发者博客 post 中关于 标签 android:hardwareAccelerated=true 应用程序 甚至叫

   getWindow().setFlags(WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED,
   WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED);

您应该始终在将视图附加到 window 后调用 isHardwareAccelearted()。我不确定你的情况,因为我看不到你实际上在哪里调用它。

此外,还提到了 API 级别的各种操作的支持级别 here。希望对您有所帮助。

您也可以试试这个方法来验证hardwareAcceleration。

public static boolean hasHardwareAcceleration(Activity activity) {
    // Has HW acceleration been enabled manually in the current window?
    Window window = activity.getWindow();
    if (window != null) {
      if ((window.getAttributes().flags
          & WindowManager.LayoutParams.FLAG_HARDWARE_ACCELERATED) != 0) {
        return true;
      }
    }

    // Has HW acceleration been enabled in the manifest?
    try {
      ActivityInfo info = activity.getPackageManager().getActivityInfo(
          activity.getComponentName(), 0);
      if ((info.flags & ActivityInfo.FLAG_HARDWARE_ACCELERATED) != 0) {
        return true;
      }
    } catch (PackageManager.NameNotFoundException e) {
      Log.e("Chrome", "getActivityInfo(self) should not fail");
    }

    return false;
  }

要检查视图,试试这个。

 chat_wv.post(new Runnable() {
      @Override
      public void run() {
        Log.e("isHardwareAccelerated", ""+chat_wv.isHardwareAccelerated());
      }
    });