android

상황 별 호출되는 액티비티의 생명주기 메소드들

안드로이드의 앱을 구성하는 일명 4대 컴포넌트는 모두 생명주기가 있다. 이 중, 가장 복잡한 생명주기를 가진 컴포넌트가 액티비티다. 액티비티의 생명주기에 대한 글은 수없이 많다. 하지만, 그런 글들을 읽고 액티비티의 생명주기를 이해하더라도, 문제 분석 시 ‘그래서 지금 사용자가 뭘 했길래 이렇게 호출된거야?’라는 생각이 드는 경우가 있다. 그러므로, 여기서는 액티비티 생명주기 소개 대신에 상황 별로 호출되는 액티비티의 생명주기 […]

상황 별 호출되는 액티비티의 생명주기 메소드들 더 읽기"

안드로이드 잡스케줄러 분석

지난 글에서 안드로이드 잡스케줄러를 이용해 백그라운드 작업을 처리하는 잡서비스 생성 시 주의할 점을 살펴보았다. 잡스케줄러 기능은 L(API21)부터 추가되었지만, M(API23)까지는 거의 사용되지 않았다. 안드로이드에서 백그라운드 작업에 애용되던 CONNECTIVITY_ACTION 수신 브로드캐스트를 targetSdk 24(N)부터 사용할 수 없도록 제한하고, 대안으로 잡스케줄을 제안하면서 많이 사용되고 있다. 이번 글에서는 잡스케줄러가 단말에서 어떻게 동작하는지 O OS 기반 테스트를 통해 살펴보자. O OS를

안드로이드 잡스케줄러 분석 더 읽기"

안드로이드 앱과 유투브 연결하기

안드로이드 앱에 동영상을 넣고 싶을 때, 보통 유투브를 가장 먼저 떠올린다.  유투브를 내 어플리케이션에 연결하는 대표적인 방법은 아래와 같다. 바로가기 유투브  IFrame Player 유투브 Android Player 구현 방법에 대한 좋은 글들이 인터넷에 많이 있으므로, 여기서는 3가지 방법의 차이점에 대해 살펴본다. 바로가기 영상을 내 앱에서 재생하지 않고, 유투브 공식 앱이나 사이트로 뛰는 방법이다.  대부분의 안드로이드 단말에는

안드로이드 앱과 유투브 연결하기 더 읽기"

안드로이드 서비스 상태별 바인딩 결과 테스트

안드로이드에서 작업 시간이 오래 걸리는 작업은 서비스를 사용하도록 권장한다. 그리고, 다른 컴포넌트는 이 서비스와 데이터를 지속적으로 주고받기 위해 바인딩 할 수 있다. 서비스 바인딩에 대해서는 이미 많은 글이 있으므로 생략하고, 여기서는 서비스의 상태(서비스의 위치, 이름, 반환 값 등)에 따라 메소드들이 호출되는지 여부와 어떤 값을 반환하거나 전달 받는지 정리한다. 참고로, 테스트는 N O/S에서 진행했다. 각 항목을

안드로이드 서비스 상태별 바인딩 결과 테스트 더 읽기"

액티비티의 윈도우 생성/삭제 시점 확인하기

어플리케이션 개발 수준에서 윈도우(Window)에 신경 쓰는 경우는 별로 없다. 특별한 처리 없이도 액티비티가 기본적으로 윈도우를 생성한 후, setContentView() 메소드 등을 통해 전달된 레이아웃을 그 위에 그려주기 때문이다. 하지만, 간혹 윈도우가 잘 생성/삭제 되는지 궁금하다면 아래와 같은 로그로 참조할 수 있다. 12-14 19:09:29.844 system_process V/WindowManager: Relayout Window{2492035d0 u0 me.sunphiz.android.test.window/me.sunphiz.android.test.window.activity.MainActivity}: viewVisibility=0 req=1080×2004 WM.LayoutParams{(0,0)(fillxfill) sim=#120 ty=1 fl=#81810100 pfl=0x20000

액티비티의 윈도우 생성/삭제 시점 확인하기 더 읽기"