본문 바로가기

프로그래밍/안드로이드

[안드로이드] 액티비티와 태스크 하나의 액티비티는 또 다른 액티비티를 시작시킬 수 있다고 했습니다. [안드로이드] 컴포넌트 #1 - 액티비티(Activity) 그렇게 시작할 수 있는 액티비티에는 다른 어플리케이션이 정의한 액티비티도 포함되는데요, 예를들어, 사용자에게 지도를 보여주고싶다면, 이미 안드로이드에 지도 위치를 보여주는 액티비티가 존재하기 때문에 , 필요한 것은 인텐트 객체에 필요한 정보를 추가한 뒤 그것을 startActivity() 의 파라미터로 전달하는 것 뿐입니다. 그러면 맵 뷰어는 지도를 보여주게 되고 , 사용자가 " BACK " 키를 누르면 다시 기존의 액티비티가 화면에 나타나겠지요. 맵 뷰어는 다른 어플리케이션 내에 정의되고 있고 다른 어플리케이션의 프로세스 상에서 실행되고 있지만 사용자에게는, 지도가 동일한 어플.. 더보기
컴포넌트 활성화 - 인텐트 컨텐츠 프로바이더는 컨텐츠 리볼저의 요청 대상이 될 때 활성화가 됩니다. 그것을 제외한 3가지의 컴포넌트 ( 액티비티, 서비스, 브로드캐스트 리시버 ) 는 인텐트 ( Intent ) 라는 비동기 메시지에 의해 활성화가 되죠. 인텐트는 컨텐츠 메시지를 가지고 있는 인텐트 객체입니다. 인텐트는 액티비티와 서비스에게 요청되는 액션을 가리키고, 그 액션은 처리해야하는 데이터의 URI 를 명시합니다. ( 브로드캐스트 리시버에게는 공지되는 액션을 가리킵니다. ) 예를들어, 카메라 버튼이 눌러졌다 라는 이벤트가 발생하면 그것에 귀 기울이고 있던 관계자(party) 에게 공지하는 구조이죠. 각각의 컴포넌트에 대해 활성화 할 수 있는 별도의 메소드가 있습니다. 액티비티 활성화 액티비티는 인텐트 객체를 Context.st.. 더보기
안드로이드 컴포넌트 #4 - 컨텐츠 프로바이더 네 가지의 컴포넌트 중 네번째인 컨텐츠 프로바이더 입니다. 컨텐츠 프로바이더 ( Content Provider : CP ) 는 특정 어플리케이션의 데이터 SET 을 만드는 역할을 합니다. 그 데이터는 파일, SQLite 데이터베이스 등의 내부에 저장되어 있는 데이터이지요. CP 는 자신이 제어하는 데이터를 다른 어플리케이션에서도 쓸 수 있도록 하는 사명을 가집니다. CP 는 ContentProvider 클래스를 상속받아 구현합니다. 하지만 어플리케이션은 이런 메소드를 직접 호출하는 대신, 컨텐츠 리졸버 ( ContentResolver ) 객체를 사용하여 그것의 메소드를 호출하게 됩니다. 컨텐츠 리졸버는 어떠한 CP 와도 통신할 수 있으며, 프로세스간의 통신 ( IPC : Inter Progress Com.. 더보기
컴포넌트 #3 - 브로드캐스트 리시버 네 가지의 컴포넌트 중 세 번째 컴포넌트 인 브로드캐스트 리시버 입니다. 브로드 캐스트 리시버( Broadcast receiver ) 는 아무것도 하지 않는 컴포넌트 입니다. 브로드캐스트 공지( announcement ) 를 수신하고 응답하는 역할만을 수행합니다. 배터리 부족, 사진 촬영이 됨, 언어 설정이 바뀜 등의 시스템 코드에서 발생되는 브로드캐스트는 어플리케이션에서도 발생시킬 수가 있습니다. 어플리케이션은 여러개의 공지에 응답하는 여러개의 브로드캐스트 리시버를 가질 수 있으며, 모든 리시버는 BroadcastReceiver 클래스를 상속합니다. 브로드캐스트 리시버는 사용자 인터페이스는 보여주지 않지만, 그것이 수신한 정보에 응답하는 액티비티를 실행하거나 , 노티피케이션 매니저 ( notificat.. 더보기
컴포넌트 #2 - 서비스 네 가지의 컴포넌트 중 두번째인 서비스 컴포넌트 입니다. 서비스는 보여지는 사용자 인터페이스(UI) 를 가지지 않고 백 그라운드(background)에서 실행되는 컴포넌트 입니다. 무슨 말인고 하니... 서비스는 사용자가 다른 작업을 하는 중에도 백 그라운드에서 음악을 재생하거나 데이터를 처리하는 등의 작업을 하는 역할이죠. 또한 어떤 결과를 처리하여 그것을 원하는 액티비티에게 제공할 수도 있습니다. 각각의 서비스는 Service 클래스를 상속합니다. 음악을 재생하는 음악재생 플레이어는 서비스의 일종인데, 사용자가 음악을 선택하고 재생, 되감기, 다음곡 등의 작업을 할 수 있는 하나 또는 여러개의 액티비티가 있을 수 있겠죠. 하지만 음악을 재생하는 그 자체는 액티비티에 의해 제어되면 안됩니다. 왜냐하면 .. 더보기
안드로이드 컴포넌트 #1 - 액티비티 우선 액티비티 라는 용어부터 잠깐 적어볼까 합니다. 안드로이드 서적에 보면 Activity 를 " 액티비티 " 라고도 표기하기도 하고 또 어떤 서적에서는 Activity를 " 활동 " 이라고 부르기도 하더군요 ;;; 어쨋든 저는 Activity 를 "액티비티" 로 표기하도록 하겠습니다. 액티비티(Activity) 는 하나의 사용자 인터페이스를 나타내는 단위입니다. 하나의 어플리케이션에는 여러개의 액티비티가 존재할 수 있는데요, 이들 액티비티들은 하나의 결합된 UI를 형성하기 위해 함께 동작하지만, 각각의 액티비티들은 다른 액티비티와 독립되어 있습니다. 각각의 액티비티는 Activity 클래스의 하위 클래스로 구현됩니다. ( 즉, Activity 클래스를 상속하는 것입니다 ) 하나의 어플리케이션은 한 개 .. 더보기
안드로이드 애드몹 달기 안드로이드 어플에 애드몹 광고를 달기위해 3일째 씨름중입니다. 다른 분들은 된다고 하시던데. 생각보다 잘되지 않더군요. 일단은 첨부 파일을 하나 올립니다. admob에서 가이드로 배포하는 것이구요. 테스트로 진행되는 것이기에 일단은 됩니다. 허나 실제로 테스트 부분을 삭제하고 난뒤에는 잘안됩니다. admob에 가셔서 house ads에 관해 설정하시면 그나마 쪼매 더 뜨더라구요. 애드몹 관련해서 좋은 정보가 있다면 댓글로 부탁드리겠습니다. 더보기
[안드로이드 팁] 안드로이드 TextView에 줄긋기 안드로이드 TextView에 줄긋기 TextView에 보면 여러가지 메소드들이 있습니다. 잘사용하지 않지만 알아두면 좋은것이 있습니다. void setPaintFlags(int flags) 요녀석입니다. API의 설명을 보면 간단히 아래 와같이 나와 있네요. Sets flags on the Paint being used to display the text and reflows the text if they are different from the old flags. 정확한 해석은 알아서 해결하시길 ^^ Paint 클래스 안에 있는 Constants들. int ANTI_ALIAS_FLAG bit mask for the flag enabling antialiasing int DEV_KERN_TEXT_FLAG.. 더보기