>

두 개의 Android 앱의 리소스 소비를 비교하고 있습니다.

  • 앱 A는 가속도계를 사용합니다

  • 앱 B는 가속도계와 자이로 스코프를 모두 사용합니다

이 센서를 읽은 후이 앱은 센서 값에서 일부 처리를 수행합니다. 이제 최고 명령뿐만 아니라 dumpsys cpuinfo를 사용하여 CPU 사용량을 측정했습니다. 일반적으로 App B는 App A보다 3-4 배 더 많은 CPU를 사용합니다. 실제 숫자는 다음과 같습니다. 단일 CPU 및 내 전화에 대한이 결과는 듀얼 코어 1.2GHz Cortex-A9 CPU (Samsung Galaxy S2)를 사용합니다.

App A (Average CPU Usage: 5%)
APP B (Average CPU Usage = 20%)

그런 다음이 두 앱의 배터리 사용률을 측정했습니다. 나는 안드로이드 폰을 비행기 모드로 유지 했으며이 두 응용 프로그램 중 하나만 특정 순간에 실행 중이었습니다. 한 시간 동안 실행하면 다음과 같은 결과가 나타납니다.

Remaining battery level after one hour of use:
Idle mode: 99%  
Running App A: 96%
Running App B: 93%

CPU 사용률에서 관찰 한 것처럼이 배터리 수준과 동일한 비율을 기대하고있었습니다. 또한 스마트 워치 (CPU : Quad-core 1.2 GHz Cortex-A7)에서 이러한 앱을 테스트했으며 배터리 사용간에 더 작은 차이를 관찰했습니다. 1 시간 동안 관찰 한 결과는 다음과 같습니다.

Remaining battery level after one hour of use:
Idle mode: 99%  
Running App A: 87%
Running App B: 85%

내 질문 : 왜이 ​​앱들의 CPU 사용량이 남은 배터리 잔량에 반영되지 않습니까? 아니면 CPU 사용량이 배터리 사용량과 선형으로 관련되어서는 안됩니까? 그 이유는 여러 개의 코어가 동시에 활성화되어 있기 때문에 배터리 수준간에 약간의 차이가있는 이유는 무엇입니까? 추신 :이 앱에서는 부분 잠금을 사용합니다.


  • 답변 # 1

    간단히 말해 배터리 소모량은 CPU뿐만 아니라 장치의 다른 모든 부분에 달려 있습니다.

    전체 버전. SoC는 CPU, GPU, 모뎀, 노스 브리지, 사우스 브리지 및 RAM (이산 반도체 칩에 있지만 동일한 셸에 함께 포장)으로 구성됩니다. 배터리는 SoC뿐만 아니라 센서, 스크린 (일반적으로 가장 전력 소모가 많은 부분) 및 무선 연결 안테나에도 전원을 공급합니다.
    CPU에는 자체 주지사 (Governor)라고하는 자체 성능과 성능을 제어하는 ​​알고리즘이 있습니다. 급진적 CPU 거버너는 높은 배터리 소비 비용으로 더 나은 CPU 성능을 제공하는 경향이있는 반면, 완만 한 거버너는 배터리 소비를 줄이려 CPU 성능이 저하됩니다. GPU 및 SoC의 다른 부분에도 동일하게 적용됩니다.
    화면은 장치에서 배터리를 가장 많이 소비하는 부분 인 경우가 많으며 화면 전력의 가장 결정적인 요소는 크기, 해상도, 밝기 및 기술 (LCD 또는 OLED)입니다. 더 저렴한 휴대폰과 시계는 LCD 화면을 사용하는 반면, OLED는 같은 사양의 LCD보다 훨씬 적은 전력을 사용하므로 고급 제품은 OLED 화면을 사용합니다.
    시계는 일반적으로 배터리 용량이 현저히 적지 만 화면 전력이 적기 때문에 화면이 켜져있는 동안 배터리 통계의 드레인 차이를 줄입니다. 또한 휴대 전화와 시계에 사용 된 센서가 정확히 같지 않아서 다양한 차이가 발생할 수 있습니다.
    결론적으로, 배터리 비용은 CPU가 아닌 장치의 모든 부분에 의해 결정됩니다. 다른 부품이 너무 많은 배터리를 소모하는 경우 CPU의 전력이 매우 다양하더라도 큰 차이를 찾을 수 없습니다.

관련 자료

  • 이전 잠금 화면에서 모든 알림을 비활성화하는 방법
  • 다음 배터리를 다시 시작하기 전에 왜 배터리가 더 많이 충전됩니까?