2010-12-05 4 views

답변

1

후속 질문에 먼저 대답하기 위해 특정 애플 리케이션을 사용하는 것보다 에너지 효율이나 배터리 수명에 차이가있는 고객이 거의 없습니다. 이것은 앱 스토어 리뷰에서 거의 언급되지 않았습니다. 필자는 애플 리케이션을 테스트하고 사용하는 동안 내 장치의 배터리를 다 쓰고 싶지 않기 때문에 대부분 전력 효율적인 코드를 작성한다. 아이폰 애플 리케이션을위한

제안 : 그것은 (3 세대에 4.x의) 가장 느린 OS와 가장 느린 장치 (아이폰 2G 또는 3G)에서 잘 실행되도록

  1. 앱을 작성합니다. 그런 다음 훨씬 더 빠른 현재 장치에서 유휴 상태가 될 수 있습니다.

  2. 그래픽 루틴에서 이미 그려진 것을 다시 그리지 마십시오. 현지화 된 그래픽 업데이트/변경에는 작은 CALayer 또는 하위보기를 사용하십시오.

  3. 가능한 한 비동기 메서드를 사용하여 앱이 대부분 CPU에서 실행되지 않도록 할 수 있습니다.

  4. (가능한 경우 Foundation 개체 대신) 일반 C 데이터 구조를 사용하고 응용 프로그램의 작업 집합이 매우 제한된 ARM CPU 데이터 캐시에 완전히 상주 할 수 있도록 포장하십시오.

  5. 네트워킹을 필요 이상으로하지 마십시오. 한 번에 최대의 데이터 전송을 가능하게하여 연속적인 소량의 전송이 아닌 앱의 네트워크 사용간에 라디오가 더 오래 끌 수 있습니다.

+0

후속 질문에 대한 귀하의 대답은 제가 염려했던 것입니다. 한 특정 앱의 에너지 효율을 알아 채기가 어렵다면 사람들이 에너지를 효율적으로 사용하지 않기 때문에 앱을 거부하지 않을 것입니다. 그렇다면 개발자가 에너지 사용을 최적화하기 위해 많은 관심을 기울일 동기는 무엇입니까? – evergreen

1

모바일 dev의 에너지 효율은 임베디드 시스템의 메모리 제약 조건과 같습니다.

특히 GPS 앱이 좋기 때문에 GPS가 최소한의 시간 동안 켜져 있는지 확인하십시오. 물론, GPS가 너무 오래 켜진 상태로 유지되는 버그가있을 경우 목록의 맨 위로 이동하여 수정됩니다.

에너지 효율성은 기능만큼이나 중요합니다.

1

특히 응용 프로그램이 백그라운드에서 계속 실행되는 경우 EE가 중요합니다.

가능할 때마다 폴링 메소드를 이벤트 기반 메소드로 대체해야했습니다. 가능한 경우 폴링 빈도를 줄였습니다.

또한 파일 읽기/쓰기를 최소로 줄이면 배터리 소모가 상당히 감소합니다. 오히려 화면 (아이폰 + 안드로이드 핸드셋으로 해당되지 않음) 휴대폰의 CPU

  • 그리기를 사용하는 것보다 낮은 CPU 휴대폰에 대한 서버

  • +0

    답변 해 주셔서 감사합니다. 폴링 메소드를 이벤트 기반 메소드로 대체하는 방법에 대한 예제를 제공 할 수 있습니까? 필자는 파일 읽기/쓰기가 많은 에너지를 사용한다는 것을 깨닫지 못했습니다. 웹의 많은 기사에 따르면 대다수의 에너지는 디스플레이, 라디오 및 wifi와 같은 것들에 의해 사용되기 때문입니다. – evergreen

    1
    1. 프로세스 이미지 + 계산 필요한 경우에만이 아니라 끝없이보다는
    2. 저장 상태가 항상 유지되므로 인터럽트로 인해 응용 프로그램이 백그라운드에 배치되는 경우 중단 된 위치에 응용 프로그램을 입력 할 수 있습니다.
    3. 가능하면 백그라운드에서 실행하지 마십시오? 응용 프로그램에 포커스가있을 때까지 정말로 기다릴 필요가 있습니까?
    4. 거친 위치에서 수행 할 미세 입자 위치 사용 안 함 (GPS 대 셀 위치)
    5. 네트워크 폴링을 저장할 수있는 곳에서 밀어 넣기를 사용하십시오
    0

    내 OpenGL 기반 라이브 월페이퍼에서 배터리 수명은 중요한 문제입니다.

    최소한의 센서 사용을 유지하십시오. 다른 프로필이 많이 있습니다. 필요한 지연을 사용하십시오.

    LWP에서 배터리를 최대화하려면 일반적으로 기본적으로 프레임 지연을 5ms로 설정해야합니다. 이것은 CPU가 프레임간에 긴장을 풀고 사용량을 합리적으로 낮출 수있는 충분한 시간 인 것으로 보입니다. 또한 현재 FPS를 기준으로 시간 제한을 관리하고 FPS 프로필에 고정 할 수 있습니다. 예 : 장치는 60fps를 렌더링 할 수 있지만 30fps로 렌더링하면 절반 만 자고 있습니다.

    게임의 경우 게임에 대해 동일한 작업을 수행 할 수 있습니다. 엔진에 fps 제한을 두어 게임의 위를 지키지 마십시오.

    하드 코어가되고 싶다면 많은 안드로이드 장치에 사용되는 OLED가 어두운 색 대신 밝은 색을 표시하는 데 더 많은 전력을 사용한다는 것을 알아 두십시오. LCD에는 동일한 백라이트가 있지만 OLED에서는 검은 색 픽셀이 효과적으로 꺼져 있고 전원은 사용하지 않습니다. 화면이 어두워 질수록 배터리 수명이 오래 지속됩니다.특정 상황에서 배터리 측면에서 실제로 하드 코어가되고 싶다면 고려해야 할 사항.

    GPS를 사용하지 말고 3G를 사용하지 말고 모든 것을 로컬에서 캐시하십시오.