Czy możliwe jest konsekwentne wykrywanie, czy w działaniu zostało włączone przyspieszenie sprzętowe podczas jego tworzenia? Obawiam się, że użytkownicy mojej biblioteki włączą go za pośrednictwem manifestu, kiedy nie powinni, przez nie wyłączenie go specjalnie dla mojej aktywności (jak nakazuję im to zrobić).Wykryj przyspieszenie sprzętowe w środowisku wykonawczym: Android
Jedyne solidne informacje jakie mogę znaleźć (http://android-developers.blogspot.com/2011/03/android-30-hardware-acceleration.html) mówi, że mogę zapytać View.isHardwareAccelerated()
i Canvas.isHardwareAccelerated()
. Jednak dla moich celów chciałbym upewnić się, że jest wyłączony, gdy wyświetlana jest aktywność mojej biblioteki. Do tej pory nie mogę uzyskać niczego, co mogłoby potwierdzić spójne tak/nie, gdy jest włączone lub wyłączone. Próbowałem hakować w widoku sztucznym, ustawiając go na moją aktywność, a następnie testując, ale zawsze zwraca wartość false. Próbowałem też testować Window.getAttributes().flags
, ale one też tego nie pokazują.
Testuję to, ponieważ sprzętowa akcelerowana ścieżka rysowania dla mojej biblioteki nie działa poprawnie i nie wydaje się, że jest jakikolwiek sposób, aby to naprawić.
Niesamowite! Działa, dzięki milionowi! – Jesse
Innym sposobem na to jest wywołanie metody getDecorView(). IsHardwareAccelerated() z metody onCreate() działania. –