일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- SSM
- Python
- 패턴인식
- 패턴 인식
- Bidirectional Associative Memory
- 가상화
- BAM
- Neural Network
- 물걸레로봇청소기추천
- Friendship
- 빅데이터
- hopfield network
- 삼성소프트웨어멤버십
- 갤럭시탭S8울트라
- 신경망
- 하이퍼바이저
- 인공지능
- 신경회로망
- 파이썬
- 구글 앱 엔진
- 삼성전자 소프트웨어멤버십 SSM
- 멤버십
- 삼성
- Google App Engine
- 고려대학교
- NarwalFreo
- 나르왈프레오
- 물걸레자동세척로봇청소기
- 동아리
- 증강현실
- Today
- Total
정보공간_1
[6기 강남 송태현] Android Framework PowerManager 분석 본문
[6기 강남 송태현] Android Framework PowerManager 분석
알 수 없는 사용자 2014. 11. 2. 20:20안녕하세요 엘리트회원 6기 강남멤버십 23-2 송태현 입니다.
스마트폰이나 태블릿과 같은 이런 모바일기기에 가장 큰 특징 중 하나는 바로 휴대성이 좋다는 것입니다.
결국 휴대를 할려면 충전용 베터리를 디바이스안에 탑재되어야 하고 그 베터리가 얼마나 오래 가게 하는것이 핵심적인것입니다.
그리고 안드로이드 프레임워크와 리눅스 커널에선 새로 전원관리하는 프레임워크와 커널모듈이 있습니다.
이번시간에는 안드로이드내에서 전원을 관리하는 PowerManager에 대해 알아보도록 하겠습니다.
안드로이드 PowerManagement는
기본적으로 전통적인 리눅스 PM(PowerManager) 기반에서 동작합니다.
대표적인 PowerManagerService에 해당 되는 API인 WakeLock을 간단히 알아보고 뒤에서 더 알아보도록 하겠습니다.
WakeLock
- 안드로이드를 위해 커널에 추가된 기능입니다.
- 프로세스가 Suspend 되기 전에 driver작업이나 어플리케이션이 작업을 마칠수 있도록 임계영역을 지정하고 마저 다 작업을 마칠수 있도록 기회를 줍니다.
- kernel 내부에 power에 있습니다.
- suspend / resume 기능을 시스템콜을 통해 작동합니다.
안드로이드 Power Management는 다음과 같은 기능들을 제공해줍니다.
- 스크린 On/off 기능
- 스크린 BackLight 조절 기능
- 키보드 BackLight 조절 기능
- 버튼 활성화 기능
- 스크린 밝기 기능
PowerManager에 흐름은 다음과 같습니다.
처음 PowerManager를 등록(초기화) -> PowerManagerService 등록 -> PowerManagerService(해당 Service를 다루는 HandlerThread 생성) -> PowerManager 동작
PowerManagerment 를 안드로이드 구조상태로 보면 다음과 같은 상태로 동작하게 됩니다.
PowerManager 설계부분을 보면
다음과 같습니다.
위와 같은 동작으로 Java에서 PowerManagerService에 기능함수들을 API형태로 호출하면
그 호출 명령이 프레임워크를 통하여 JNI 커널에 Power를 제어 할 수 있게 됩니다.
PowerManagement에 대표적인 WakeLock 이 있습니다.
APP개발시 이 기능을 잘 만 사용하면 원하는 효과를 볼 수 있지만, 잘못 사용하면
베터리의 낭비가 발생하여 더 베터리 소모가 상당히 빨리 소모될 수가 있습니다.
사용할떄 주의해야하는 WakeLock과 효율적으로 사용한느 방법데 대해서 다음시간에 알아보도록 하겠습니다.
감사합니다.
'IT 놀이터 > Elite Member Tech & Talk' 카테고리의 다른 글
[6기 강남 조유석] Network Flow - Bipartite Matching (0) | 2014.11.04 |
---|---|
[6기 강북 이보희] 디지털 영상처리 - Recognition 편 (0) | 2014.11.04 |
[6기 강북 전영진] 리눅스 커널 심층 분석 #3 (0) | 2014.11.02 |
[6기 강남 조유석] Network Flow - Ford-Fulkerson Algorithm (0) | 2014.11.02 |
[6기 대전 민창기] Control System #4 (0) | 2014.11.02 |