2017-02-13 7 views
0

간단한 질문입니다.Android Hardware Acceleration : 애니메이션 용 하드웨어 레이어가 필요합니까?

매우 부드러운 UI를 제공하기 위해 일부 문서를 읽었습니다. 기본적으로 SDK 14+를 대상으로하는 모든 응용 프로그램 프로젝트에서는 하드웨어 가속을 사용하도록 설정되어 있습니다.

이 경우, Project Butter의 일부로 최적화 된 속성 (알파, 스케일, 변환 및 회전)을 수정하는 특정 애니메이션에 하드웨어 레이어를 사용해야합니까?

제대로 사용하면 애니메이션 프레임을 "미리 버퍼링"하고 GPU 메모리에 저장하여 렌더링 프로세스를 최적화하는 것이 좋습니다. 그러나 언제 사용해야합니까? 그들은 정말로 필요합니까? 아니면 하드웨어 가속화가 도움이됩니까?

입력 해 주셔서 감사합니다.

답변

0

저는 이것에 대해서 궁금해했습니다. 그래서 약간의 테스트를했습니다. 쇼 하드웨어 레이어 업데이트를 켜고 번역과 함께 간단한 채도 애니메이션을 실행했지만 켜지지 않았습니다. 그래서 나는 LAYER_TYPE_HARDWARE으로 달렸고 충분히 밝았습니다. 그래서 나는 그것이 부분적으로 작용한다고 생각합니다. 하지만 실제로 Nexus 5x에서 애니메이션에 큰 변화가 없었습니다.

+0

채도 애니메이션을 정의 할 수 있습니까? 나도 작은 테스트를했다. 새로운 프로젝트에서 HelloWorld 텍스트 뷰의 두 축 모두에서 크기와 변환 값을 애니메이션화하는 간단한 10 초 길이의 animate()를 사용하여 아무런 차이가 없다는 것을 알았다. CM 13을 실행하는 Galaxy Note 3에서 테스트를했습니다. GPU 모니터에서 때때로 프레임 손실이 있음을 분명히 볼 수있었습니다 : 완벽하지 않았습니다. 왜 ? – Mackovich

+0

채도 애니메이션은 기본적으로'animatedView.setColorFilter()'를 사용하여'ImageView' 컬러 필터를 변경합니다. –

+0

그래서 최적화 된 속성의 일부가 아닙니다. 이러한 속성은 Lolliopop에 도입 된 RenderThread에서 수정됩니다. 너무 많은 작업으로 UI 스레드를 덜어줍니다. – Mackovich