1 / 17

인사이드 안드로이드 -Chap 6. 안드로이드 서비스 개요

인사이드 안드로이드 -Chap 6. 안드로이드 서비스 개요. Reviewer: 김 혁중 Embedded Software Lab. 목 차. 예제 프로그램 : 안드로이드 서비스 동작 이해 용어 정리 안드로이드 서비스 분류 안드로이드 애플리케이션 서비스 로컬 서비스 원격 서비스 안드로이드 시스템 서비스 네이티브 시스템 서비스 자바 시스템 서비스 시스템 서비스의 실행 미디어 서버의 실행 코드 분석 시스템 서버의 실행 코드 분석 시스템 서비스 동작 구조. 예제 : 안드로이드 서비스 동작 이해.

egan
Télécharger la présentation

인사이드 안드로이드 -Chap 6. 안드로이드 서비스 개요

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 인사이드 안드로이드 -Chap 6.안드로이드 서비스 개요 Reviewer: 김 혁중 Embedded Software Lab.

  2. 목 차 • 예제 프로그램: 안드로이드 서비스 동작 이해 • 용어 정리 • 안드로이드 서비스 분류 • 안드로이드 애플리케이션 서비스 • 로컬 서비스 • 원격 서비스 • 안드로이드 시스템 서비스 • 네이티브 시스템 서비스 • 자바 시스템 서비스 • 시스템 서비스의 실행 • 미디어 서버의 실행 코드 분석 • 시스템 서버의 실행 코드 분석 • 시스템 서비스 동작 구조

  3. 예제: 안드로이드 서비스 동작 이해 Notification Manger Service (시스템 서비스) getSystemService() Alarm Manager Service (시스템 서비스) getSystemService() AlarmService (어플리케이션) AlarmService_Service (어플리케이션서비스)

  4. 용어 정리 • 서비스 서버: 시스템서비스를 실행하는 프로세스 • 서비스 클라이언트: 시스템 서비스를 사용하는 프로세스 • 컨텍스트 매니저: 시스템 서비스를 관리하는 시스템 프로세스, 바인더 IPC를 이용하여 접근 가능 • 바인더 IPC(Inter Process Communication):바인더 드라이버를 통한 프로세스 간의 데이터 전달방식 • 바인더 RPC(Remote Procedure Call): 서비스 사용자가 서비스에서 제공하는 특정 서비스 인터페이스 기반 함수를 자신의 로컬 함수를 호출하듯이 원격으로 처리하는 동작. 내부적으로 바인더 IPC 기반으로 동작한다. • 서비스 프록시: RPC 수행 시 데이터 마샬링을 수행하는 객체, 서비스 인터페이스 별로 존재한다. • 서비스 스텁: RPC 수행 시 데이터 언마샬링을 수행하는 객체이다. 이 역시 서비스 인터페이스별로 존재하며 수신된 데이터를 언마샬링하여 연관된 함수를 호출한다.

  5. 안드로이드 서비스 분류

  6. 애플리케이션 서비스

  7. 애플리케이션 서비스(cont) 로컬 서비스 원격 서비스 액티비티 액티비티 바인더 IPC 로컬 서비스 원격 서비스 APK 패키지 프로세스

  8. 애플리케이션 서비스 -로컬서비스

  9. 애플리케이션 서비스 -원격서비스 *Intent: 서비스, 행위, 변수 등을 지니는 행위 선언자액티비티, 서비스 등의 프로세스 내 행위들의 통신수단 Explicit Intent: 명시적 인텐트, 목적지, 수행할 class를 명시하고 있으며따로 intent Filter가 필요없다. Implicit Intent: 암시적 인텐트, 수행할 class를 명시하고 있지않으며, broadcast가 되면, intent filter에서 조건에 맞게 수용한다. *Intent Fileter: implicit intent의 수신자.

  10. 애플리케이션 서비스 –로컬과 원격 서비스 LocalService의 매니페스트 파일 RemoteService의 매니페스트 파일

  11. 시스템 서비스 자바 시스템 서비스 네이티브 시스템 서비스

  12. 시스템 서비스 –네이티브 시스템 서비스 • C++로 작성되어 있으며, library layer에서 동작 Audio Flinger 서비스 Surface Flinger 서비스

  13. 시스템 서비스 –자바 시스템 서비스 • SystemServer시스템 프로세스에서 일괄적으로 실행 • 코어 플랫폼 서비스 • 애플리케이션이 직접사용 하진 않지만, 프레임 워크의 동작에 관여하는 서비스. Activity Manager Service, Window Manager Service, Package Manager Service 등이 있다. • 하드웨어 서비스 • 저 수준 하드웨어 제어를 위한 API를 제공한다. Alarm Manager Service, Connectivity Service, Location Service, Power Service, Sensor, Service, Telephony Service, Wi-Fi Service 등이 있다. • 자바 시스템 서비스의 경우는 getSystemService() 함수를 이용하여 각 서비스와 통신 가능한 local manager 객체를 사용하여서 서비스에 대한 인스턴스를 생성해야 한다.

  14. 시스템 서비스의 실행

  15. 시스템 서비스의 실행 –미디어 서버

  16. 시스템 서비스의 실행 –시스템 서버

  17. 시스템 서비스 동작 구조

More Related