관리 메뉴

나만을 위한 블로그

[Manifest-Android] 21. ActivityManager 본문

스터디

[Manifest-Android] 21. ActivityManager

참깨빵위에참깨빵_ 2025. 7. 9. 13:24
728x90
반응형

안드로이드의 시스템 서비스. 기기에서 실행 중인 액티비티, Task, 프로세스 정보를 제공 및 관리한다.

안드로이드 프레임워크의 일부로 개발자가 앱 생명주기, 메모리 사용량, Task 관리 관련 측면을 상호작용하고 제어할 수 있게 한다.

 

주요 기능

 

  • Task, 액티비티 정보 : 실행 중인 Task, 액티비티, 이것들의 스택 상태의 세부정보를 가져올 수 있다. 개발자가 앱 동작을 모니터링하고 시스템 리소스 사용량을 파악할 수 있게 한다
  • 메모리 관리 : 시스템 전체의 메모리 사용량 정보를 제공하고 앱 별 메모리 소비량, 시스템 전체 메모리 상태를 포함한다. 앱 성능을 최적화하고 low memory 상황을 처리할 수 있다
  • 앱 프로세스 관리 : 실행 중인 앱 프로세스, 서비스 세부 정보를 쿼리할 수 있다. 앱 상태 감지나 프로세스 수준 변경에 대응할 수 있다
  • 디버깅, 진단 : 힙 덤프 생성 or 앱 프로파일링 같은 디버깅 도구를 제공해서 병목 현상, 메모리 누수 식별에 도움이 된다

 

공통 함수

 

  • getRunningAppProcesses() : 현재 기기에서 실행 중인 프로세스 리스트 리턴
  • getMemoryInfo(ActivityManager.MemoryInfo memoryInfo) : 시스템 메모리 상태의 자세한 정보 리턴. 사용 가능한 메모리, 메모리 임계값, 기기가 low memory 상태인지 여부 등을 포함한다. 이 정보는 low memory일 때 앱 동작을 최적화하는 데 유용하다
  • killBackgroundProcesses(String packageName) : 지정된 앱의 백그라운드 프로세스를 종료해서 시스템 리소스를 해제한다. 리소스 집약적 앱 테스트, 관리에 유용
  • isLowRamDevice() : 기기가 저용량 RAM 기기로 분류되었는지 확인해서 저메모리 기기에서 앱의 리소스 사용을 최적화하는 데 도움
  • appNotResponding(String message) : 테스트 목적으로 App Not Responding (ANR) 이벤트를 시뮬레이션. 디버깅 시 ANR 상황에서의 앱 동작이나 반응을 이해하는 데 사용 가능
  • clearApplicationUserData() : 앱 관련 모든 사용자 특정 데이터를 삭제. 파일, DB, 쉐어드 등이 포함됨 공장 초기화나 앱을 기본 상태로 복원 시 자주 사용

 

LeakCanary에서 ActivityManager

 

LeakCanary는 앱 메모리 누수 탐지 라이브러리다. 개발 과정에서 메모리 누수를 자동 모니터링하고 탐지해서 자세한 분석, 실행 가능한 인사이트를 제공해서 메모리 누수 수정에 도움을 준다. 이 라이브러리도 메모리 상태, 정보를 추적하기 위해 ActivityManager를 사용한다.

반응형
Comments