티스토리 뷰


Making Android for everyone

저용량 메모리에 최적화하라

최소 메모리 512M의 저사양의 Android 디바이스에서도 빠르고 부드럽고 반응성이 좋도록 디자인 되었습니다.




현재 OS의 점유율을 보면 진저브레드가 25% 이상 이라는걸 알 수 있습니다. 개발도상국의 경우 생산되는 디바이스의 우선순위가 성능보다는 가격이기에 저스펙의 디바이스가 아직도 많이 생산되며 OS의 경우도 진저브레드를 탑재하는 경우가 많습니다. 이에 이러한 저사양의 디바이스에도 최신 OS를 적용할 수 있도록 최소사양을 낮추도록 노력한것 같습니다. 이에 저사양의 단말에도 적용이 가능한 만큼 각 제조사에서 얼마나 많은 구형 단말까지 지원할지 궁금해집니다.


Android Update Alliance




Google이 대표적인 안드로이드 제조사/이통사(Android Update Alliance)가 안드로이드 업데이트를 최소한 출시후 18개월까지는 지원한다고 발표했는데, Google 홈페이지의 설명에 따르면 갤럭시 넥서스 이미 출시후 18개월이 지났기 때문에 OS 업데이트를 지원에서 제외되었다고 명시되어있습니다. 


또한 주요 컴포넌트들을 간소화했으며 새로운 API들과 개발 툴을 제공함으로서 메모리 효율, 터치 스크린의 반응성 등의 최적화를 이뤄냈습니다.


OEM 제조사들은 targeted recommendations and options을 통해서 저전력의 디바이스를 만들 수 있게되었습니다. 즉, Dalvik JIT code cache 튜닝 , 커널 동일페이지병합(KSM), zRAM 교환 등의 컨트롤을 통해 메모리 최적화가 가능해진 것입니다.이런 설정들을 통해서 OEM회사들은 프로세스 레벨에서 메모리를 조율할 수 있고 그래픽 캐시 사이즈를 정의하며 메모리 반환등의 컨트롤을 할 수 있게 되었습니다.


이외에도 OS 자체적으로 메모리 관리를 통해 메모리 사용양을 줄이는 기능이 향상되었습니다. 코어 시스템 프로세스는 힙을 덜 사용하도록 되었으며 앱들이 많은 양의 메모리를 사용하는 것을 방지하여 시스템 메모리를 보호하게 되었습니다.[각주:1] 


여러 서비스를 한번에 사용하게 될때 — 네트워크 연결이 변경된다던지의 — 최대 메모리를 넘지 않도록 하기 위해 순차적으로 서비스를 동작하게 되었습니다.


동일 조건의 브로드 캐스트 리시버와 연결된 서비스들이 많을 시, 이전에는 동시에 서비스들이 동작했지만 이렇게 되면 순간적으로 디바이스의 메모리 허용량을 초과하는 경우가 있어 순차적으로 실행 될 수 있도록 변경한것 같네요.


새로운 API인 ActivityManager.isLowRamDevice()을 통해서 현재 디바이스의 메모리 상태를 확인, 이에 따라 앱에서 행해지는 액션들을 정의 할 수 있게 되었습니다. 또한 필요 케이스에 따라 앱의 large-memory기능을 필요에 따라 켰다 끌 수 있습니다.


위에서 설명한 “앱들이 많은 양의 메모리를 사용하는 것을 방지한다”라는 의미가 여기에서 말하는 large-memory기능을 개발자가 켜고 끌 수 있도록 하여 이뤄지게 한 것 같습니다. 

이외에도 새로운 툴들은 개발한 앱들에 대한 메모리 사용 현항을 매우 자세하게 볼 수 있도록 지원해 줍니다.


procstats tool은 포그라운드 상태의 앱들과 백그라운드 상태의 서비스들의 실행 시간과 메모리 사용량을 볼 수 있으며 디바이스에서 이를 보기 위해선 개발자 옵션에서 해당 옵션을 선택하면 됩니다.


meminfo tool은 쉽게 메모리의 사용량과 문제점을 발견할 수 있도록 하며 이전에는 보이지 않았던 추가 메모리 오버헤드를 볼 수 있도록 도와줍니다.


메모리 관리툴에 대한 이야기는 이후에 좀 더 자세히 다루기로 하겠습니다.



  1. 물론 앱의 최대 메모리 할량당이 줄어들었는지 테스트를 해봐야겠네요. [본문으로]
사업자 정보 표시
SK플래닛 | 서진우 | 경기도 성남시 분당구 판교로 264 the Planet | 사업자 등록번호 : 104-86-36968 | TEL : 02-1600-6573 | Mail : devhelper@tstore.co.kr | 통신판매신고번호 : 제2014-경기성남-0036호 | 사이버몰의 이용약관 바로가기
댓글
댓글쓰기 폼