CompileSdkVersion, MinSdkVersion, TargetSdkVersion 그리고 BuildToolsVersion
안드로이드 작업을 하면서, 최신버전으로 라이브러리로 업데이트하는일이 많은데요. 특히나, 구글에서 제공해주는 design, recyclerview, cardview 같은 라이브러리를 추가해보면, 계속 최신버전으로 업데이트 되는데요. 그런데, 이상하게 build.gradle에 최신버전으로 위의 라이브러리들을 추가하면, 아래이미지와 같이 빨간줄이 있는 경우가 있습니다. 뭐가 문제지? 하고 줄이 간곳에 마우스를 올려보니 아래와 같이 나왔습니다. compileSdkVersion이 23인데, 제가 25버전의 라이브러리를 추가했다 이거죠. "음. 그럼, compileSdkVersion을 25로 올리면 되겠구나" 하는 생각이 들긴 하는데요. 그렇다면, compileSdkVersion이라고 하는 건 뭘까요? 1. com..
2017. 3. 12.
ConstraintLayout 의 매력에 빠져보겠습니다
어느 순간부터 안드로이드 스튜디오를 업데이트 하고나서,프로젝트를 생성한 뒤에, MainActivity.xml을 열어보면,Root ViewGroup이 아래와 같이 ConstraintLayout으로 되어 있는 걸 볼 수 있습니다. 도대체 얼마나 매력적이기에, 구글에서 이것을 디폴트로 쓰라고 추천하는지 궁금해지는데요.오늘은 이 ConstraintLayout에 대해서 정리해 보면서, 그 매력에 빠져보겠습니다~. 1. ConstraintLayout Constraint의 한글뜻은 제한, 통제라는 뜻인데요.모순적이지만, 구글에서는 블로그에서 ViewGroup을 아주 파워풀하고, 유연한 툴이라고 소개하고 있습니다. 구체적으로는, 복잡한 UI들을 안에 겹겹히 쌓지 않고도,위치나 사이즈를 유연하게 적용시킬 수 있는 Vie..
2017. 3. 10.
Java Wrapper 클래스 를 정리해 보자
안드로이드 프로그래밍을 하다보면,Wrapper Class를 사용하게 되는 경우가 많이 있습니다.HashMap이나 Generic, 혹은 ArrayList를 사용할 때 인데요. 오늘은 Java의 WrapperClass에 대해서 정리해보겠습니다. 1. Wrapper Class Java 개발을 할 때, 무심코 사용하던 Wrapper Class란 말은,사실은 기본형(Primitive) 타입을 Wrap해서 쓰는, Primitive Wrapper Class를 지칭한다고 볼 수 있습니다. 실제로 Wrapper Class는, Primitive Wrapper Class뿐만이 아니라, 어떤 Class를 Wrap(포장)해서 사용하는 Class를 가르키는 것 입니다.하지만, 이 글에서도, Wrapper Class를,자바의 Pr..
2017. 3. 7.
Java Map인 HashMap, TreeMap, LinkedHashMap 에 대해서 정리해 보자.
안드로이드 프로그래밍을 하면서 Map을 사용하게 되는 경우가 종종 있는데요.Java 에서 제공해주는 Map에는 HashMap, TreeMap, LinkedHashMap 이 있는데요.이들에 대해서 한번 정리해보겠습니다. 1. HashMap HashMap의 소스코드는 길어서 다 볼수는 없지만, 간단한 주석이 들어있는 앞부분을 참조해보겠습니다.눈이 띄는 부분들을 정리해보면 다음과 같네요.인자로, null값이 허용되는 key,value값을 로 허용한다.해쉬맵의 순서는 정해져있지 않으므로, 정해진 순서대로 iterate을 하고 싶다면, LinkedHashMap을 사용할 것여러 워커 쓰레드를 사용하는 경우, 자동으로 동기화되지 않으므로, synchronized를 해야할 필요가 있다.Serializable을 사용하므..
2017. 2. 12.