Software

머티리얼 디자인(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) 더 읽기"

FAILED BINDER TRANSACTION

안드로이드에서 액티비티나 서비스같은 컴포넌트 간 데이터를 전달할 때 인텐트를 쓴다. 정확히는 인텐트 객체 안의mExtras라는Bundle 형 객체를 활용하는데 이 때 전송할 수 있는 데이터의 제한이 있을까? 결론만 이야기하면 있다. 안드로이드 공식문서에 인텐트의 extras의 크기 제한으로 언급된 내용은 없지만, 일정 크기 이상의 데이터를 intent에 넣어 전달하려고 하면 아래와 같은 에러가 발생한다. 09-06 11:04:42.329 6839-6839/? E/JavaBinder: !!! FAILED

FAILED BINDER TRANSACTION 더 읽기"