본문 바로가기
[android/안드로이드] TextView 중간에 이미지 삽입하기. 안녕하세요 돼지왕왕돼지입니다. 오늘은 TextView 의 중간에 간단한 이미지를 삽입하는 방법을 함께 알아보고자 합니다. Html class 에서 제공하는 아래의 API 를 이용하면 쉽게 구현할 수 있습니다. public static Spanned fromHtml (String source, Html.ImageGetter imageGetter, Html.TagHandler tagHandler) 이 함수는 html 태그를 작성하면, 그것이 해석된 버전의 text 가 나오는 것으로 보시면 되겠습니다. 이 함수는 주로 태그를 이용하여 text 중간에 이미지를 넣는 데 이용됩니다. Return 값으로 전달되는 Spanned 는 CharSequence 를 implements 한 녀석이기 때문에 TextView의 .. 2012. 2. 8.
[android/안드로이드] aidl 을 이용하여 service 에 bind 하기. 안녕하세요 돼지왕왕돼지입니다. 오늘은 aidl을 이용하여 원격 서비스에 bind 하는 방법에 대해 알아보도록 하겠습니다. AIDL 이 뭐고, 왜 필요해요? - Android에서는 기본적으로 process간 memory 접근이 불가능합니다. Process간 Communication을 위해서는 운영체제가 이해할 수 있는 primitive형태로 object를 marshalling ( 분해의 개념 ) 받는 측에서 unmarshalling ( 조립의 개념 ) 해준다면 가능합니다. - AIDL ( Android Interface Definition Language ) 가 marshalling & unmarshalling 작업을 해줍니다. (직접하려면 엄청 어렵다고 합니다.) 이 AIDL을 통해 IPC ( Inter.. 2012. 2. 8.
[android/안드로이드] activity chooser? activity selector? 안녕하세요 돼지왕왕돼지입니다. 오늘은 Activity Chooser ( or selector ) 로 알려진 녀석에 대해 알아보겠습니다. 이 녀석이 뭐 하는 녀석인지, 그리고 이 녀석을 어떻게 호출하는지를 알아보는 글입니다. Activity Chooser 가 뭐예요? Intent 를 날릴 때, setType에 정의된 type과 관련이 있는 모든 App 을 list 형태로 제공해주는 것입니다. 그래서 User 가 어떤 activity 를 통해 작업할지를 선택하는 것이죠. 가장 공감이 갈만한 예를 들자면, 카카오톡에서 사진을 보내려고 할 때, 그림을 보는 app 이 여러개 설치되어 있다면, 어떤 Gallery 를 통해서 사진을 선택할지 Activity Chooser 가 뜨게 되죠. Activity Choose.. 2012. 2. 7.
[android/안드로이드] ContentObserver 뭐하는 녀석인지 알아봅시다. 안녕하세요 돼지왕왕돼지입니다. 오늘은 ContentObserver 라는 녀석이 뭐 하는 녀석인지 함께 알아봅시다. ContentObserver 넌 누구냐? ContentObserver 는 해당 URI 를 Observe 하다가, 변경이 생기면 알려주는 놈입니다. Observer 사용 방법을 알려주세요. Observer 를 등록하는 방법은 다음과 같습니다. ContentResolver cr = getContentResolver(); ContentObserver contentObserver = new ContentObserver( new Handler() ){ public void onChange( boolean selfChange ){ super.onChange( selfChange ); // do sth... 2012. 2. 7.
[android/안드로이드] Android requires .class compatibility set to 5.0. Please fix project properties. 해결방법 안녕하세요 돼지왕왕돼지입니다. 오늘은 다른 프로젝트를 import 했을 때 발생하는 에러 중 하나인 compatibility 문제 해결 방법을 알아보겠습니다. 먼저 에러메세지는 다음과 같습니다. Android requires .class compatibility set to 5.0. Please fix project properties. 1. 해당 project에서 우클릭 2. [Android Tools] -> [Fix Project Properties] 3. F5 로 refresh. ( 또는 우클릭 후 Refresh ) 4. [Project] -> [Clean] 시켜준다. 5. 해결! 모두들 해결하셨길 빕니다. 로그인 없이 추천 가능합니다. 손가락 꾸욱~ 2012. 2. 7.
[android/안드로이드] boot.img 와 system.img 의 정체 안녕하세요 돼지왕왕돼지입니다. 직업 특성상, 새로운 framework 이미지를 갈아엎을 일이 많이 있습니다. 그때마다 올리는 boot.img 와 system.img 의 정체에 대해 궁금해져서 알아봤습니다. boot.img 와 system.img 의 정체 boot.img = boot header + Linux kernel + ramdisk/rootfs system.img = Android user space applications and libraries 자 이해가 가시나요? 정확히는 아니어도, 이 녀석들이 뭘 담당하는 녀석들인지 감은 잡을 수 있을 것입니다. Upgrade 할 때 꼭 필요한 녀석들만 upgrade 해도 될 것 같습니다. 로그인 없이 추천 가능합니다. 손가락 꾸욱~ 2012. 2. 7.
[android/안드로이드] managedQuery 와 일반 query 의 차이점 안녕하세요 돼지왕왕돼지입니다. 오늘은 managedQuery 와 일반 query의 차이점에 대해 알아보고자 합니다. 내용은 매우 simple 합니다~ managedQuery() = ContentResolver.query() + startManagingCursor( Cursor ) 입니다. 여기서 startManagingCursor( Cursor ) 가 하는 일은, activity가 pause 될 때, 이 cursor에 deactivate() 작업을 해주어 메모리 손실을 줄여주고, activity가 resume 될 때, requery() 를 해주어 원래의 내용이 들어가도록 해주는 것이죠. activity가 destroy될 때는 마찬가지로 close() 까지 해주는 좋은 manager입니다. 한번 쿼리를 한.. 2012. 2. 7.
[android/안드로이드] 안드로이드 부팅과 커널 구조에 대한 기초. 안녕하세요 돼지왕왕돼지입니다. 오늘은 안드로이드의 부팅과 커널 폴더 구조에 대한 기초자료들을 함께 보고자 합니다. 안드로이드 부팅과 커널 폴더 구조를 왜 알아야 하는가? 프레임워크의 구조에 익숙하고 그것의 동작 원리를 제대로 파악하면, 어떤 개발 시나리오라도 주눅들지 않을 수 있습니다. 게다가 안드로이드 프레임워크를 잘 알면 최적화된 S/W 설계를 하는 데 도움도 됩니다. 물론 여기서 다루는 간단한 소개정도로는 의도가 정확히 이루어지지 않지만, 출발점이 되겠습니다. 안드로이드 소스 폴더 구조 kernel: Linux 2.6bionic : 표준 C lib bootloader : 참고용 부트 로더 build : 빌드 시스템 cts : 호환성 테스트 관련 소스 dalvic : 가상 머신 external : 오.. 2012. 2. 7.
[android/안드로이드] framework source eclipse 에 import 하기. 안녕하세요 돼지왕왕돼지입니다. Android Framework Source 를 download 받았는데, Java단 소스를 분석하고 싶은데. 이클립스에서 load 하면 c, cpp는 물론 header 까지 다 불러오고, Reference 추적 등의 기능이 제대로 작동하지 않아 짜증나셨죠? 다음과 같이 하면 이클립스에서 framework를 import 하고, 일반 project 처럼 사용할 수 있습니다. (물론 소스 전체에 대해 지원되는 것이 아니고, 일부에 대해 지원이 됩니다. 그래도 참 편리하죠 ) 이클립스에서 framework 불러오기 안드로이드 framework의 development/ide/eclipse/.classpath 를 framework source 의 root 폴더에 붙이고, ( 여기서는.. 2012. 2. 7.
반응형