안드로이드 배터리 사용 시간을 계산하는 방법

[IT동아 남시현 기자] 오늘날, 전력 공급이 필요한 다양한 장치는 리튬이온 배터리를 통해 전력을 공급한다. 리튬이온 전지는 전지 내부에 있는 리튬 이온이 산화 반응을 일으키면서 발생하는 전기를 이용하는 배터리로, 방전 시에는 음극의 전자가 양극으로 흐르고, 충전 시에는 양극의 전자가 음극으로 이동하는 식으로 에너지를 저장한다. 하지만 시간이 지날수록 내부의 화학물질이 노후 하며, 전력 효율이 떨어진다. 장치 하나를 오랫동안 썼을 때 배터리가 더 빨리 소모되는 이유가 여기에 있다. 특히 배터리 교체가 어려운 데다가, 매일 충전해야 하는 배터리 일체형 스마트폰은 이러한 배터리 소모를 더욱 빠르게 체감할 수 있다.

안드로이드 배터리 사용 시간을 계산하는 방법
일체형 배터리가 적용된 이후, 일반 사용자가 내장 배터리의 전체 수명을 확인하기가 어려워졌다. 출처=IT동아

하지만 시간이 지나더라도 스마트폰 상에 표기되는 전력의 전체 퍼센트에는 변함이 없다. 처음 구매했을 때 100%에서 0%까지 24시간이 걸리던 스마트폰이 1년이 지나 100%에서 0%까지 18시간이 걸려도, 스마트폰에 표기되는 퍼센트는 동일하다. 배터리가 소모되는 속도나 퍼센트가 이를 제대로 반영하지 못하는 것이다. 그래서 스마트폰이나 노트북은 전체 배터리의 충전 효율을 구분하기 위해 별도로 수명을 체크한다. 이 항목을 확인할 수 있다면 본인 스마트폰의 배터리 수명이나 교체 주기를 파악할 수 있고, 중고 거래 시 배터리 수명을 확인하면서 구매할 수 있다. 안드로이드 스마트폰과 애플 아이폰의 배터리 수명 확인 방법을 하나하나 짚어본다.

배터리 수명 간편 확인부터 사이클 상세 확인까지 가능한 애플 아이폰

안드로이드 배터리 사용 시간을 계산하는 방법
간단히 설정-배터리-배터리 성능 상태로 진입해 배터리 성능을 확인할 수 있다. 출처=IT동아

애플 기기의 배터리 수명은 모두 ‘배터리 사이클’이라는 개념을 도입하고 있다. 배터리가 100%에서 0%까지 방전되는 주기를 1 사이클로 계산한다. 중간 중간 충전을 거듭하고 사용하더라도, 전체 합이 100%가 되는 경우만 사이클로 계산하는데, 아이팟은 400회, 아이폰은 500회를 넘어갈 때 원래 최대 80% 수준을 낸다. 하루 1회 1사이클을 사용한다면 약 1년 6개월이 되는 시점에 배터리 성능이 80% 정도가 된다는 의미다. 애플워치와 아이패드, 맥북은 1,000 사이클이 지난 시점에서 80%를 유지한다. 이 수치는 어디까지나 ‘최대 80%’이므로 실체 체감하는 배터리 성능 저하는 다르다.

맥북의 경우 설정에 진입해 배터리 사이클을 곧바로 확인할 수 있지만, 이를 제외한 기기는 기계 내에서 사이클을 곧바로 확인할 수 없다. 대신 아이폰 6 및 iOS 11.3 이후 버전은 배터리 성능을 간단히 확인할 수 있는 메뉴가 제공된다. 해당 기능은 설정에 진입 후 배터리, 배터리 성능에서 ‘배터리 잔량 표시(%)를 통해 확인할 수 있으며, 약 80%로 표기되는 기준이 1,000 사이클인 상태라고 보면 된다.

안드로이드 배터리 사용 시간을 계산하는 방법
배터리 사이클을 정확히 확인하기 위해선 Log 데이터를 확인해야 한다. 로그 취득 방법은 아래 설명에 따른다. 출처=IT동아

복잡하지만, 정확한 사이클 수도 확인할 수 있다. 아이폰 설정에서 ‘개인 정보 보호’를 진입한 다음 아래에 있는 ‘분석’으로 진입한다. 진입한 메뉴에서 iPhone 및 Watch 분석 공유를 활성화가 회색으로 꺼져있다면 분석 공유를 켜고 최소 몇 시간에서 며칠이 지나야 한다. 만약 켜져 있다면 곧바로 ‘분석 데이터’를 진입해 ‘log-aggregated-0000년-00월-00일-시간-ips’로 돼있는 항목 중 가장 시간이 최신인 데이터에 진입한다. 그 다음 내용을 전체 복사하고 메모장에 붙여넣는다.

안드로이드 배터리 사용 시간을 계산하는 방법
log-aggregated에서 ‘검색’ 기능을 지원하는 내용으로 내용을 보낸 다음, 검색으로 ‘BatteryCycleCount’를 검색해 확인한다. 출처=IT동아

해당 데이터를 컴퓨터나 메모상태에서 ‘검색’ 기능을 켜고 검색창에 ‘BatteryCycleCount’ 항목을 검색한다.<키>com.apple.ioreport.BatteryCycleCount 아래 있는 숫자에 있는 숫자가 정확한 배터리 사이클이다. 복잡하긴 해도 이 방법을 통해 아이폰의 내장 배터리 수명을 확인할 수 있다.

안드로이드 스마트폰의 배터리 수명, ‘AccuBattery’로 추측하자

안드로이드 스마트폰은 시스템상에서 별도로 배터리 수명을 보여주지 않으며, 사이클도 확인할 수 없다. 삼성 스마트폰의 경우 삼성 맴버스 앱의 ‘인터렉티브 진단’을 통해 대략적인 배터리 상태를 확인할 수 있지만, 해당 정보는 배터리에 치명적인 성능 저하만 없다면 대체로 ‘좋음’이라 표기되므로 배터리 성능을 확인하는 데 도움이 되진 않는다.

안드로이드 배터리 사용 시간을 계산하는 방법
AccuBattery 설치 후 아래 ‘예상 배터리 용량’을 통해 추정 용량을 확인할 수 있다. 충전 횟수가 늘어날수록 용량을 더 자세히 확인할 수 있다. 출처=IT동아

정확하진 않지만 ‘AccuBattery’라는 앱의 도움을 받으면 배터리 수명에 대한 근사치를 확인할 수 있다. AccuBattery는 구글 플레이스토어에서 검색해 다운로드 할 수 있고, 배터리 소모율과 유지 시간, 충전 상태 및 전류, 온도, 전압 등을 면밀히 분석하는 앱이다. 해당 앱을 설치하고 가장 아래로 스크롤을 내리면 ‘예상 배터리 용량’ 항목이 있다. 배터리 용량 수치는 약 5% 이상 배터리를 충전하면서 설계 용량과 실제 저장 용량을 비교해 배터리 수명을 추정하는 기능이다. AccuBattery가 켜진 상태에서 배터리가 약 5% 충전될 때까지 충전한다. 해당 추정치는 배터리 충전기에 따라 다르므로 가급적 정품 충전기와 케이블을 사용하는 것이 좋다.

5%가 지나면 추정 용량이 확인되며, 아래 하트 모양의 ‘수명’을 통해 더 자세한 정보를 확인할 수 있다. 수명 탭은 배터리 설계 용량 대비 수명을 퍼센트 단위로 표기해주며, 장기적으로 사용 시 더욱 정확한 배터리 수명 값을 얻을 수 있다.

글 / IT동아 남시현 ()

컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

배터리 사용 정보는 배터리 사용 통계 및 전력 프로필 값에서 파생됩니다.

배터리 사용 통계

프레임워크는 기기 구성요소가 여러 상태로 있었던 시간을 추적하여 배터리 사용 통계를 자동으로 파악합니다. 구성요소(Wi-Fi 칩셋, 셀룰러 라디오, 블루투스, GPS, 디스플레이, CPU)가 상태를 변경하면(OFF/ON, 유휴/전출력, 밝기 낮음/높음 등) 제어 중인 서비스가 프레임워크 BatteryStats 서비스에 이를 보고합니다. BatteryStats는 시간 경과에 따른 정보를 수집하고 이를 저장하여 재부팅 전체에 활용합니다. 서비스는 배터리 전류 소모량을 직접적으로 추적하지는 않지만 대신 여러 구성요소에 의한 대략적인 배터리 소모를 파악하는 데 사용할 수 있는 시기 정보를 수집합니다.

프레임워크는 다음과 같은 방식을 사용하여 통계를 수집합니다.

  • 푸시. 구성요소 변경을 인식하는 서비스가 상태 변경을 BatteryStats 서비스로 푸시합니다.
  • . 앱에서 사용하는 CPU와 같은 구성요소와 관련하여 프레임워크는 전환 지점의 데이터를 자동으로 풀링하여(에: 활동 시작 또는 중지) 스냅샷을 캡처합니다.

리소스 소모는 리소스를 사용 중인 애플리케이션과 관련이 있습니다. 여러 애플리케이션이 동시에 리소스를 사용하는 경우(예: 시스템 정지를 예방하는 wake lock) 프레임워크는 여러 애플리케이션에 걸쳐 소모량을 분산시키지만 소모량이 균일하지는 않습니다.

종료된 이벤트에 관한 사용 통계이 손실되어 배터리 전력 소모 문제가 발생하는 불상사(예: 배터리 잔량이 0에 도달하여 종료가 발생하는 경우)를 피할 수 있도록 프레임워크에서는 약 30분마다 통계를 플래시합니다.

배터리 사용 통계는 전적으로 프레임워크에 의해 처리되며 OEM 수정은 필요없습니다.

전력 프로필 값

주의: 기기 제조업체는 구성요소의 전력 소모량 값과 시간 경과에 따른 대략적인 배터리 소모를 정의하는 구성요소 전력 프로필을 제공해야 합니다. 이 프로필은 platform/frameworks/base/core/res/res/xml/power_profile.xml에 정의되어 있습니다. 이 설정에 대한 정보는 전력 값을 참조하세요.

전력 프로필 내에는 전력 소모량이 전류 소모량의 밀리앰프(mA)(최소 전압 시)로 지정되며, 마이크로암페어(uA)에 지정된 소수 값일 수 있습니다. 값은 배터리에서 소모된 전류에 해당하는 파워 레일에 적용 가능한 값이 아닌 배터리에서 소모된 mA여야 하합니다.

예를 들어 디스플레이 전력 프로필은 디스플레이를 최소 밝기 및 최대 발기로 유지하는 데 필요한 전류의 mA를 지정합니다. 디스플레이를 켠 상태로 유지하기 위한 전력 소모량(디스플레이 구성요소에 의해 사용된 배터리)을 파악하기 위해 프레임워크는 각 밝기 수준에서 소비된 시간을 추적한 다음 이러한 시간 간격을 보간된 디스플레이 밝기 비용으로 곱합니다.

프레임워크 역시 각 애플리케이션의 CPU 타입에 특정 속도에서 CPU를 실행하는 데 필요한 mA를 곱합니다. 이 계산은 CPU 코드 실행으로 애플리케이션에서 소모한 배터리 양에 대한 경쟁 순위를 수립합니다(포그라운드 앱과 백그라운드 활동을 포함한 총 시간이 따로 보고된 시간).

Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Last updated 2022-09-02 UTC.

[{ "type": "thumb-down", "id": "missingTheInformationINeed", "label":"필요한 정보가 없음" },{ "type": "thumb-down", "id": "tooComplicatedTooManySteps", "label":"너무 복잡함/단계 수가 너무 많음" },{ "type": "thumb-down", "id": "outOfDate", "label":"오래됨" },{ "type": "thumb-down", "id": "translationIssue", "label":"번역 문제" },{ "type": "thumb-down", "id": "samplesCodeIssue", "label":"샘플/코드 문제" },{ "type": "thumb-down", "id": "otherDown", "label":"기타" }] [{ "type": "thumb-up", "id": "easyToUnderstand", "label":"이해하기 쉬움" },{ "type": "thumb-up", "id": "solvedMyProblem", "label":"문제가 해결됨" },{ "type": "thumb-up", "id": "otherUp", "label":"기타" }]