프로그래밍/Android 28

android architecture components (AAC) 설명 및 샘플코드

안드로이드에서는 다양한 컴포넌트들과 lifecycler가 각기 다르고 얽혀 있습니다. 앱을 개발하다보면 이런 컴포넌트들이 정상적으로 연결되어 있지 않으면 명확하게 파악하기 어려운 사이드 이펙트와 버그 및 크래시를 보게 되는데요. 이러한 문제를 해결하기 위해 각각의 컴포넌트들에 있는 lifecycler를 학습하고 문제점을 수정하는데 많은 시간을 할애해야 했습니다. 이전에는 명확한 가이드 라인이 없었고 구글에서도 이러한 문제점을 줄이기 위해 Android Architecture Components(AAC)를 제공하고 있습니다. 자세한 사항은 아래 링크에서 확인 가능합니다. https://developer.android.com/topic/libraries/architecture 또한 현재 git에 샘플 코드를..

안드로이드스튜디오 단축키

Editing Ctrl + Space : 기본 코드 완성Ctrl + Shift + Space : 스마트 코드 완성(예상되는 타입의 메소드또는 변수명 )Ctrl + Q : 빠른 문서보기Shift + F1 : 외부 문서보기(http://developer.android.com/reference로 이동)Ctrl + mouse over code : 간단한 설명.Alt + Insert : Generate code( Getters, Setters, Constructors, hashCode/equals, toString )Ctrl + O : Override methodsCtrl + I : Implement methodsCtrl + Alt + T : Surround with… (if..else, try..catch, f..

[Android] Handler{} sending message to a Handler on a dead thread

AsyncTask 사용 시 에러가 ? 리스트에 바인딩 할 객체를 불러 올 때 AsyncTask를 썼다. 그런데 번번이 'sending message to a Handler on a dead thread' 라는 메시지를 내뱉고는 죽는 것이었다. 다행히 나만 이런 문제가 있는 건 아니었다. http://code.google.com/p/android/issues/detail?id=20915 AsyncTask의 필드를 보면 static으로 InternalHandler를 생성하는 부분이 있는데, (InternalHandler는 끝날 때나 ProgressUpdate할 때 쓰인다) 이게 꼭 UI thread에서 생성이 되야된다더라. API에도 비슷한 부분이 있긴 한데... 'The task instance must ..

[Android] px 과 dip 단위 변환

- 안드로이드에서 다양한 화면크기의 기기들을 지원하려면 고정 단위인 px 보다 밀도에 따른 논리 단위인 dip 를 사용해야한다. 하지만 안드로이드 api 소스코드들의 크기는 px 단위를 사용한다. 따라서 dip를 px 로 변환하여 사용하는 방법이 필요.- 안드로이드 개발자 사이트 화면 관련 http://developer.android.com/guide/practices/screens_support.html 다양한 3가지 방법- 입맛에 맞춰 사용하자- 아래소스는 10 dip 를 pixel 로 변환한다는 것을 가정한다. 1. 안드로이드 dev 사이트에 소개된 방식 final float scale = getResources().getDisplayMetrics().density; // 화면의 밀도를 구한다.fl..