2011-01-23 11 views
1

전경에서 오랫동안 실행되는 응용 프로그램은 시간이 더 많이 걸릴 것입니다? 내 문제를 설명합니다. Android에서 고정 인프라와 통신하기 위해 소프트웨어를 포팅했습니다. 나는 몇 가지 검사를하고있다. 각 테스트는 5 번의 실험을 수행합니다 (모바일 노드는 인프라에 몇 가지 쿼리를 보내 성공한 쿼리 수와 평균 시간을 평가합니다). 테스트 결과는이 실험 결과의 평균입니다. 테스트하는 동안 응용 프로그램은 항상 포 그라운드에 있습니다. 실험 결과는 e. 지. (검색어 확인의 10 % 15 % 30 % 40 % 55 %). 나는 시스템을 활동으로 구현했지만 아직 서비스로 구현하지는 않았다. 테스트를 위해 앱에서 잠금 SCREEN_DIM_WAKE_LOCK 및 WIFI_MODE_FULL을받습니다. 감사합니다.응용 프로그램 우선 순위

+0

마지막 실험에서 종종 응용 프로그램이 OutOfMemoryError를 제공합니다. 실험 도중 앱의 힙 크기 (DDMS로 모니터링 됨)가 커집니다. 프로세스가 충분한 메모리를 얻는다면 더 나아지고 어떤 시점에서는 너무 많은 메모리가 필요하며 OS에 의해 죽는 것처럼 보입니다. – Luigi

답변

0

우선 순위가 더 높아지지는 않을 것이며, ui 스레드에서 그렇게해서는 안됩니다.

은 몇 가지 문제가 있습니다

  • 사용자가 응용 프로그램을 기각 할 수 있으며 중요한 업로드 과정은 취소/일시 중지됩니다. 해산 된 후에도 논리를 재실행 할 수 있지만이 경우 이해가되지 않습니다.
  • 사용자가 앱을 닫으면 OS에 의해 닫힐 수 있습니다.
  • 업데이트하지 않고 화면을 떠날 수도 있습니다. 그런 경우 업데이트를 강제 종료 할 수 있습니다.
  • 안드로이드의 다음 버전에서 AFAIK를 사용하면 UI 스레드에서 넷 로직을 사용하면 FC를 얻을 수 있습니다. Gingerbread의 엄격 모드와 비슷합니다.

Service을 사용하고 최대 우선 순위의 스레드를 생성합니다. 안드로이드의 쓰레드에 최대 우선 순위를 설정하는 것이 어떤 차이를 만들지는 모르겠지만 잘 모르겠습니다.

+0

고마워. 난 이미 분리 된 스레드에 정교를 넣어 우선 순위를 변경하려고했습니다. 나는 성능 테스트를 위해서만 애플리케이션을 일시적으로 활동 상태로 남겼다. – Luigi