1

나는 중년의 안드로이드 개발자입니다. 안드로이드 UI 디자인을 위해, 나는 대부분의 안드로이드 개발자가 레이아웃 디자인을 위해 XML을 사용할 것이라고 생각한다. 오늘, 수석 개발자는 레이아웃 디자인에 XML을 사용하지 않는다고 말했습니다. 모든 UI 디자인은 생성하기 위해 코드를 사용합니다. 그가 말한 이유는 레이아웃 리소스가 Android에 의해 자동으로 해제되지 않는다는 것입니다 .JNI를 사용하여 레이아웃 리소스를 해제하십시오. 그는 내가 아주 중학교라고 생각하기 때문에 자세히 말하지 않습니다.레이아웃 메모리 누출?

그가 진실인지 아닌지 물어보고 싶습니다. 나는 그의 관점에 대해 전혀 모른다. 하지만, 나는 그의 코드가 재사용 될 수 없다는 것을 확신한다. 또한 안드로이드가 라이프 사이클에서 레이아웃 리소스를 어떻게 발표할까요?

감사합니다.

+0

레이아웃을 디자인하는 데 XML을 사용하는 것이 좋습니다. 그리고 어떤 종류의 메모리 누수로 이어질지는 의심 스럽습니다. – Egor

+0

이것은 사실이 아닙니다. xml을 통해 레이아웃을 디자인 할 때 메모리 누수가 없습니다. 그는 너와 농담을하고 있을지도 모른다. – waqaslam

+0

@ Egor : 예, 그렇게 생각합니다. 레이아웃을 하드 코딩하는 것은 당연합니다. –

답변

3

그가 말한 이유는 레이아웃 리소스 안드로이드 해당 위젯 활동으로부터 제거 될 때 "자동 안드로이드 릴리스」되는 레이아웃 리소스 팽창에 의해 생성 된 자동

위젯을 방출되지 않는다는 또는 활동이 파괴 된 경우. 즉, 위젯은 다른 Java 객체와 마찬가지로 가비지 수집됩니다. 레이아웃 리소스를 사용하여 위젯을 만들었는지 여부와 관계없이 사실입니다.

레이아웃 리소스의 구문 분석 된 XML이 프로세스에 의해 캐시되므로, 동일한 레이아웃이 다시 필요할 경우 구문 분석 단계를 건너 뛸 수 있습니다. 이것은별로 기억이되지 않습니다. 이러한 작은 메모리 캐싱을 피하기 위해 XML 레이아웃 리소스를 피하는 것은 진정으로 "선임 개발자"가 기대하는 것이 아니라 매우 근시안적입니다. JNI를 사용

레이아웃 자원 JNI 레이아웃 자원과 아무 상관이

을 놓습니다. JNI는 위젯과 아무 관련이 없습니다.

그는 내가 매우 중학교라고 생각하기 때문에 자세히 말하지 않습니다.

그는 자신의 주장에 대한 증거를 제공하고 자신의 결정에 대한 근거를 제공하는 것을 환영합니다.

+0

위대한! 그러나 레이아웃 리소스가 캐시 된 것을 어떻게 알 수 있습니까? –

+0

좋은 대답입니다. 질문해도 될까요? IOS 개발자와 협력해야합니다. 그는 안드로이드가 UI 디자인을 어떻게하는지 알지 못합니다. 그러나 그는 매우 역동적 인 UI를 만듭니다. 나에게 대답하기 위해이 링크로 가도 될까요? [링크 :] http://stackoverflow.com/questions/11563370/how-do-you-design-this-layout-simple 감사. –

+0

@ user1535426 : "그러나 레이아웃 리소스가 캐시 된 것을 어떻게 알 수 있습니까?" 안드로이드 소스 코드를 통해 몇 시간 동안 사냥을하다가 안드로이드가 분석 된 XML 리소스를 실제로 캐싱하는지 확인합니다. 개인적으로, 나는 그들이 캐쉬되어 있는지 아닌지를 모른다. – CommonsWare