2012-01-09 34 views
5

Có thể có điều gì đó ngớ ngẩn đang diễn ra, nhưng tôi đang cố gắng cho phép tăng tốc phần cứng trong ứng dụng nhắm mục tiêu 3.1, mỗi this tutorial.Tăng tốc phần cứng không được bật

Tôi đã thêm phần sau đây để biểu hiện của tôi:

<uses-sdk 
    android:targetSdkVersion="12" 
    android:minSdkVersion="12" /> 

<application 
    ... 
    android:hardwareAccelerated="true"> 

Khi tôi kiểm tra trạng thái tăng tốc phần cứng sau khi xem được đính kèm (bằng cách gọi isHardwareAccelerated() trong một overriden onAttachedToWindow()) Tôi đang trở thành sự thật, vì vậy tất cả Trông rất tuyệt. Vấn đề là Canvas của SurfaceView KHÔNG được tăng tốc, vì canvas.isHardwareAccelerated() trả về false. Tôi đang kiểm tra ở surfaceCreated() và tôi cũng nhận được sự thật ở đó, vì vậy không có ý tưởng nào khiến Canvas mất cài đặt này.

Mọi con trỏ?

EDIT1:

Tìm thấy thisthis vào nhóm phát triển của Google, nhưng tôi thực sự kiểm tra sau khi xem được gắn nếu tôi đang kiểm tra này trong onAttachedToWindow(), phải không? Đây là trên một máy tính bảng Lenovo chạy 3.1 BTW.

EDIT2:

Tôi đã thử tắt tăng tốc qua thiết

<application 
    ... 
    android:hardwareAccelerated="false"> 

Và tôi vẫn thấy thật sự trở về từ các Xem trong onAttachedToWindow(), vì vậy một cái gì đó không phải là ngay tại đây. Tôi không rõ ràng chanbing hw tăng tốc từ mã, có thể là một vấn đề thiết bị cụ thể?

Ngoài ra, tôi nhìn thấy những dòng sau rải rác trong LogCat khi SurfaceView được tạo ra:

surface (identity=524) is invalid, err=-19 (No such device) 

EDIT3:

Chỉ cần suy nghĩ thật to ở đây, nhưng là có bất kỳ cơ hội mà các Canvas không phải là đang được tăng tốc do thực tế là nó nằm trên chuỗi riêng của nó, thông qua việc triển khai SurfaceView điển hình sử dụng vòng lặp vẽ, như Lunar Lander?

Trả lời

4

Đây là hành vi mong đợi. SurfaceView là không phải là tăng tốc phần cứng. (link)

Vì Android 4.0 có một TextureView mới (ở đây là example).
Xem thêm SO question này cho tính sẵn có trước 4.0.

Cập nhật: Chỉ cần thử nghiệm trên Biến áp với Android 4.0 và Canvas TextureView cũng không được tăng tốc HW. : -/

Cập nhật Android 6.0: có một phương pháp mới để tăng tốc phần cứng: https://developer.android.com/reference/android/view/Surface.html#lockHardwareCanvas()

Các vấn đề liên quan