옛글
Java static method in parent class don't get sub class name
static method in parent class don't get sub class name. 부모 클래스에서 static메서드 내에서 자식의 클래스 이름을 가져오는 것은 불가능합니다. 그 이유는, 정적으로 선언 될 경우 instance가 아닌, 해당 class에 속하게 되기 때문입니다. 정적으로 선언 될 경우 Class가 Load될 때 생성이 되게 됩니다. 때문에 instance와의 assosiate가 불가능합니다. 다시 정리하면 static을 통해 생성된 class 혹은 변수나 함수는 class가 생성될 때 메모리에 자동적으로 생성이 됩니다. 때문에 instance를 가지고 있는 객체에 접근이 불가능합니다. 반대의 경우가 가능한 이유는 instance에서 static에 접근을 할때에는 이미 메모..
Override / Overload 에 대해서
Override 는 상위클래스의 메서드를 재정의 하는 것입니다. 간단하게 설명하면 상속받은 메서드의 내용을 변경할 수 있습니다. 부모 클래스에 있는 함수와 파라미터까지 동일해야 하며, 주로 상위 클래스의 함수를 상속받아 하위클래스에서 일부를 변경하기 위해서 사용됩니다. 상속 관계에 있는 두 클래스 중에 하위클래스에서 상위클래스의 메소드를 재정의 하는 것을 의미하는데, 이를테면, class Parent { public void print(){Log.w("WARN","parent");}} class Sub extends Parent {public void print(){Log.w("WARN","SUB");}} 위와 같이 사용 후 Sub Class의 print를 호출하게 되면 "SUB"라는 글자가 나오게 됩니..
안드로이드 아키텍쳐 (Analysis of the Android Architecture) #2-2 안드로이드 구조
KIT라는 곳에서 2010년도에 발표된 Analysis of the Android Architecture에 대해 번역을 한 글입니다. 원본은 http://os.ibds.kit.edu/downloads/sa_2010_braehler-stefan_android-architecture.pdf이며, 중간중간 개인적인 주석은 () / *로 처리하겠습니다. 간단하게 아키텍쳐를 이해하는데 도움을 얻으려 번역을 하고 공유하려 합니다. (일부 오역 및 의도가 잘못 전달 되었을 수도 있습니다. 양해부탁드립니다) 2.3.3 Intents, Intent filters and receivers CP와는 다르게 이 세가지의 컴포넌트타입(activities, services, broadcast receivers)는 intent와 ..
SparseArray가 HashMap보다 좋은이유와 사용예
이클립스에서 Map를 사용하게 되면, SparseArray 더욱 좋은 Performance를 가지고 있으니 바꾸라는 Lint가 뜬다. 그렇다면 SparseArray는 무엇일까? 안드로이드 API version 1 부터 제공되었으며, Java가 아닌, Android 문법으로 만들어졌다. (때문에 자바에서도 사용하려면, hashmap을 쓰는 게 장점이라는 부분도 있지만, 안드로이드에서는 안드로이드의 법을 따라...) Sparse의 의미는 "뜨문뜨문 떨어져있는"이다. 위키를 따르면, Map를 사용하는 이유는 put 를 넣고 get(key)를 통해 value를 가져오기 위함이다. 이 때 주로 key값에는 value.hashcode()를 사용하게 되며, (HashCode()는 Object의 Method로 int형..
Android 4.3 Notification Listener Service 예제
Android 4.3 Notification Listener Service 예제 4.3부터 생겨난 Notification Listener Service예제입니다. 간단하게 세팅화면 접근 및 LOG로 찍도록 만들어서 올립니다. 이전 버전까지는 Accessibility로 접근이 가능했으나, 4.3부터는 Notification Listener Service로 접근이 가능합니다.(다만. 접근성에서도 캐치가 안되는 부분(라인 이라던가)은 NLS에서도 캐치가 되지 않더군요.) 필요하신 분들은 사용하시기 바랍니다.