2011-01-20 3 views
6

폴링 율이 0.25 밀리 초 미만인 가속도계 센서를 모니터링하는 가장 좋은 방법을 찾으려고합니다. 사용자가 상수 모니터링 상태로 전환 할 수있는 UI 옵션을 구현하고 배터리 드레인 파급 효과를 제거했습니다. 안드로이드가 메모리와 쓰레드를 정리하는 방식 때문에 원격 서비스가 데몬 쓰레드보다 좋은 방법일까요? 요점은 가속도계를 가능한 한 가깝게 모니터하고, 배터리 드레인을 저지해야합니다. 그리고이 모니터링은 24 시간 이상 지속될 필요가 있습니다. 다시 한 번 전력 소비 결과를 인식합니다. 권장되는 독서 또는 코드 스 니펫을 보내 주시면 감사하겠습니다.안드로이드에서 센서를 지속적으로 모니터링하십시오.

안드로이드 커뮤니티의 지혜에 대한 조언을 구하는 새로운 사용자. 미리 감사드립니다,

스티브

설명 : 나는 가속에 변화가 순간을 감지하려합니다. 내 코드는 축별로 구분되지만 가속도계에서 실시간 데이터를 가져 오는 것이 내 목표입니다.

+0

가속이 BTW 센서입니다. 그것은 당신을 현명하게 끌어낼 수 없습니다. – LordT

+0

@ LordT - 다시 읽으면서 나는 더 잘 표현할 수 있음을 깨달았다. 가속 센서에서 업데이트를 수신하기 위해 맞춤 수신기 인터페이스를 사용하고 있습니다. 그 점을 지적 해 주셔서 감사합니다. – Kingsolmn

+0

오, 알겠습니다. 내가 말했듯이, 서비스를 이용하면 원격 서비스를 사용하면 백그라운드에서 실행할 수 있습니다. – LordT

답변

2

Android Services을 사용하여이 작업을 수행했습니다. 활동에서 시작할 수 있지만 백그라운드에서 계속 실행될 수 있습니다. 그게 아마 당신이 찾고있는거야!
일부 문서들은 Ascii, Html을 제외한 문서 : 안드로이드에

  1. http://developerlife.com/tutorials/?p=356
  2. http://developer.android.com/guide/topics/fundamentals.html#procthread
+0

포스터는 배터리 소모에 관심이 없지만 약간 궁금 해서요. 얼마나 나빴습니까? – Demiurg

+0

나는 정확한 숫자를 기억하지 못한다. 그러나 우리의 전체 셋업을 위해서 우리는 G1에서 약 10 시간을 보낸다. (그러나 그 당시에는 ^^) - 그러나 300Hz 이상에서 심장 박동수와 다른 숫자를 계산하고 블루투스를 통해 전송했다. . 나는 단지 가속도계를 사용하는 것에서 16 시간 이상을 얻었다 고 생각한다 – LordT

+0

장치 최대 절전 모드는 어떨까요? 일단 장치가 절전 모드로 전환되고 해당 센서를 종료하면 센서를 업데이트하지 않습니다. 항상 잠에서 깨어나 보셨습니까? – MikeL

1

특정 스레드를 모니터링하고 대기시키는 것이 대기 기간에 유연성을 제공하는 최상의 솔루션입니다. 이는 특정 서비스가 필요하지 않기 때문에 매우 효율적입니다.

class MonitorThread extends Thread { 
    ... 
    public void run() { 
     for (;;) { 
      long ms = 0; 
      int nanos = 250000; 
      ... // Do something or compute next delay to wait 
      try { 
       Thread.sleep(ms, nanos); 
      } catch (InterruptedException ex) { 
      } 
     } 
    } 
} 

당신은 매우 짧은 지연 (.250 밀리 초)를 지정 그래서 이것은 CPU를 많이 될 것 http://developer.android.com/reference/java/lang/Thread.html

를 참조하십시오. 가속도계의 결과를 사용하여이 지연을 늘리거나 줄일 수 있습니다. 예를 들어, 가속도가 없다는 것을 감지하면 지연을 늘립니다 (최대이지만 100ms는 적당하거나 더 높음). 뭔가를 발견하자마자 지연을 줄이십시오. 이 모든 것은 응용 프로그램에 따라 다릅니다.

+0

안드로이드에서, 정말로 이것을 필요로한다면 저는 정말로 이것을위한 핸들러를 사용할 것입니다! – LordT

+0

@ ciceron- 나는 가속이 바뀌는 순간을 감지하려고 노력 중이다. 내 코드는 축별로 구별되지만 가속도계에서 실시간 데이터를 얻는 것이 목표입니다. 수면 간격을 제어하기 위해 가속 데이터를 사용하는 것에 대해 제안 해 주셔서 감사합니다. – Kingsolmn

관련 문제