Android

OOM(Out of Memory)

어플리케이션 실행 시, RAM에 할당할 메모리가 없을 때 발생하는 에러다. 안드로이드 앱에서도 당연히 발생할 수 있다. 먼저 메모리 사용량이 어떻게 변화하는지 확인해보자. adb 명령어를 통해 메모리 상태를 체크할 수도 있다. 하지만, 명령이 실행된 당시의 상태가 표시되기 때문에 문제를 확인하기 어렵다. 대신 안드로이드 스투디오에서 제공하는 메모리 모니터링 툴을 이용하면 편리하다. 메모리 그래프가 실시간으로 업데이트 되기 때문에 […]

OOM(Out of Memory) 더 읽기"

머티리얼 디자인(Material Design)

머티리얼 디자인이 어떤 색상이나 느낌, 기능을 갖고 있는지 찾는 거라면, 예제를 통해 소개하는 좋은 글이 많으니 다른 글을 참조하자. 아래의 글은 안드로이드 머티리얼 디자인이 발표된지 2년이 지난 현재, 개인적으로 머티리얼 디자인에 대해 다시 생각해 보는 글이다. 머티리얼 디자인은 안드로이드가 2014년 구글 I/O에서 Lollipop과 함께 내놓은 디자인 ‘철학’이다. 처음에는 두루뭉술한 설명과 부족한 구현 예제 때문에 개발자나 디자이너가

머티리얼 디자인(Material Design) 더 읽기"

안드로이드 잡스케줄러 주의점

targetSdk를  24 이상으로 지정한 앱은 안드로이드의 정책 변경에 따라 더 이상 CONNECTIVITY_ACTION을 전달받지 못한다. 그러므로,  CONNECTIVITY_ACTION을 통해 정기적으로 백그라운드 작업을 시작하고 있었다면 이제 잡스케줄러를 이용해야 한다. 여기서는, 브로드캐스트 리시버 대신 잡스케줄러로 변경 시 꼭 확인해야할 부분들만 골라 살펴보겠다. 1. CONNECTIVITY_ACTION 브로드캐스트 리시버를 대신해 잡을 등록하자.  앱이 시작될 때, 아래 예제처럼 잡을 등록한다. JobInfo jobInfo =

안드로이드 잡스케줄러 주의점 더 읽기"

AAPT(Android Asset Packaging Tool)

AAPT는 Android Asset Packaging Tool의 약자로, 안드로이드 빌드 툴의 일부로 안드로이드 SDK 안에 포함되어 있다. 빌드 과정에서는 안드로이드 앱의 소스를 제외한 나머지 파일을 정리하여 apk로 패키징하는데 쓰인다. 하지만, 패키징은 IDE가 대신하므로, 보통 개발자들은 apk 에서 정보를 꺼낼 때 쓴다. (한땀한땀 apk를 패키징하는 법에 대해서는 여기를 참조하자.) 그 중 가장 유용한 것은 apk에서 AndroidManifest.xml 정보를 추출하는

AAPT(Android Asset Packaging Tool) 더 읽기"