본문 바로가기
Android

안드로이드 하드웨어 서비스 03 텔레포니 프레임워크 (1)

by OKOK 2021. 5. 26.

텔레포니 프레임워크는 다른 하드웨어 서비스와 달리 폰 앱에 의해서 초기화되며 폰 앱 내에서 실행됨. 폰 앱과 텔레포니 프레임워크가 하나의 프로세스에서 실행되도록 구현된 이유는 네트워크의 특성상 네트워크로부터 전달되는 응답이 올 시점을 예측하기 어려우므로 비동기 통신 방식을 사용하기 때문임. 

 

3.1.1 텔레포니 프레임워크의 기능

TelephonyManager를 통해 한정적인 네트워크 정보를 제공함. 텔레포니 프레임워크는 유닉스 도메인 소켓을 통해 릴 데몬과 통신함. 보통 모뎀은 모뎀 크래쉬가 발생하면 크래쉬의 원인을 규명하기 위해 크래쉬 직전의 레지스터와 스택 메모리의 덤프를 저장함. 안드는 일반적인 SDK앱에 TelephonyManger를 통해 제한적으로 가입자 정보와 네트워크 정보를 제공함

 

3.1.2 텔레포니 프레임워크의 제공 서비스

텔레포니 프레임워크가 제공하는 서비스의 종류 Call, 데이터, OEM, UICC, SMS, SS, 가입자 정보, 네트워크 서비스. Phone 앱, SIM Toolkit, MMS 앱 등은 텔레포니 프레임워크로부터 필요한 서비스를 제공받음. 

 

3.2. 텔레포니 프레임워크의 구조

다양한 네트워크를 지원함. 이동통신 네트워크인 GSM, CDMA를 모두 지원해야 함. WIFI 네트워크를 이용한 SIP Call을 지원함. 모뎀 제어 메커니즘을 제공함. 모뎀 제어 메커니즘을 제공. Solicited, Unsolicited 명령을 제공함. 네트워크 특성상 이동통신 네트워크는 서비스 요청 후 서비스 응답을 예측하기 힘들음. 서비스 응답이 비동기적으로 수신될 때 이를 효율적으로 처리할 메커니즘이 필요함. 안드는 GSM 네트워크와 CDMA 네트워크를 동시에 지원하므로 통신 방식에 따라 텔레포니 프레임워크의 Phone 타입은 언제든지 스위칭 될 수 있음. 

 

3.2.1 텔레포니 프레임워크의 계층별 구성요소

폰 앱은 폰이 부팅될 때 시작되며 폰앱 객체가 시작될 때 텔레포니 프레임워크를 생성함. RAT(Radio Access Technology)에 따라 상위 앱에서 제공하는 폰 인터페이스가 재정의됨. 폰 인터페이스는 RAT에 따라서 재정의 됨. Radio 인터페이스는 RAT에 관계없이 폰에 의해 공통적으로 사용하는 인터페이스임. state tracker : Finite State Machine으로 네트워크의 상태 변화를 모니터링하여 상태 변화에 따라 현 상태를 다음 상태로 전이하고 취해야 할 동작을 결정함

 

3.2.2 PhoneApp 클래스

폰 앱이 시작될 때 안드의 텔레포니 프레임워크를 생성하고 폰 앱이 모뎀을 제어할 수 있도록 PhoneProxy클래스의 인스턴스를 가지고 있음. 폰앱 클래스는 폰 내 클래스 중에 모뎀을 제어할 수 있는 유일한 진입점임. 

댓글