가상폰 관련 버그
https://vnfmstjfxkd.tistory.com/m/590 에뮬레이터에서 겪고 계신 현상은 안드로이드 개발자라면 한 번쯤은 반드시 마주하게 되는 '스냅샷 오염(Snapshot Corruption)' 이슈입니다. 특히 최근처럼 API 36 같은 최신 시스템 이미지를 사용하고 Intel Iris Xe 같은 통합 그래픽 환경에서는 더욱 빈번하게 발생합니다. 질문하신 내용들을 바탕으로 스냅샷의 원리와 왜 문제가 반복되는지 정리해 드립니다. 1. 스냅샷(Snapshot)이란 무엇인가? 스냅샷은 말 그대로 **'에뮬레이터의 현재 상태를 사진 찍듯 저장해두는 기능'**입니다. 게임기의 '강제 저장(Save State)'이나 PC의 '최대 절전 모드(Hibernate)'와 원리가 같습니다. * 작동 원리: 에뮬레이터를 끌 때 메모리(RAM)의 데이터, CPU의 레지스터 상태, 그리고 GPU의 렌더링 상태를 그대로 디스크 파일(snapshots.img)로 덤프(Dump)합니다. * Quick Boot: 다음 실행 시 처음부터 부팅 과정을 거치지 않고, 저장된 파일을 메모리로 바로 올립니다. 덕분에 2~3초 만에 이전에 작업하던 화면이 바로 뜨게 됩니다. 2. 왜 버그가 발생하고, 왜 흔한가요? 스냅샷 버그는 '저장된 시점의 환경'과 '불러오는 시점의 환경'이 어긋날 때 발생합니다. 이는 아주 흔한 버그이며 주된 이유는 다음과 같습니다. * GPU 가속의 민감성: 스냅샷은 GPU의 텍스처 정보와 상태까지 저장하려고 시도합니다. 그런데 PC의 그래픽 드라이버가 업데이트되었거나, 에뮬레이터 설정(Renderer)을 바꾼 채로 스냅샷을 로드하면 GPU 경로가 꼬이면서 **검은 화면(Black Screen)**이 나옵니다. * API 버전의 불안정성: 지금 사용 중인 API 36은 매우 최신 버전입니다. 구글에서도 최신 API의 호스트 GPU 가속 로직을 계속 수정 중이라, 스냅샷 저...