'자료 iN /IT & 개발 '에 해당되는 글 49건

  1. 안드로이드 개발환경 설치, 설정하는 방법 총정리 - 이클립스, Android SDK, 에뮬레이터(Virturl Device), ADT Plugin for Eclipse 14
  2. 페이퍼 프로토타입(Paper Prototype) & Balsamiq Mockups,모바일 앱 기획단계에서 아이디어를 종이에 손이나 프로그램으로 그려서 검증하는 방식
  3. 이클립스(Eclipse)에 구글웹엔진(Google App Engine, GAE), GWT(google web toolket) 설치시 오류가 나는 경우의 해결방법
  4. 안드로이드 SQLite select count(*) 을 getCount()로 가져올때의 커서(Cursor)의 개념 2
  5. 안드로이드 The Day Before, 카운트다운, 디데이 일자를 보여주는 위젯 앱
  6. 안드로이드 Listview의 imageView 멀티쓰레드 적용시 다운로드중 배경이미지 적용하기
  7. 이클립스(Eclipse) 소스코드, XML 자동정리기능 단축키, Ctrl + Shift + F 2

안드로이드 개발환경 설치, 설정하는 방법 총정리 - 이클립스, Android SDK, 에뮬레이터(Virturl Device), ADT Plugin for Eclipse

 
반응형
안드로이드는 작년에 처음으로 잠깐 개발을 해보았는데, 한 6개월정도 손을 떼고 있다가, 간만에 새로운 PC에 설치를 해보려고하니 헷갈리더군요...^^

정리도 할겸 포스팅을 해보는데, 6개월전하고 설치방법이 약간은 달라진듯 합니다.
모토롤라와의 합병이후에 약간 달라지고, 에뮬쪽도 기종마다 많이 늘어난듯 하네요.

기존에 개발을 하시던 분들이 설치하는 가장 편리한 방법은 이클립스와 안드로이드 개발키트(sdk)는 기존것을 복사해서 사용하시고, 자바 런타임만 다시 설치하시면 되는데, 여기서는 처음부터 설치하는 방법입니다.

안드로이드 프로그래밍을 처음하시는 분이나, 에뮬레이터를 이용해서 안드로이드 OS를 사용하시는 분들중에서 잘 모르시면 한번 보시면 될듯 합니다.

설치전 준비, 유의사항
1. http://developer.motorola.com/  위 사이트에 가입한다.
예전에는 이런것이 없었는데, 에뮬레이터관련 자료를 받으려면 필요하다고 나오네요.

2. windows 로그인 계정명이 한글인 경우, 영문으로 새로 계정을 만든다.
뭐 한글계정인 경우도 편법으로 가능하기는 하다는데, 문제가 좀 있으니, 가급적 영문계정으로 사용하시는것이 좋을듯합니다.

개발환경
1. java
2. 이클립스
3. ADT Plugin for Eclipse
4. 안드로이드sdk
5. 안드로이드 에뮬 or 안드로이드 스마트폰

대략 위의 5가지를 설치하면 되는데, 자바는 소스코드를 class파일로 변환하거나, 실행을 하도록 만드는 컴파일러 이고, 이클립스는 개발환경을 쉽게 만들어주는 Tool이고, 안드로이드 sdk는 안드로이드 개발을 위한 인터페이스를 제공해주고, 에뮬은 만든 앱을 테스트로 돌려보는것이며, ADT Plugin for Eclipse는 이클립스와 안드로이드 sdk를 연결시켜주는것입니다.

첫번째는 오라클사이트에 가서 java se jdk를 다운받으셔야 합니다.
컴파일러로 자바로 코딩한것을 class 파일로 만들고, 실행이 가능하도록 하는것입니다.

자바 다운로드 사이트


위 사이트에서 jdk를 클릭하시면 됩니다.


그리고나서 자신의 윈도우에 맞는 x86이나 x64중에 하나를 다운받아서 설치하시면 됩니다.
개발자분이라면 api 문서(jdk 6 doc)도 받아놓으시면 좋습니다.


뭐 설치방법은 특별한것없이 쭉 진행을 하시면 됩니다.


다음은 이클립스를 다운로드 받으면 됩니다.

안드로이드를 개발하는데 반드시 있어야 하는것은 아니지만, 메모장에서 코딩을 하기에는 좀 무리인데, 개발환경을 정말 멋지게 갖추고 있는 프로그램입니다.
http://www.eclipse.org/downloads/
위 사이트에 들어가서 Eclipse IDE for java EE Developers중에서 자신에게 맞는 32bit나 64비트를 다운받으시면 됩니다.

다운받은후에는 zip 압축을 풀어주셔야 하는데, 설치형 파일이 아니고, 그냥 압축풀고 실행을 하시면 됩니다.
뭐 programs files에 풀거나 c:\ , c:\dev 등 원하는곳에 압축을 풀어주세요~


다음은 안드로이드 sdk를 다운로드 받으셔야 합니다.

다운로드 사이트 - http://developer.android.com/sdk/index.html
위 사이트에 가서 android-sdk_r16-windows.zip 위 파일을 받아서 압축을 풀거나, installer_r16-windows.exe 위 파일을 받아서 설치하시면 됩니다.
아래에 플러그인을 설치를 하다보면 sdk 최신버전을 다운받겠냐고 물어보던데, 그렇게 진행을 하셔도 될듯합니다.


압축을 풀면 android-sdk-windows 라는 폴더가 보이는데, 적절한 디렉토리에 옮겨놓이시면 됩니다.


그리고나서 이클립스를 실행하세요~ eclipse indigo라는 로고화면입니다.


처음 실행을 하면 위와 같은 화면이 뜹니다.
workspace launcher이라고 설정, 개발환경, 소스 등을 저장할 디렉토리입니다.
워크스페이스는 여러곳에 만들어놓고, 이후에 경로를 바꿀수도 있는데,
간혹 백업도 받아두시는것이 좋으니, 적절한 디렉토리로 바꾸어놓으세요~

Use this as the default and do not ask again 은 시작할때마다 물어볼지의 여부입니다.


드디어 나온 시작화면... 뭐 이건 닫아버리시면 됩니다.

이클립스(Eclipse), 워크스페이스 변경과 Import로 복사한 소스코드 Workspace Project Explorer에 추가하는 방법
이클립스(Eclipse), Usage Data Upload Collector (UDC) 사용자 환경개선 프로그램
이클립스(Eclipse) 자체의 로컬 소스 히스토리 관리 Compare with local Revision
안드로이드(Android), resources.ap_ does not exist Error 오류 해결방법
이클립스(Eclipse) 소스코드, XML 자동정리기능 단축키, Ctrl + Shift + F
애플 맥북 프로(Apple Macbook Pro) 일주일 사용기, 스마트폰 개발용으로 좋은 멋진 노트북
네이티브 앱(Native App), 모바일 웹(Mobile Web), 하이브리드앱(Hybrid App), 스마트폰 프로그램 개발 방법의 차이점 비교
이클립스(Eclipse)에 구글웹엔진(Google App Engine, GAE), GWT(google web toolket) 설치시 오류가 나는 경우의 해결방법
한국형 통합 엡스토어 K-Apps(KWAC)와 하이브리드 모바일앱 개발의 폰갭(PhoneGap), 앱스프레소(Appspresso)


드디어 나온 이클립스 화면입니다.

이클립스는 안드로이드 개발에 아주 유용한 툴인데, 그렇다고 안드로이드 개발 전용은 아니고, java, jsp, html 등 아주 다양한 언어를 지원을 합니다.
고로 안드로이드를 개발하기 위해서는 아까 설치한 안드로이드 안드로이드 sdk와 이클립스를 연결해주는 무엇인가가 필요한데, 그것이 ADT Plugin for Eclipse입니다.

설치방법은 메뉴 -> help -> Install new software... 를 선택

sdk plugin 설치방법 사이트 - http://developer.android.com/sdk/eclipse-adt.html

화면에서 우측상단의 add를 클릭하면 위처럼 뜨는데, name은 적당히 넣어주시고, Location에
위 주소를 복사해서 넣어주시면 됩니다.


그리고 Pending... 이라고 뜬후에 잠시 기다리면 위같은 화면이뜹니다.
android ddms, development Tools, Hierarchy viewer, TraceView 등이 뜨는데 select all을 클릭하고 Next를 눌러주세요~


I Accept the terms of the license agreements를 선택하고 Finish~


중간에 오류가 몇번 날때도 있는데, 다시금 install software화면에서 좀전에 입력했던것을 add가 아니라 선택창에서 선택해서 다시 설치를 하시고, Restart Now를 눌러서 이클립스를 재가동시키면 됩니다.


그러면 이클립스의 새로운 안드로이드 아이콘이 몇개 생겨납니다.
화살표가 있는것은 android sdk manager, 우측의 스마트폰모양은 android virtual device manager입니다.
sdk와 adt 이클립스 플러그인을 설치했으니 이제는 연결만 시켜주시면 됩니다.
android sdk manager를 누르면 새로 sdk를 설치할것인지, 기존 sdk를 찾을것인지를 물어봅니다


저는 좀전에 다운로드를 받아 놓았으니 use existing sdks를 눌러 경로를 설정해줍니다.


만약 기존의 컴퓨터에서 이클립스와 sdk를 복사하신분이라면 menu -> window -> preferences를 클릭하시면 Android항목이 나오는데, 거기에서 sdk location을 설정해주시면 됩니다.

여기까지만 설정을 해도 개발을 하는데는 문제가 없지만, 개발한것을 스마트폰으로 직접 연결해서 테스트해보는것이 아니라, 가상 디바이스를 설치하시면 더 편리하겠지요~


android sdk manager icon을 클릭하면 위와 같은 화면이 뜹니다.
1.5부터 4.0.3까지 프로요, 아이스크림 샌드위치 등 다양한 종류가 존재합니다.
이중에서 자신이 개발을 하려거나, 테스트를 하려는 버전을 다운로드 받으시면 됩니다.
api 10으로 개발을 하면, 2.2이하의 하위 버전에서는 실행이 안되니 참고하세요


이건 뉴스에서 나온 최근의 스마트폰들의 안드로이드 버전 분포도입니다 .
수많은 사용자들을 대상으로 하려면 2.1버전으로 개발을 하는것이 좋을것이고, 최신기술이 적용된 api를 적용하시려면 2.3.3 버전으로 개발을 하시는것도 하나의 방법일듯 합니다.

암튼 위의 선택 화면에서 필요한 버전들을 다운로드 받아서 설치를 하시면 됩니다.


근데 이게 시간이 상당히 걸립니다.
직장인이라면 점심시간이나 퇴근할때 걸어두고 가시면 될듯한데, 학교나 학원이라면 모든 사람이 다운받으면 더 느려질뿐이나 한사람이 다운로드받고, 나머지 사람들은 복사를 하면 됩니다.

전부 설치한 사람의 android-sdk-windows 디렉토리를 통채로 압축을 해서 받아도 되고, platforms에서 sdk만 받거나, add-ons, samples 등만 복사를 하셔도 됩니다.

샘플같은경우에는 안드로이드의 다양한 기능을 소개하는 앱인데, 개발자라면 자신의 스마트폰에 최신 samples app을 집어넣고 다니시면서 하나씩 해보면서 이런저런 기능들이 있다는것을 알아두시면 좋겠지요?


예전에는 이런 메세지가 없었는데, 중간에 이런 화면이 뜹니다.
motorola add-ons를 다운받기 이한 Site Authentication 화면인데, motorola와 합병한후에 생긴듯... 뭐 차후에 필요할수도 있으니 가입해서 인증을 받으시면 됩니다.

http://developer.motorola.com

시간도 오래걸리지만, 걸어놓고 나갔는데, 이런 메세지가 뜨면 정말 미치고 환장하지요...-_-;;
디렉토리에 접근하수 없다는 오류가 나기도 하는데, 그냥 Yes를 몇번누르다가 계속 문제가 생기면 NO를 누르고, 다시 설치를 해보시면 됩니다...-_-;;

암튼 이렇게하면 에뮬레이터까지 설치가 완료끝입니다!
그럼 에뮬이 제대로 작동을 하는지 확인을 해보겠습니다.
android virtual device manager 아이콘을 클릭하면 빈화면이 나오는데, 이제 New를 눌러 추가를 하시면 됩니다.

이름은 os 버전을 넣어두시면 테스트할때 좋겠고,  Target는 아까 받은 에뮬중에서 어떤것을 사용할지 확인하는것입니다.
sd card를 256정도로 넣어주시고, snapshot은 필요한분만 클릭하시고, hardware에서 new를 눌러서 sd card support 정도만 넣어주시면 됩니다.
그리고 create avd를 클릭하시면 됩니다.


이제 만들어 놓은것을 클릭해서 선택하고, Start를 누르시면 됩니다.
저는 Panic: Could not open 이라는 메세지가 뜨는데, 위에서 create avd를 하면 자신의 문서디렉토리에 .andoid 라는 디텍토리 하위에 avd 폴더와 sdcard.img, userdata.img, config.ini 등이 생기는데, 불러올때는 default 문서디렉토리를 검색하는 버그가 있는듯 합니다.
저는 내문서를 d:\my doc로 옮겼는데, 거기있는 .android 디렉토리를 위 사진의 기본 디렉토리로 복사해 주면 됩니다.


그럼 이제는 에뮬도 제대로 작동을 합니다~
기본적으로 영문으로 되어 있는데, custom locale에 가서 ko_KR Korean을 설정해주시고, setup에서 시간만 한국시간으로 바꾸어주시면 될듯합니다.

이클립스(Eclipse)에서 안드로이드 에뮬레이터(AVD) 실행하는 방법
이클립스 ADT 에뮬로 사용해본 안드로이드 OS 4.0 아이스크림 샌드위치

마지막으로 자신의 스마트폰도 연결을 해보면 되는데, 제조사 홈페이지에 가서 드라이버 파일을 다운로드 받아서 설치를 해야 합니다.


정상적으로 드라이버가 설치되고, 스마트폰과 연결하고, 이클립스에서 ddms(우측상단의 java EE의 맨왼쪽을 눌러 other에서 아이콘을 추가해두시면 추후에 디버깅하기에도 좋습니다)에 들어가면 제 스마트폰인 HTC와 좀전에 실행한 emulator가 online으로 나옵니다.

이제 코딩해서 실행을해서 에뮬이나, 스마트폰에서 돌려보시면 됩니다.

몇줄안되겠지 했는데, 꽤 길어졌네요~
아무쪼록 좋은 앱들 많이 개발해서 대박나시길 바라겠습니다!


반응형

페이퍼 프로토타입(Paper Prototype) & Balsamiq Mockups,모바일 앱 기획단계에서 아이디어를 종이에 손이나 프로그램으로 그려서 검증하는 방식

 
반응형

페이퍼 프로토타입이란 제품을 기획 단계에서 아이디어를 종이에 손으로 그려 검증 하는 방식을 말하는데, 무턱대고 코딩을 하는것도 하나의 방법일수 있지만, 수정, 변경을 하는데, 시간이 더 걸리고, 한번 이거다라고 생각을 해버리면 다른 유연한 생각을 하는데 방해가 되기 때문에 처음에 이런식으로 그려보면 좋다.

특히나 개인개발자나 기획자가 없는 작은 규모의 팀이라면 기획서없이 무작정 개발에 들어가기 쉬운데, 개발이전에 한번 그려보면서 전체적인 윤곽을 잡고, 자신이 만들고자 하는 프로그램의 범위를 정해놓는것도 하나의 좋은 방법이 아닐까 싶다.

머리에만 생각해두고, 프로그래밍 개발을 하다가보면 너무 많은 생각에 진도가 더뎌지고, 산출물도 초기에 생각했던것과는 엉뚱하게 흐를수도 있다는...


http://www.balsamiq.com/
암튼 이러한 방식으로 종이에 그리는 방식도 있고, Balsamiq studio의 Mockups 프로그램을 이용해서 화면상에 그려보는 방식도 있는데, 데모 체험판도 있기는 하지만, 유료제품...
기존에 4GL인 비주얼베이직, 파워빌더, 델파이 등을 다루어본 사람이라면 직접 간단하게 만들어 보는것도 하나의 방법일듯하다.

Prototyping 프로토타이핑
국내도서>컴퓨터/인터넷
저자 : 타드 자키 워플(Todd Zaki Warfel) / 이예나,이재명역
출판 : 인사이트 2011.05.13
상세보기

서점에가보면 UI, UX, 기획 등에 대한 책은 많지만, 프로토타이핑에 대한 책은 위 책을 빼고는 없는듯... 아래는 youtube에 올라온 페이퍼 프로토타입에 대한 동영상



http://www.alistapart.com/articles/paperprototyping

위 사이트도 한번 보면 도움이 될듯...

http://www.mobiledesignpatterngallery.com/mobile-patterns.php
위 사이트는 페이퍼용에 참고할만한 다양한 샘플들이 많이 있는데, 꽤 유용한듯...
반응형

이클립스(Eclipse)에 구글웹엔진(Google App Engine, GAE), GWT(google web toolket) 설치시 오류가 나는 경우의 해결방법

 
반응형

하이브리드 앱을 하나 만들어 보려고하는데, 웹호스팅이나 서버구축때문에 구글웹엔진을 한번 사용해서 테스트를 해보려고 이클립스에서 java 플러그인을 다운로드 받음...

http://code.google.com/intl/ko-KR/eclipse/docs/download.html

위 페이지에 나온 설명대로 하면 되는데, 검색을 하다가 예제가 있는 블로그를 보고 따라했더니 이상한 오류가 나서 설치가 되다가 말았다는...


sdk 등 설치해야할 파일들이 이미 설치가 되있다는 메세지가 뜨는데, 인식은 안된다...


new web application project를 눌러서 프로젝트를 만들려고 하면 Google sdks부분을 설정하라고 나온다.


어떻게해야 하나 싶다가 이클립스 메뉴의 Help의 Eclipse marketplace 를 클릭해서 google라고 검색을 했더니 Google plugin for eclipse라는것이 있어서 이것을 인스톨....


구글웹엔진, 이클립스 플러그인, 웹툴킷 모두 문제없이 설치가 된다.


설치후에 메뉴 -> check for updates 를 한번 해주면 최신버전으로 다시금 설치가...


인터넷에 있는 예제나 도서관에서 빌려온 책들은 3개의 아이콘이 생긴다는데, 최신버전은 이러한 식으로 하나의 아이콘안에 그룹으로 잡혀있다.

구글 앱 엔진 활용하기 - GAE로 시작하는 클라우드 컴퓨팅
국내도서>컴퓨터/인터넷
저자 : 찰스 세브란스(Charles Severance) / Software in Life역
출판 : 지앤선(지&선) 2011.01.28
상세보기
구글 앱 엔진 시작하기 Google App Engine
국내도서>컴퓨터/인터넷
저자 : 박상엽
출판 : 인사이트 2010.02.07
상세보기


프로젝트 생성을 누르니, 이제는 GWT 2.4.0 App Engine 1.6.0으로 제대로 인식하고,
테스트로 해본 Hello world도 잘된다.


설정에도 제대로 plugin sdk가 설치...

해결은 됬는데, 가만히보니까...
내가 사용하는 인디가고 아닌, 다른 버전으로 한듯...-_-;;

Eclipse 3.7 (Indigo)

http://dl.google.com/eclipse/plugin/3.7

Eclipse 3.6 (Helios)

http://dl.google.com/eclipse/plugin/3.6

Eclipse 3.5 (Galileo)

http://dl.google.com/eclipse/plugin/3.5

뭐 별것은 아니지만, 비슷한 문제로 설치가 안되는 경우에는 이클립스 마켓플레이스를 이용해서 다시 설치를 하면 되니 참고하시면 좋을듯...

이클립스(Eclipse), 워크스페이스 변경과 Import로 복사한 소스코드 Workspace Project Explorer에 추가하는 방법
이클립스(Eclipse)에서 안드로이드 에뮬레이터(AVD) 실행하는 방법
이클립스(Eclipse), Usage Data Upload Collector (UDC) 사용자 환경개선 프로그램
이클립스(Eclipse) 자체의 로컬 소스 히스토리 관리 Compare with local Revision
이클립스(Eclipse) 소스코드, XML 자동정리기능 단축키, Ctrl + Shift + F
이클립스 ADT 에뮬로 사용해본 안드로이드 OS 4.0 아이스크림 샌드위치
네이티브 앱(Native App), 모바일 웹(Mobile Web), 하이브리드앱(Hybrid App), 스마트폰 프로그램 개발 방법의 차이점 비교
반응형

안드로이드 SQLite select count(*) 을 getCount()로 가져올때의 커서(Cursor)의 개념

 
반응형
sql을 접한지도 꽤 오래도있는데,
android 를 하면서 sqlite를 오늘 처음으로 사용을 해보면서 삽질을...

즐겨찾기 기능을 구현하는데, 대학교때 헤메던것을 지금 다시 헤매이고 있다...-_-;;

대학교 4학년때 처음 sql을 하다가 커서가 뭔지 처음에는 좀 헷갈렸는데,
일반적으로 sql문으로 select 를 해서 값이 없거나, 값이 하나만 나온다면 커서가 필요없지만,
여러값이 넘어올때는 커서에 자료를 담아두고 한건씩 처리를 하는 방식

select 이름 from 직원테이블 where 주민번호 = '11111';

이런식이라면 보통 없거나, 한건만 넘어온다.

select 이름 from 직원테이블 where 부서 = '총무과'

이런 경우라면 없거나, 한건이 있거나, 여러건이 있을수도 있으므로, 당연히 커서로 처리를 해주어야 한다.

mDatabase = openOrCreateDatabase("culture.db",
    SQLiteDatabase.CREATE_IF_NECESSARY, null);
mDatabase.setLocale(Locale.getDefault());
mDatabase.setLockingEnabled(true);
mDatabase.setVersion(3);

Cursor c = mDatabase.rawQuery("select count(*) from culture "
    + "where id=?;", new String[] { cultCode });
System.out.println(cultCode + "즐겨찾기 카운터 :" + c.getCount());

if (c.getCount() == 1) {
    favBtn.setChecked(true);
}
else {
    favBtn.setChecked(false);
}
mDatabase.close();

위의 코드를 가지고 한참을 얼빵하게 헤맸다는....-_-;;

count(*) 이라는것을 쓰면 해당건이 몇건인지를 리턴해준다.
그러므로 select에서 count를 사용하면 c.getCount() 는 언제나 1이 나올수 밖에 없다는...-_-;;

c.getCount() 로 해당 자료가 있는지 없는지를 제대로 알려면 count(*), count(칼럼명) 이 아닌,
select * from 으로 교체를 해야 하거나,
넘겨받은 커서의 데이터가 0인지, 1인지를 판별해야 한다는 아주 기본적인 이야기...-_-;;


파워빌더(powerbuilder) 같은  4gl 개발툴만 사용하다가 이렇게 날로 코딩을 하면서

좀 생소한 화면에 엉뚱한것을 가지고 헤맨듯...-_-;;
반응형

안드로이드 The Day Before, 카운트다운, 디데이 일자를 보여주는 위젯 앱

 
반응형

프로젝트나 기념일 등의 d-day 기능을 보여주는 간편하지만 깔끔한 안드로이드용 위젯입니다.


앱 프로그램이 아니라, 위젯이기때문에 바탕 홈화면에서 위젯추가를 눌러서 위젯을 추가해주시고, the day before 위젯을 선택하시면 됩니다.


이런식으로 d-day제목, 날짜, 글자색, 배경색, 글자크기, 계산방법 등을 지정해서 적용을 누르면 홈화면에 위젯이 뜨는데, 중요한 일이라면 이렇게 위젯을 설치해놓으면, 스마트폰을 볼때마다 상기가 되어서 잊지 않을수 있습니다.


1x1은 왼쪽처럼, 1x2는 오른쪽처럼 바탕화면에 나타납니다.


앱을 직접 실행하면 위젯들의 d-day를 알려줍니다.


화면에서 해당 디데이를 누르면 더 자세한 내용을 보여주는데, 위처럼 기념일이 얼마나 지났는지, 얼마가 남았는지를 볼수도 있습니다.

새로 연애를 시작하는 분이라면 날짜 관리를 하기도 편하겠고, 다양한 일자들을 잘 보실수 있을듯 합니다.
다만 KBS 개그콘서트를 보니 애정남(애매한것을 정해주는 남자들)에서 연애시에 300일부터는 안챙기는걸로 정해졌으니 참고하시길 바라겠습니다...^^
 
반응형

안드로이드 Listview의 imageView 멀티쓰레드 적용시 다운로드중 배경이미지 적용하기

 
반응형
처음으로 안드로이드 앱을 만들고 있는데, 배운지 얼마 되지 않아서 이것저것 찾아보는 시간이 더 걸리네요...

최근에 xml 파싱을 통해서 공연정보를 뿌려주는 화면을 만들고 있는데,
이미지뷰때문에 속도가 상당히 느립니다.

쓰레드와 소프트레퍼런스(softreference)를 이용하면 속도가 좋아진다고 해서 찾아보니 멋진 공개 소스가 있더군요.

Multithreading For Performance

[한글번역] 안드로이드 멀티 스레드를 통한 성능 향상

위 소스를 참고해서 만드시면 됩니다.


속도 향상 퍼포먼스 문제는 해결이 되었는데, 위의 예제는 이미지파일이 다운로드되기 전까지는 검은색 배경화면을 사용했는데, 다른 이미지로 구현을 하려고 했는데, 잘 안되고, 마땅한 답변이 없어서 한참을 찾다가 해결을....-_-;;
뭐 고수분들이야 금방했겠지만, 저같은 초보분들은 참고하시길...

### java
//static class DownloadedDrawable extends ColorDrawable {
static class DownloadedDrawable extends BitmapDrawable {
    private final WeakReference<BitmapDownloaderTask> bitmapDownloaderTaskReference;

    public DownloadedDrawable(BitmapDownloaderTask bitmapDownloaderTask, Context context) {
        // super(Color.BLACK);
        super(BitmapFactory.decodeResource(context.getResources(), R.drawable.loading));
        bitmapDownloaderTaskReference = new WeakReference<BitmapDownloaderTask>(bitmapDownloaderTask);
    }

    public BitmapDownloaderTask getBitmapDownloaderTask() {
        return bitmapDownloaderTaskReference.get();
    }
}

소스중에 위와 같은 구문이 있는데, ColorDrawable 에서 상속받은것을 우선 BitmapDrawable에서 상속을 받습니다.

super(BitmapDrawable(R.drawable.loading));
가 오류가 나지 않아도, 이미지가 나오지 않는데, context가 없어서 이걸 넘겨받아야 합니다.
생성자를 호출할때 context를 받아와야 제대로 출력을 할수 있으므로,
super(Color.BLACK); 를 아래와 같이 변경해 줍니다.
super(BitmapFactory.decodeResource(context.getResources(), R.drawable.loading));

### java
case CORRECT:
                    task = new BitmapDownloaderTask(imageView);
                    // DownloadedDrawable downloadedDrawable = new DownloadedDrawable(task);
                    DownloadedDrawable downloadedDrawable = new DownloadedDrawable(task, imageView.getContext());
                    imageView.setImageDrawable(downloadedDrawable);
                    imageView.setMinimumHeight(156);
                    task.execute(url);
                    break;

그리고나서 forceDownload 메쏘드에 가서 위처럼 또 변경을 해주시면 됩니다.

찾고나니 간단한데, 이걸 하느랴고 몇시간이 걸렸는지...-_-;;
남의것을 그냥 가져다가 쓰는것이 쉽지가 않네요.
아무쪼록 조금이나마 도움이 되시길 바라겠습니다.
반응형

이클립스(Eclipse) 소스코드, XML 자동정리기능 단축키, Ctrl + Shift + F

 
반응형

이클립스에 있는 소스자동정리기능 단축키인 ctrl + shift + f 키~


아주 유용한데, Preference에 들어가서 조금만 수정을 해주면 자신의 입맛에 딱 맞도록 해줄수도 있습니다.


아래는 xml 파일인데, 이클립스의 자동정리기능을 이용하면 아래와 같이 나옵니다.


깔끔하게 정리는 됬지만, 조금 복잡해 보이는데,

한줄에 하나씩만 나오게 할수도 있습니다.



옵션에 들어가서 xml -> xml files -> editer에 들어가면 다양한 옵션이 나옵니다.


그중에서 split multiple attributes each on a new line을 체크하시면

한라인에 하나씩 깔끔하게 출력이 됩니다.



위 처럼 옵션을 바꾸고, 다시 소스정리를 하면 위 처럼 깔끔하게 정리가 됩니다.


이클립스(Eclipse), 워크스페이스 변경과 Import로 복사한 소스코드 Workspace Project Explorer에 추가하는 방법
이클립스(Eclipse)에서 안드로이드 에뮬레이터(AVD) 실행하는 방법
이클립스(Eclipse), Usage Data Upload Collector (UDC) 사용자 환경개선 프로그램
이클립스(Eclipse) 자체의 로컬 소스 히스토리 관리 Compare with local Revision
안드로이드(Android), resources.ap_ does not exist Error 오류 해결방법
반응형