안드로이드 7

안드로이드 4대 컴포넌트란 무엇인가? -Service

서비스(Service)란? UI없이 백그라운드에서 실행되는 기능을 말합니다. 예를 들면 노래를 켜고 웹 서핑을 하는 상황이 있습니다. 우리가 음악을 듣는 어플을 사용할 때 보통 어플에 들어가 노래를 켜고 다른 화면으로 가거나 화면을 끄거나 다른 어플리케이션을 사용합니다. 그럼에도 불구하고 노래를 들을 수 있는건 백그라운드에서 노래를 틀어주는 작업을 수행하고 있기 때문입니다. 하지만 이러한 작업을 서비스를 사용하지 않고 별도의 스레드를 생성해 백그라운드 작업을 하면 문제가 발생합니다. 쓰레드로 백그라운드 작업을 하다가 앱에서 back 키를 눌러 액티비티를 모두 종료할 시 앱 프로세스의 우선순위가 낮아져 LMK(low memory killer)가 프로세스를 강제로 종료 할 수 있습니다. 이 때 쓰레드도 종료..

Android 2019.03.30

안드로이드 4대 컴포넌트란 무엇인가? - Activity

개발자가 되기위한 첫 걸음 Activity(액티비티)란?액티비티는 UI 화면을 담당하는 컴포넌트이다. 안드로이드 액티비티가 화면에 UI를 표시하는 역할을 수행한다고 해서 자체적인 그리기 기능이 실행되어 화면을 그리는 것이 아니다. VIew 또는 ViewGroup의 다양한 조합을 화면에 배치함으로써, UI를 표시하는 것입니다. 이러한 관점에서 보면 액티비티는 화면에 UI를 표시하기 위한 틀이라는 개념이 될 수 있습니다. 따라서 하나의 UI는 하나의 Activity라는 말이 됩니다. 하나의 애플리케이션은 하나 이상의 액티비티가 느슨하게 서로 묶여 있는 형태로 구성됩니다. 각각의 액티비티는 여러 가지 작업을 수행하기 위해 또 다른 액티비티를 시작할 수 있습니다. 새로운 액티비티가 시작될 때마다 이전 액티비티는..

Android 2019.01.09

안드로이드 4대 컴포넌트란 무엇인가?

개발자가 되기위한 첫 걸음 안드로이드 4대 컴포넌트안드로이드의 4대 컴포넌트란?안드로이드의 주요 4대 컴포넌트는 액티비티(Activity), 서비스(Service), 브로드캐스트 리시버(Broadcast Receiver), 콘텐트 프로바이더(Content Provider)를 말합니다. 각 컴포넌트들은 하나의 독립된 형태로 존재하며, 정해진 역할을 수행합니다. 또한 각 컴포넌트들은 인텐트(Intent)라는 일종의 메시지 객체를 사용하여 상호 통신을 합니다. 이들 중에서 가장 많이 사용하는 것은 액티비티이지만 나머지 컴포넌트도 매우 중요하므로 어떤 기능을 하는지 알아둬야 합니다. 다음 그림은 안드로이드 애플리케이션을 구성하는 안드로이드 4대 컴포넌트를 그림으로 나타낸 것입니다. 당연하겠지만 이 중에서 가장 ..

Android 2019.01.09

안드로이드 WebRTC 시작하기 -3

p2p에서의 다음과 같은 시나리오를 생각해 봅시다. 처음에 peer 연결과 offer SDP를 생성합니다. 이 offer에는 호출하는 peer에 대한 데이터가 들어 있으며 peer의 코덱 및 기타 엔터티를 식별하는데 사용됩니다.그런 다음 이 offer는 호출 peer에 "Local Description"으로 저장되고 일부 신호 메커니즘을 통해 호출 수신자에게 전송됩니다. 일반적으로 시스템의 대부분은 신호 매체로 웹 소켓을 사용하며 사용 및 요구 사항에 따라 다를 수 있습니다.수신자 측이 offer를 받아 "Remote Description"으로 저장하고 해당 offer에 대한 Answer SDP를 만듭니다. 이 Answer SDP는 호출자의 offer SDP와 비슷하지만 해당 피어의 세부정보를 가지고 있..

Android 2018.12.25

안드로이드 WebRtc 시작하기 -2

이번에는 PeerConnection의 작동 방식과 Android에서의 구현 방법에 대해 자세히 살펴 보겠습니다. 첫째, WebRTC는 피어 - 투 - 피어 연결 (또는 단순히 P2P)을 기반으로합니다. 그렇다면 P2P는 무엇일까요?위키 피 디아에 P2P에 대해 설명되어 있습니다. 피어 - 투 - 피어 (P2P) 컴퓨팅 또는 네트워킹은 피어간에 작업 또는 작업 부하를 분할하는 분산 응용 프로그램 아키텍처입니다. 피어는 동등하게 권한이 부여되며 응용 프로그램에서 동일한 권한을 가진 참가자입니다. 이들은 피어 투 피어 노드 네트워크를 형성한다고합니다. 따라서 WebRTC를 사용하면 외부 서버 컴퓨터없이 오디오 / 비디오 스트림을 다른 피어와 직접 공유 할 수 있습니다. 인프라에서 대량의 오디오 / 비디오 데이..

Android 2018.12.25

안드로이드 WebRTC 시작하기

이 글을 작성하게 된 주된 이유는 적절한 가이드가 없기 때문에 작성하게 되었다. 선행조건 1. 컴파일 된 WebRTC 원시 코드가 필요. 여기에서 참고.2. 안드로이드 스튜디오. Update: arr 파일을 여기에서 다운 받을수 있습니다. 첫번째, WebRTC의존성을 build.gradle파일에 추가 이제 카메라에서 비디오를 가져와서 화면에 표시하는 방법을 알아보겠습니다. (WebRTC apis 사용). 비디오 스트림을 카메라로부터 가져와 뷰에 표시하는 단계는 아래와 같습니다. PeerConnectionFactory를 생성하고 초기화장치의 카메라를 사용하는 VideoCapturer 인스턴스 생성Captuer로 부터 VideoSource를 생성source로 부터 ViedoTrack 생성SurfaceView..

Android 2018.12.24

HttpURLConnection으로 웹서버 통신하기

1. 안드로이드의 서버 통신 안드로이드는 서버와 통신하기 위한 방법으로는 HTTP통신과 Soket통신이 있다. 오늘 다룰 내용은 HTTP통신으로 URL 접속을 통해 데이터를 읽어오는 방법이다. 우리는 주로 DB에 존재하는 데이터를 가져오기 위해 서버 통신을 한다. 하지만 안드로이드의 특성상 외부 DB에 직접 접근할 수 가 없도록 되어있어 중간 매체인 WEB을 활용해야한다. 이해를 위해 그림으로 쉽게 표현했다. [그림 1] 안드로이드와 WEB, 그리고 DB 통신 과정 안드로이드 통신은 보통 위와 같이 이뤄지며 본 포스팅에서는 'ANDROID-WEB'의 통신 방법에 대해 다룰 것이다. 우선 막연하게 WEB이라고만 하면 정확히 어떤 것을 말하는 것인지 헷갈릴 수 있다. 여기서 말하는 WEB은 HTML, JSP..

Android 2018.11.11