본문 바로가기

C++ & etc

Android Device Temperature Checker

 

 

https://github.com/eatGinseng/AndroidTools/tree/main/LogAndroidGraph

 

AndroidTools/LogAndroidGraph at main · eatGinseng/AndroidTools

Tools for Profiling / Optimizing Game for Android Devices - eatGinseng/AndroidTools

github.com

 

모바일 게임을 개발하다 보면 필연적으로 기기의 발열 문제와 만나게 된다.

기기의 온도는 logcat 으로 확인할 수 있다 - 별다른 설정 없이도 1초 간격으로 "heatmap" 이라는 태그를 달아 로그에 출력해 준다.

텍스트 형태로는 시간에 따른 변화를 한눈에 추적, 비교하기 어려웠기 때문에, 로그를 기반으로 그래프를 그려주는 툴을 작성하게 되었다. (Claude Code 사용)

그래프를 그리는 데는 matplotlib을 사용하는데, 프로그램 구동 시점에서 라이브러리가 없을 경우 설치 여부를 묻고 자동으로 설치해 준다. 

 

이 툴은 아래와 같은 방법으로 사용되었다.

  • 발열 정도를 측정하고 싶은 게임 피쳐를 정한다. 이를테면 특정 PostProcess 이거나, 특정 UI 요소일 수도 있다. 또는 World에 대량으로 배치된 요소들의 복잡한 셰이더 연산일 수 있다.
  • 위에서 선정한 피쳐를 켠 상태의 발열 그래프를 측정한다.
    컴퓨터와 기기를 올바르게 연결한 상태에서 피쳐 이름을 Test Name으로 입력하고 (예 : Test_Postprocess),
    Log Start 버튼으로 바로 Log 수집 및 그래프 그리기를 시작한다.
  • 충분히 시간이 지나고 Log Stop 버튼으로 수집을 중단한다.
  • 이번에는 해당 피쳐를 끄고, 다시 Log Start로 로그를 수집한다.
    이전에 그려진 그래프에 새로운 그래프가 그려진다. 구분하기 쉽도록 자동으로 다른 색상으로 그린다.
  • 같은 시간동안 측정한 그래프 변화를 확인한다.
    테스트 시작 시점에서 기기 온도가 다를 경우, 온도가 올라가는 속도를 비교하기 애매할 수 있다.
    최대한 같은 지점에서 시작하려고 시도하였다.
  • Delta Mode를 사용하면 그래프가 항상 0에서부터 시작하고, 같은 시간 내에서 기기 온도의 변화량만을 비교할 수 있다.
  • Load Graph로 이미 수집된 로그를 불러와서 그래프에 그리는 것도 가능하다.
    현재 그려진 그래프들의 속성은 창 오른쪽 부분에서 제어할 수 있다.