2013-07-26 2 views
1

Activity에 표시 할 데이터가 많기 때문에 복잡한 View 구조가 있습니다. 나는 TextViews을 많이 가지고 많은 RelativeLayouts을 가지고 있습니다. 난 주위에 봤지만 복잡한 Layouts 및 RAM 사용에 대한 명확한 정보를 찾을 수 없습니다.android - 모든 레이아웃에서 동일한 RAM 용량이 필요합니까?

그래서 질문은 : 나는 등 RelativeLayout, LinearLayout을 사용 또는 RAM 소비가 Layout 유형에서 독립적 인 경우보기의 RAM 사용 지점에서, 그것은 중요합니까?

답변

2

두 가지 (1)이 경우 성능을 측정하는 데 RAM 사용이 올바른 방법이라고 생각하지 않습니다. XML은 꽤 가볍습니다. 복잡한 XML 레이아웃이라도 XML만으로 많은 양의 이미지를 만들 수는 없습니다. 오히려 레이아웃의 구성 요소 (예 : 비트 맵, 메모리를 사용하는 것입니다.

(2) 레이아웃 유형이 레이아웃의 복잡성만큼이나 중요하다는 것을 나는 모른다.

이 뷰를 지원하는 설명서가 없지만 시스템에서 XML을 구문 분석하는 방법에 대해 논리적으로 생각하고 있습니다. RelativeLayout 또는 LinearLayout은 모두 거의 동일해야합니다. 그러나 일단 LinearLayouts에서 자주 발생하는 레이아웃 요소 중첩을 시작하면 상황이 다를 수 있습니다. 시스템에서 진행되고있는 작업을 이해하기 위해 XML을 구문 분석해야하므로 추가하는 구문 분석의 각 계층은 성능을 저하시키는 것처럼 보입니다. 예를 들어, 각 "행"을 처리하기 위해 몇 가지 하위 레이아웃이있는 세로 방향으로 설정된 LinearLayout은 요소를 서로 나란히 배치하는 하나의 RelativeLayout보다 렌더링에 더 오래 걸립니다.

대부분의 경우 나는 큰 차이를 느낄 것이라고 생각하지 않습니다. 예를 들어 한 번의 작업으로 복잡한 레이아웃을 한 번 렌더링하는 것은 그리 어렵지 않습니다. 그러나 XML 구조를 재사용 할 때조차도 화면을 채우는 데 필요한만큼 여러 번 구문 분석해야하는 목록 또는 격자보기에 대해 생각해보십시오. 그것이 당신이 일을 늦추기 시작할 것입니다.

희망이 있습니다.

+0

설명해 주셔서 감사합니다. 나는 일부 게임에 대한 플레이어 통계를 표시하는 응용 프로그램을 만들고 있는데, "슬라이드 아웃 메뉴"에서 최대한 많은 정보를 숨기려고 노력하고 있지만 "일반 통계"레이아웃은 데이터 량이 최소 30 개 이상이어야합니다. 꽤 큽니다. RelativeLayouts를 사용하여이 TextViews를 그룹화하고 모든 것을 더 멋지게 보이게 만들었지 만 메모리가 너무 많아서 걱정이됩니다. View 객체 – Droidman

+0

TextViews는 매우 간단합니다. 당신이 정말 고해상도의 배경 이미지를 사용하지 않는다면 저는 그렇게 걱정하지 않을 것입니다. 어쨌든 stat 보드가 파괴되면 모든 것이 가비지 수집됩니다 (메모리가 누출되지 않는 한). 어떤 경우라도 시도 할 때까지 알 수 없습니다. 그것을 빌드하고 힙 크기를 관찰하십시오. – Rarw

+0

글쎄, 나는 정말로이 메시지가 마음에 들지 않는다. 07-26 21 : 13 : 55.528 : I/dalvikvm-heap (3884) : 8294416 바이트 할당을 위해 19.637MB로 힙 (frag 케이스)을 늘린다. 나는 많지 않지만 중첩 된 레이아웃 – Droidman

관련 문제