2013-02-19 1 views
2

나는 힘 관리 모범 사례와 안드로이드 장치의 절전 모드 상태를 이해하는 데 어려움이 있습니다.android power management, sleep mode, etc.

  1. 수면 모드.

    1.1) 언제 발생합니까?

    1.2) CPU가 잠자기 상태가되고 스레드가 일시 중단됩니까? 그리고 언제 이것이 일어날까요?

    1.3) CPU 절전을 방지하기 위해 PARTIAL_WAKE 웨이크 잠금 장치 또는 알람 관리자를 사용할 수 있습니까? 배터리에는 무엇이 가장 좋습니까?

    1.4) 내 앱에서 절전 모드로 WiFi 및 3G 연결을 프로그래밍 방식으로 종료하는 것을 방지하려면 어떻게해야합니까?

P.S 예, 배터리 수명이 좋지 않습니다. 나는 최선의 타협을 찾아 내려고 노력합니다 ...

  1. 필자의 인스턴트 메신저 응용 프로그램을 작성합니다. 서버에 지속적으로 연결되어 있어야합니다. 이것을 달성하는 가장 좋은 방법은 무엇입니까? ~ 20-30 분 화면이 꺼진 후 인터넷 연결이 끊어졌지만 Skype는 온라인 상태로 있습니다. 그들이 어떻게합니까?

  2. 저는 C2DM 프레임 워크에 대해 알고 있습니다. 그러나 서버에서 응용 프로그램으로 단방향입니다. 어떻게 나를 위해 그것을 사용하는 가장 좋은 방법은? 서버는 클라이언트가 실제로 연결되었음을 알아야합니다!

답변

5

때이 일어날 것인가?

비활성 후 사용자 설정에 따라 화면이 꺼지는 시점.

CPU가 잠자기 상태가되고 스레드가 일시 중단됩니까?

예.

언제 발생합니까?

귀하는 이미 질문하셨습니다.

CPU 잠자기를 방지하기 위해 PARTICAL_WAKE 웨이크 잠금 장치 또는 알람 관리자를 사용할 수 있습니까?

AlarmManager 휴대 전화가 절전 모드에서 깨어날 수 있지만 매우 짧게 만 발생할 수 있습니다. WakeLock은 처음부터 장치가 절전 모드로 들어가는 것을 방지합니다.

내 앱에서 절전 모드로 WiFi 및 3G 연결을 프로그래밍 방식으로 종료하는 것을 방지하려면 어떻게해야합니까?

WifiLock을 사용하면 WiFi 라디오가 꺼지는 것을 방지 할 수 있습니다. 전화 통신 라디오는 절전 모드의 영향을받지 않습니다.

어떻게 이것을 수행하는 가장 좋은 방법은 무엇입니까?

사용자가 장치를 사용하지 않을 경우 연결을 종료 할 수 있습니다. 정의에 따르면 기기가 잠자기 상태 인 경우 IM 세션에 참여하지 않습니다.

나는이 같은 기본 특성을 가지고 GCM에 의해 대체되었습니다

C2DM 프레임 워크에 대해 알고.

+0

CommonsWare. "정의에 따르면, 장치가 잠자기 경우 IM 세션에 참여하지 않습니다." Skype가 온라인 상태를 보여주는 이유는 무엇입니까? – Dmitry

+0

@Quadri : Microsoft에 문의해야합니다. Skype의 경우 실제로는 IM 클라이언트가 아닙니다. – CommonsWare

+0

두 번째 마지막 질문에 @ CommonSWare와 동의하지 않을 것입니다. Google 수다방은 온라인 24 * 7 및 GCM 푸시 프레임 워크가 될 수 있습니다. 원하는 경우 장치에 실시간으로 메시지를 보낼 수 있습니다. GCM 클라이언트는 Google GCM 서버에 실시간 연결을 제공하는 백그라운드 서비스를 유지 관리합니다. TCP 레이어에서 연결은 지속되며 afaik는 라이브입니다. – lucas