옛글/안드로이드 프로그래밍

    Android Library 'Textile Textview'

    This library (Textile textview) is open source.Link here. https://github.com/ShakeJ/Android-Textile-MarkUp-TextView This textview change markup string and display it. Textiletextview.setTextileText("markup-string"); very easy. 레드마인 등 마크업 언어를 텍스트뷰로 간단하게 변환후 표시하게 됩니다. (일부 버그가 있을 수 있습니다. 레드마인 문법에 최적화되습니다.) 데모 앱은 아래 URL을 클릭하시면 바로갈 수 있습니다.https://play.google.com/store/apps/details?id=com.shakej.texti..

    안드로이드 오픈소스 'Caffeine'

    'Caffeine'은 안드로이드를 개발하며 필요한 API 를 매우 간단하게 사용할 수 있도록 Class로 제공하는 오픈라이브러리 입니다. 마치 카페인처럼 필요한 이들에게는 없으면 서운한 그런 라이브러리가 되고자 하는 오픈소스입니다. 사용법은 아래 Github에 서술되어 있으며, 혹여나 사용하시는 분들 중 새로운 기능을 넣고자 하시는 분들은 pullrequest 환영합니다. https://github.com/ShakeJ/Android-Caffeine-library 'Caffeine'은 Convert, Date, Dialog, Display, File, Geo, Gesture, Image, Log, network, System 등 다양한 API 를 제공하며, BaseActivity 및 간단한 database..

    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"라는 글자가 나오게 됩니..

    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형..

    안드로이드 4.3 발표 '무엇이 바뀌었을까?'

    넥서스 7 2세대와 크롬캐스트의 공개와 함께 Android OS 4.3이 발표되었습니다. 코드명은 젤리빈으로 키라임파이 직전 버전인데, 아무래도 기존의 젤리빈을 좀 더 안정화 시킨 버전이란 의미에서 따로 코드명을 붙이지 않을 것으로 추측됩니다. (어쩌면 코드명이 너무 많아지고 있어, 그대로 가는것일지도?) 어쨌거나 이번 4.3 버전은 넥서스 7 2세대에 탑재가 될 것이라고 합니다. 현재 스마트폰들의 버전이 4.1.2가 대부분인데, 기존 젤리빈에서 안정된 느낌이 들기에 제조사에서 적극적으로 OS업데이트를 해줄지는 의문이네요. (넥서스 7 2의 한국출시가 1차 출시국가에 포함되었다고 하는데, 아주 조금만 기다렸다가 한국마켓에서 구매를 해봐야 할 것 같습니다:)) 4.3에서 바뀐점은 다음과 같습니다. 1. 사..

    [안드로이드] static을 자주 쓰면 안되는 이유

    코드를 짜다보면 뷰의 구조가 복잡해서 혹은, 다르게 뷰와 뷰 사이에서 무언가 함수를 실행시키기 위해서 static을 사용하는 경우가 있다. Static을 사용하는 보편적인 경우는 Constant 변수에 사용을 해서 메모리에 상주를 시켜놓고 따로 해당 클래스의 instance를 생성하지 않고도 여러 곳에서 공통적으로 사용하는 변수에 사용을 하게 된다. 이를테면, StringConst.java 란 파일에 public static final String PRODUCT_ID = "product_id";위와 같이 여러 Constant변수를 생성해서 사용할 때 많이 사용이 된다. 프로젝트를 진행하다가 뷰안에 여러개의 뷰가 들어가 있고, 이를테면 부모뷰 아래에 있는 다른 뷰에서 무언가 작업을 했을 때 부모뷰까지 영향..

    Eclipse Heap size Error등 에러를 막기 위한 메모리 설정

    윈도우나 리눅스의 경우 이클립스 폴더안에 eclipse.ini에 있는 값을 변경해 메모리양을 늘릴 수 있습니다:) 대부분 랩탑도 최근엔 메모리가 4기가가 넘어가는 경우가 많은데 너무나 턱없이 적은 양으로 잡혀 있어, 외부 앱까지 같이 빌드하는 경우에는 버벅거리다 죽는 경우도 종종... MAC OS에서는 찾을 수가 없는데, 터미널에서 Eclipse.app/Contents/MacOS/eclipse.ini 을 nano등 뭐든 에디터를 통해 수정을 하면 됩니다. -Xms512m -Xmx1024mXXMaxPermSize 1024M 위와 같이 내용을 수정하면 되며, 이상의 값을 하면 에러가 난다는 사람도 있는데, 시도는 해봐야 알 것 같습니다.