'안드로이드'에 해당되는 글 9건
- 2011/12/18 안드로이드 Lint 초기 경고 없애기
- 2011/12/17 안드로이드 개발환경 설정이 쉬워졌다
- 2011/09/09 Android 에서 AppWidget 을 개발할 때 유의점 (2)
- 2011/04/21 안드로이드 자바 소스(framework source) 다운받기 및 eclipse 에 연결하기 (4)
- 2011/04/05 처음 만들어본 안드로이드 프로그램 (4)
- 2011/04/04 AppWidget 관련 프로그래밍 중 process is bad 발생 (2)
- 2009/12/28 요즘 안드로이드를 조금씩 보고 있습니다. (2)
- 2009/11/01 구글 무료 네비게이션 프로그램 발표
- 2009/07/14 안드로이드를 PC 에서 사용해보기
안드로이드 개발툴의 최신 버젼(ADT 16버젼 - 2011년 12월)에는 Lint 라는 툴이 추가되었다. 설치 후, 화면에 아래와 같은 아이콘을 클릭하면, Lint 를 실행하여 잠재적으로 문제가 있는 부분을 알려주게 된다.
그런데, 웃긴건 안드로이드 기본 프로젝트를 생성해도 위와 같은 경고를 보여준다는 것이다. 위 내용을 읽어보면, drawable-xhdpi 라는 density 가 없다는 것인데, 요즘 고해상도 폰이 많이 나오면서 높은 해상도를 지원하라는 의미로 받아들이고, 일단 res 디렉토리 아래에 drawable-xhdpi 를 만들고, 임시로, drawable-hdpi 의 이미지 파일을 넣어보자. 그러면....
위와 같이 해상도 크기가 다르니 어쩌고 저쩌고 한다.... 에잇 그래서 대충 뒤져보니, http://developer.android.com/guide/topics/resources/providing-resources.html 의 중간쯤을 보면, ldpi, mdpi, hdpi, xhdpi 이런 부분을 보면 3:4:6:8 의 크기로 하라는 얘기가 있다. 즉, ldpi:mdpi:hdpi:xhdpi = 3:4:6:8 로 하라는 이야기이다.
기존의 우리가 새로 만든게 xhdpi 이므로, mdpi 에 있는 아이콘 크기의 2배로 하면 되겠다. 그래서 mdpi 의 크기를 보면 기본적으로 48x48 이므로, 우리는 96x96 크기의 아이콘을 만들어서 넣어주면 되겠다.
이제 Lint 를 다시 실행시켜보면 깔끔하게 하나의 경고도 없는 것을 볼 수 있다.
아마 ADT 최신 버젼이 나오면 알아서 xhdpi 용 아이콘을 넣어주지 않을까 싶지만, 임시로 이렇게 해서 깔끔하게 Lint 사용을 시작해보자~
그런데, 웃긴건 안드로이드 기본 프로젝트를 생성해도 위와 같은 경고를 보여준다는 것이다. 위 내용을 읽어보면, drawable-xhdpi 라는 density 가 없다는 것인데, 요즘 고해상도 폰이 많이 나오면서 높은 해상도를 지원하라는 의미로 받아들이고, 일단 res 디렉토리 아래에 drawable-xhdpi 를 만들고, 임시로, drawable-hdpi 의 이미지 파일을 넣어보자. 그러면....
위와 같이 해상도 크기가 다르니 어쩌고 저쩌고 한다.... 에잇 그래서 대충 뒤져보니, http://developer.android.com/guide/topics/resources/providing-resources.html 의 중간쯤을 보면, ldpi, mdpi, hdpi, xhdpi 이런 부분을 보면 3:4:6:8 의 크기로 하라는 얘기가 있다. 즉, ldpi:mdpi:hdpi:xhdpi = 3:4:6:8 로 하라는 이야기이다.
기존의 우리가 새로 만든게 xhdpi 이므로, mdpi 에 있는 아이콘 크기의 2배로 하면 되겠다. 그래서 mdpi 의 크기를 보면 기본적으로 48x48 이므로, 우리는 96x96 크기의 아이콘을 만들어서 넣어주면 되겠다.
이제 Lint 를 다시 실행시켜보면 깔끔하게 하나의 경고도 없는 것을 볼 수 있다.
아마 ADT 최신 버젼이 나오면 알아서 xhdpi 용 아이콘을 넣어주지 않을까 싶지만, 임시로 이렇게 해서 깔끔하게 Lint 사용을 시작해보자~
어느샌가(ADT r14 버젼 이 후) 이제 eclipse 의 플러그인인 ADT(Android Development Tool)만 설치하면 아래 화면과 같이 최신 SDK 를 쉽게 설치할 수 있게 되었다.
기존에는 SDK 를 직접 받아서 설치하고, ADT 를 설치해야했지만, 이제 ADT 만 설치하면 ADT 를 통해서 쉽게 SDK 도 설치가 가능해졌다. ( http://tools.android.com/recent/welcomewizard ) 참고.
이제 초보 안드로이드 개발자들은 Java -> eclipse -> ADT 만 기억하면 된다~
기존에는 SDK 를 직접 받아서 설치하고, ADT 를 설치해야했지만, 이제 ADT 만 설치하면 ADT 를 통해서 쉽게 SDK 도 설치가 가능해졌다. ( http://tools.android.com/recent/welcomewizard ) 참고.
이제 초보 안드로이드 개발자들은 Java -> eclipse -> ADT 만 기억하면 된다~
AppWidget 은 http://developer.android.com/guide/topics/appwidgets/index.html 에 있는 것처럼 꽤 쉽게 개발을 시작할 수 있다. 하지만, 직접 개발하다보면 꽤 개발이 힘든데, 바로 UI 를 설정하지 못하고, RemoteViews 를 써야한다는 점과 몇몇 UI component 는 쓸 수 없다는 점에서 그렇다.
그리고 개발 중에 계속 뭔가 이상하게 계속 broadcast receiver 가 제대로 동작하지 않아서 좀 고생했는데, 원인은 의외의 곳에 있었다. 바로 AppWidget 에서 처음에 한번 호출되는 onEnabled 함수가 제대로 호출되지 않는 것이다(이 함수 안에서 boradcast receiver 를 등록하고 있었음). 근데 이게 늘 호출안되었으면 바로 알았을건데, 개발 중에, re-install, 즉, 이미 내가 만든 AppWidget 이 떠있을 때 다시 설치(eclipse 에서는 그냥 Run As)를 하면 onEnabled 는 안 불린다는 것이다... -_-;
이미 설정되어 있는 AppWidget 을 길게 눌러서 휴지통에 버리고, 다시 AppWidget 을 Home Screen 에 넣어줘야 onEnabled 가 제대로 불린다. re-install 시에 이미 놓여진 AppWidget 을 자동으로 휴지통에 버려줬으면 당연히 다시 넣으면서 onEnabled 가 제대로 불렸을 건데 쩝... 자동으로 화면이 잘 업데이트되길래 제대로 로그 확인을 안해봐서 좀 헤맨듯 ㅠㅜ
결론 : AppWidget 개발시에는 Run As 후, appwidget 을 휴지통에 넣었다가 다시 설정해줘야 onEnabled 가 제대로 호출된다.
그리고 개발 중에 계속 뭔가 이상하게 계속 broadcast receiver 가 제대로 동작하지 않아서 좀 고생했는데, 원인은 의외의 곳에 있었다. 바로 AppWidget 에서 처음에 한번 호출되는 onEnabled 함수가 제대로 호출되지 않는 것이다(이 함수 안에서 boradcast receiver 를 등록하고 있었음). 근데 이게 늘 호출안되었으면 바로 알았을건데, 개발 중에, re-install, 즉, 이미 내가 만든 AppWidget 이 떠있을 때 다시 설치(eclipse 에서는 그냥 Run As)를 하면 onEnabled 는 안 불린다는 것이다... -_-;
이미 설정되어 있는 AppWidget 을 길게 눌러서 휴지통에 버리고, 다시 AppWidget 을 Home Screen 에 넣어줘야 onEnabled 가 제대로 불린다. re-install 시에 이미 놓여진 AppWidget 을 자동으로 휴지통에 버려줬으면 당연히 다시 넣으면서 onEnabled 가 제대로 불렸을 건데 쩝... 자동으로 화면이 잘 업데이트되길래 제대로 로그 확인을 안해봐서 좀 헤맨듯 ㅠㅜ
결론 : AppWidget 개발시에는 Run As 후, appwidget 을 휴지통에 넣었다가 다시 설정해줘야 onEnabled 가 제대로 호출된다.
http://android.git.kernel.org/ 에 안드로이드의 소스가 있는 것은 개발을 시작하신 많은 분들이 아는 내용이다. 하지만 여기서 자바 소스(framework)만 통째로 다운로드는 받는 것을 의외로 모르는 분들이 많아서 적어본다.
위의 사이트에 접속하면, 당장 아래에 좌~~악 git 목록들이 나열되는데, 우리가 안드로이드 App 을 공부하면서 필요한 소스(framework 부분)는 platform/frameworks/base.git 에 있다고 생각하면 된다. 그래서 아래와 같이 라인의 제일 오른쪽의 tree 를 클릭하자.
아래와 같이 최신 소스를 볼 수 있고, 해당 화면에서 snapshot 을 누르면 해당 모듈 관련 최신 소스를 얻을 수 있다.
참고로 위의 방법은 '최신 소스' 를 받는 것이다. 정확한 해당 버젼을 다운받으려면, 처음 android.git.kernel.org 에서 tree 를 클릭하지 않고, platform/frameworks/base.git 를 클릭하자.
그리고, tag 부분에서 원하는 버젼을 선택하자. tags 는 쉽게 생각하면 해당 버젼을 릴리즈할 때의 소스를 말하는 것이다. 즉, 진저 브레드 릴리즈 될 때의 소스를 얻고 싶으면, 2.3.3 tags 소스를 받으면 된다.
이제 이 버젼의 소스에 접근하기 위해 tree 를 선택하자.
다시 펼쳐지는 소스 화면에서 snapshot 을 선택해서 파일을 다운받자.
이제 소스를 다운 받았으니 안드로이드 소스를 연결해보자. 먼저 다운받은 소스의 압축을 풀자.(압축풀때는 7zip 을 권장한다) 압축을 풀고 난 후 아래와 같은 위치에 해당 소스를 넣어두자.
즉, 다운받은 프레임워크가 설치된 디렉토리(그림에서는 /home/zelon/Programs/android-sdk-linux_x86/platforms/android-10) 아래에 sources 라는 디렉토리를 만들고, 그 아래에 frameworks, 그 아래에 api 디렉토리가 오는 구조로 위치시킨다.
Android source 를 보기 위해, Activity 등의 안드로이드가 제공해주는 클래스 이름에 대고 오른 클릭한 후 Open Declaration 을 선택한다.
만약 위와 같은 디렉토리 구조로도 아래처럼 창이 뜨면, 소스를 찾을 수 없기 때문인데 아래 그림의 Attach Source 버튼을 클릭하자.
이제 아래와 같은 대화상자에서 External Folder 를 선택하고, 아까 압축을 푼 폴더를 선택해주면 된다.
이제 마음껏 안드로이드 프레임워크 소스를 Open Declaration 기능을 통해 확인하도록 하자. :)
드디어, hello world 를 제외하고 왠만큼 동작하는 안드로이드 프로그램을 완성했다. 역시 직접 폰을 가지고 만지면서 만들어봐야 하는 것 같다 ㅋ
만들어진 코드를 보면 꽤나 짧지만 과정이 아직은 낯설고, xml 컴파일 에러와 런타임 에러가 좀 힘든듯 -_-; 그래도 소스가 공개되어 있어서, 그 코드를 찾아보는게 꽤 재미있었고, 아무래도 내가 쓸 프로그램이니까 왠지 모를 뿌듯함이 좋다~~~
아직 소소한(......) 버그가 있긴 하지만, 조금만 더 손 보면 될 거 같다....라고 믿는 중 ㅋ
이거 만들면서 경험해본 것들은,
- Content Resolver
- Content Observer
- 외부의 activity 시작시키기
- AppWidget 만들기
- Android Test Project
- android open source 찾기 및 참조하기
이정도 되겠다. 잔버그를 잡으면 소스 정리해서 github 에 한번 올려봐야겠다 :)
ps : 안드로이드 app 개발환경이 무척이나 괜찮다는 느낌이 든다. 오랜만에 최신 IDE(!!)를 써본듯;;
ps : Calendar 는 Contact 와 다르게 공식적인 content provider uri 가 없다 -_-; 그래서 버젼마다 다를 수 있고, 현재 공개된 것은 리버스-엔지니어한 것들... 그래서 기계나 회사마나 다를 수 있단다... 쩝...
안드로이드 프로그래밍 중 AppWidget 관련 프로그래밍을 하다가, 치명적인 오류가 한번 발생하면, 이상하게도 process is bad 라는 오류를 내면서 제대로 broadcast 를 받지 못하는 상황이 생긴다. 내 경우에는 unregisterContentObserver() 를 하다가 null pointer exception 으로 죽은 후에 이 상황이 계속 발생하는데, 검색해보니 다음과 같은 방법 밖에 해결책이 없는 듯 하다 -_-;
- 개발중인 해당 프로그램 제거
- 폰 리부팅
음... 일단 이렇게 하면 잘되긴 하는데... 추후 세부 내용을 알게되면 업데이트 해야 할 듯...
- 개발중인 해당 프로그램 제거
- 폰 리부팅
음... 일단 이렇게 하면 잘되긴 하는데... 추후 세부 내용을 알게되면 업데이트 해야 할 듯...
원래 모바일 쪽에 관심이 있었고, 현재 몸담고 있는 쪽이 모바일이라 많은 관심을 가지고만 있다가 슬슬 책을 보고, 에뮬레이터 돌려보고, hello world 찍어보고 있습니다.
내년에 얼른 국내에 안드로이드 폰이 빨리 나왔으면 좋겠네요. 안드로이드 마켓에서 큰 수익은 아니지만 생각 중인 어플도 있고, 아무래도 어디서나 웹 접속이라는 장점을 체험하고 싶어서...
아이폰은 직장 특성상 안되고, 윈도우 모바일은 왠지 좀 안 땡기고 안드로이드 폰만 기다리고 있습니다. 폰을 손에 쥐는 순간 다시 뭔가 열정을 불살라 볼 생각입니다.
제일 땡기는 건 무료 네비와 pop.wimy.com 가 안드로이드 폰에서 되는 것 ㅋㅋ
안드로이드 관련 작업 중인 스프링 노트 : http://zelon.springnote.com/pages/3851601
내년에 얼른 국내에 안드로이드 폰이 빨리 나왔으면 좋겠네요. 안드로이드 마켓에서 큰 수익은 아니지만 생각 중인 어플도 있고, 아무래도 어디서나 웹 접속이라는 장점을 체험하고 싶어서...
아이폰은 직장 특성상 안되고, 윈도우 모바일은 왠지 좀 안 땡기고 안드로이드 폰만 기다리고 있습니다. 폰을 손에 쥐는 순간 다시 뭔가 열정을 불살라 볼 생각입니다.
제일 땡기는 건 무료 네비와 pop.wimy.com 가 안드로이드 폰에서 되는 것 ㅋㅋ
안드로이드 관련 작업 중인 스프링 노트 : http://zelon.springnote.com/pages/3851601
http://googleblog.blogspot.com/2009/10/announcing-google-maps-navigation-for.html (영문)
http://www.zdnet.co.kr/Contents/2009/10/29/zdnet20091029171151.htm (한글)
구글이 오랜만에 사용자를 위한 사고를 쳤습니다. 무려 '무료 네비게이션 프로그램' 입니다. 안드로이드 2.0 에서 동작한다고 합니다.
구글이 안드로이드를 많이 밀고 있긴 했지만, 이 것만큼 파급력이 큰 것도 없으리라 생각합니다. 저도 결혼하면서 네비게이션을 살까 생각을 했었는데, 이 기사를 보고, 무조건 국내에서 안드로이드폰이 나오기만을 기다려야겠습니다.
당연히 관련 업계는 비상이 걸렸는데, 어떻게 시장이 변화될지 궁금합니다.
http://www.zdnet.co.kr/Contents/2009/10/29/zdnet20091029171151.htm (한글)
구글이 오랜만에 사용자를 위한 사고를 쳤습니다. 무려 '무료 네비게이션 프로그램' 입니다. 안드로이드 2.0 에서 동작한다고 합니다.
구글이 안드로이드를 많이 밀고 있긴 했지만, 이 것만큼 파급력이 큰 것도 없으리라 생각합니다. 저도 결혼하면서 네비게이션을 살까 생각을 했었는데, 이 기사를 보고, 무조건 국내에서 안드로이드폰이 나오기만을 기다려야겠습니다.
당연히 관련 업계는 비상이 걸렸는데, 어떻게 시장이 변화될지 궁금합니다.
Trackback : http://blog.wimy.com/trackback/277
-
Subject 무료 네비게이션 어플 NaviComputer 0.92
2010/05/09 02:34
navicomputer v0[1].92_setup.exe 무료 오프라인 네비게이션 프로그램입니다. 오픈맵이나 구글맵을 다운받아 사용하는 일종의 맵피같은 프로그램입니다 슬림형 데이타 요금제나 쑈옴2 사용하시는 분들 또한 외국에 자주 나가시는 분들에게 최고의 네비게이션 프로그램일듯하군요. 맵 다운로드는 피시를 이용하거나 와이파이 접속하시고 폰으로 직접 다운받으셔도 됩니다. 기본적으로 맵관리를 위해 피시에는 맵관리 프로그램 폰에는 네비게이션 프로그램이 설..
구글의 안드로이드를 PC(일단 가상 머신)에서 사용해볼 수 있다. 기존에도 에뮬레이터 형식으로 PC 에서 사용하는 것은 가능했지만, PC 에서 사용가능하다는 것은 바로 '넷북' 에서 바로 OS 처럼 사용할 수 있다는 것에 대한 시작이다.
http://code.google.com/p/live-android/downloads/list 에 보면 torrent 파일이 있는데 이것을 통해서 iso 파일을 다운 받은 후, virtualbox 등의 가상머신을 이용해서 바로 부팅해보자. 조만간 접하게 될 안드로이드 for netbook 을 미리 만나는 것이다.




Prev
Rss Feed