16

Tôi đã phát triển một ứng dụng cho Android 3.0 và nó chạy hoàn toàn tốt, nhưng khách hàng nhấn mạnh vào khả năng tương thích với 2.2 thiết bị.Bật tăng tốc phần cứng nếu có (như Android 3+) với Android APK 2.2

Tắt tăng tốc phần cứng, sử dụng Gói tương thích Android, hỗ trợ cổng quay lại NIO (Đối với tác vụ và thực thi) và một số reimplementation phương thức Xem tôi có thể chuyển ứng dụng của tôi cho Android 2.2 và hoạt động thực sự tốt, nhưng nếu tôi chạy apk vào một thiết bị mới hơn hiệu suất là rất chậm, vì vậy tôi muốn biết làm thế nào để bật tăng tốc phần cứng nếu có nhưng vẫn sử dụng 2.2 APK của tôi.

Trả lời

30

Thêm android:hardwareAccelerated="true" vào tệp kê khai của bạn, cho số <activity> hoặc <application>.

Thuộc tính này sẽ bị bỏ qua trên các phiên bản Android cũ hơn nhưng sẽ được vinh danh trên Android 3.0 trở lên.

Điều này sẽ yêu cầu bạn phải đặt mục tiêu xây dựng của mình thành API cấp 11 trở lên, nhưng có thể bạn đã có mục tiêu đó.

+1

Mục tiêu xây dựng là 8 để nó có thể chạy trên các thiết bị Android 2.2. Chỉ cần thêm android: hardwareAccelerated = "true" với minSdk = 8 đưa ra lỗi. –

+1

@MarcosVasconcelos: Mục tiêu xây dựng không có gì liên quan đến những thiết bị có thể chạy trên đó. – CommonsWare

+0

Đúng, thực sự không quan trọng mục tiêu xây dựng nào là điểm, vì minSdkVersion được tôn trọng. –

2

Bạn có thể xem here để xem cách bạn có thể bật các tính năng dựa trên phiên bản Android. Bạn có thể làm điều đó với sự phản chiếu quá, nhưng nó là clunky.

+0

Vâng, điều này đã giúp tôi chạy mã cụ thể trên mỗi phiên bản. Cảm ơn! –

4

Nếu bạn cần hỗ trợ devises với hệ điều hành cũ (2.3.x trở lên) phiên bản, không thêm android:hardwareAccelerated="true" đến biểu hiện của bạn, hãy thử thêm mã này trong java của bạn:

try { if(Build.VERSION.SDK_INT >= 11) getWindow().setFlags(16777216, 16777216); } catch(Exception e) {} // FLAG_HARDWARE_ACCELERATED == 16777216 (0x01000000) 

Đây là công việc trong OS 3.0+ + và không gọi lỗi trên 2.3.X trở lên.

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