많은 중첩 된 RelativeLayouts 사용시 성능 문제가 발생했습니다.
예를 들어복잡한 RelativeLayout 기반 뷰 성능 문제
우리는 UI의 루트로 일부 RelativeLayout의, 모든 컨테이너 (버튼, 라벨, 텍스트 뷰, 이미지 뷰)가있는 경우는에 나서, RelativeLayout의 + 안드로이드 기반 구성 요소 (예. 인 aButton = RelativeLayout의 + 이미지 뷰 + 텍스트 뷰)입니다 4 개의 단추, 3 개의 이미지 및 6 개의 레이블의 복잡한보기 - ~ 15 개의 중첩 된 RelativeLayouts.
RelativeLayout에는 모든 자식의 크기를 계산하여 레이아웃 크기를 결정하는 매우 복잡한 onMeasure 메서드가 있습니다. 15 ~ 20 개의 중첩 된 RelativeLayouts의 복잡한보기 크기를 계산하는 데 ~ 5 초가 걸리므로 너무 많습니다. onMeasure는 모든 호출 중에서 가장 비싸며 그리기도 훨씬 빨라 측정이 완료됩니다. < = UPD =>
네이티브 Android보기를 사용하여 복잡한 항목을 만드는 제안을 방지하려면 다음을 수행하십시오.
모든 것을 모든 것에 추가 할 수있는 기능이 필요합니다. 이것이 모든 컨테이너가 View뿐 아니라 ViewGroup이되어야하는 이유입니다. 중력 및 정렬과 같은 RelativeLayout 기능을 사용하면 많은 도움이 될 수 있습니다. 그 때문에 많은 RelativeLayouts가 사용됩니다. < =/UPD =>
누구든지 이러한 성능 문제가 있습니까?
RelativeLayout을 다른 레이아웃으로 대체해야할까요?
이러한 중첩 된 레이아웃을 모두 제거하면 문제를 해결할 수있는 유일한 방법입니까?
일부 성능 문제가 나타나지 않고 얼마나 많은 레이아웃을 중첩시킬 수 있는지 알고있는 사람 있습니까?
어떻게 지연을 측정 했습니까? –
디버그 방법 및 내장 traceview 유틸리티 사용. 자세한 내용은 여기를 참조하십시오. http://stackoverflow.com/questions/1957135/how-do-test-the-performance-of-an-android-application – AAverin