안드로이드/문서번역
-
재사용 가능한 UI 컴포넌트로 레이아웃 구성하기안드로이드/문서번역 2011. 2. 23. 12:21
재사용 가능한 UI 컴포넌트로 레이아웃 구성하기 안드로이드 플랫폼은 아주 다양한 UI 위젯을 제공합니다. 작은 위젯 조각을 합쳐서 복잡하고 정교한 인터페이스를 사용자에게 보여줄 수 있습니다. 하지만 애플리케이션을 개발 할 때 더 수준높은 인터페이스가 필요 할 때가 있습니다. 이 인터페이스를 완성하면서 그것도 효율적으로 만들기 위해서는 수 개의 표준위젯을 하나이면서 재사용이 가능한 컴포넌트로 합쳐야 합니다. 예를 들어 프로그레스바와 취소버튼이 있고 아이콘과 제목, 설명이 있고 Positive 와 Negative 액션과 등등이 포함된 패널을 만듭니다. 이런 UI 컴포넌트를 만들기 위해서는 커스텀 뷰를 만드는 방법도 있지만 XML을 통해서 더욱 쉽게 할 수 있습니다. 안드로이드의 XML 레이아웃 파일에서 각각..
-
윈도우 백그라운드 & UI 속도안드로이드/문서번역 2011. 2. 22. 18:45
윈도우 백그라운드 & UI 속도 안드로이드의 어떤 애플리케이션은 UI 의 속도를 최대한 끌어올릴 필요가 있습니다. 방법은 여러가지가 있습니다. 이번 문서에서는 애플리케이션의 그리기 성능과 액티비티의 지각(느낄 수 있는) 할 수 있는 스타트업 속도를 어떻게 향상시킬수 있는지 알아봅니다. 이 두가지 성능향상을 위한 기법은 한 요소에 의해 결정됩니다. 윈도우의 백그라운드 Drawable 입니다. 윈도우 백그라운드라는 용어는 약간은 오해의 소지가 있습니다. 하지만 액티비티에서 setContentView() 메서드를 이용해서 UI를 구축한다면 안드로이드는 액티비티의 윈도우에 뷰를 추가합니다. 하지만 윈도우는 단지 뷰만 추가하는 것이 아니라 몇몇 다른 요소들을 포함합니다. 가장 중요한 요소는 T-Mobile G1에..
-
효율적인 레이아웃 구성하는 기법안드로이드/문서번역 2011. 2. 21. 20:16
효율적인 레이아웃 구성하는 기법 안드로이드 UI 툴은 사용하기 쉽고 편한 관리툴을 제공합니다. 대부분의 경우에는 관리툴이 제공하는 몇몇 기본적인 것들만 이용하면 UI를 간편하게 구성할 수 있습니다. 하지만 기본적인 것들만 이용해서는 효율적인 사용자 UI를 만들지 못하겠죠. 보기 좋은 예가 LinearLayout의 남용을 들 수 있는데 이렇게 남용하게 되면 View 계층에서 View가 넘쳐나게 되는 결과를 야기합니다. 애플리케이션에서 보여지는 모든 뷰와 레이아웃 관리툴은 초기화라는 비용을 수반합니다. 이런 비용은 레이아웃과 그리기 성능을 저하시키죠. 특히 다중 LinearLayout 에서 weight 속성을 여러번 사용하면 weight 속성의 특성상 자식객체를 두번 측정해야하기 때문에 매우 값비싼 비용을 ..
-
리스트뷰 백그라운드의 최적화안드로이드/문서번역 2011. 2. 19. 23:14
리스트뷰 백그라운드의 최적화 리스트뷰는 안드로이드의 가장 많이 사용되는 위젯중의 하나입니다. 리스트뷰는 사용하기 쉽고 유연하며 매우 강력합니다. 가끔씩은 이해하기 어려울 때도 있죠. 리스트뷰의 가장 흔한 문제중의 하나는 리스트뷰의 백그라운드(배경)을 커스텀으로 제작할 때 발생합니다. 다른 안드로이드 위젯들처럼 리스트뷰의 백그라운드는 투명으로 아래의 그림에서 기본 배경색인 #FF191919, 어두운 회색인 윈도우의 백그라운드를 리스트뷰를 통해 들여다 볼 수 있습니다. 추가적으로 리스트뷰는 기본값으로 아래의 그림에서 볼 수 있듯이 가장자리에 Fading 효과를 주고 있습니다. 아래의 그림에서 리스트뷰의 첫번째 아이템이 검은색으로 Fade 되는 것을 볼 수 있습니다. 이 기법이 사용됨으로서 리스트뷰의 내용물이..
-
메모리 누출 피하기안드로이드/문서번역 2011. 2. 19. 13:39
메모리 누출 피하기 T-Mobile G1과 같은 안드로이드 애플리케이션들은 Heap 메모리 영역이 16MB 로 제한되어 있습니다. 이 메모리는 핸드폰에는 많은 양의 메모리이지만 개발자가 필요로 하는것에는 크게 못 미칩니다. 이 메모리를 모두 다 사용할 계획이 없다고 하더라도 개발시에는 이 영역을 최소한으로 사용해서 다른 애플리케이션들이 Kill 당하지 않고 운용될 수 있도록 해야 합니다. 안드로이드가 더 많은 애플리케이션을 메모리에 상주시킴으로서 사용자는 애플리케이션간에 더 빠른 전환을 할 수 있습니다. 안드로이드를 개발 할 때에 메모리의 누출현상은 대부분의 경우에 같은 실수때문에 일어납니다. 즉, Context에 오랜시간 지속되는 참조를 하기 때문입니다. 안드로이드에서 Context는 아주 다양한 작업..