Android Emulator에서 snapshot 사용하기 (command line 으로)
1. 목적
- Android Emulator의 command line으로 snapshot 기능 사용하기
- Android SDK의 GUI형식으로 snapshot 기능을 쉽게 사용할 수 있다
그러나 Command Line으로는 가이드가 잘 되어 있지 않다
2. 과정
0) 테스트 환경
- Android JB 전체 full 소스 개발 환경에서 수행한다
- 아래와 같이 선행 작업은 수행된 쉘 상태 이다
- # source build/envsetup.sh
- # lunch full-eng
1) snapshot으로 활용할 이미지 파일 만들기
- [android-jb]# qemu-img create -f qcow2 snap.img 2G
Formatting 'snap.img', fmt=qcow2 size=2147483648 encryption=off cluster_size=65536
2) 위에서 생성한 이미지를 가지고 emulator 실행
- [android-jb]# emulator -snapstorage ./snap.img
3) snapshot 이미지 생성 및 확인
- 부팅이 완료된 시점에 "boot-complete" 이라는 이름으로 snapshot 생성 및 확인
- # telnet localhost 5554
...
OK
avd snapshot save boot-complete
OK
avd snapshot list
Snapshot devices: ide0-hd1
Snapshot list (from ide0-hd1):
ID TAG VM SIZE DATE VM CLOCK
1 boot-complete 438M 2012-10-25 00:06:25 00:02:17.244
OK
4) 위에서 생성한 "boot-complete" snapshot으로 emulator 바로 부팅하기
- [android-jb] # emulator -snapstorage ./snap.img -snapshot boot-complete
- 2~5초 안에 부팅되는 것을 확인할 수 있다.
3. Appendix
- snapshot 정보 파일 (자동 생성됨)
[android-jb]# cat snap.img.boot-complete.ini
hw.cpu.arch = arm
hw.cpu.model = cortex-a8
hw.ramSize = 512
hw.screen = touch
hw.mainKeys = yes
hw.trackBall = yes
hw.keyboard = no
hw.keyboard.lid = no
hw.keyboard.charmap = qwerty2
hw.dPad = yes
hw.gsmModem = yes
hw.gps = yes
hw.battery = yes
hw.accelerometer = yes
hw.audioInput = yes
hw.audioOutput = yes
hw.sdCard = yes
disk.cachePartition = yes
disk.cachePartition.size = 66m
hw.lcd.width = 320
hw.lcd.height = 480
hw.lcd.depth = 16
hw.lcd.density = 160
hw.lcd.backlight = yes
hw.gpu.enabled = no
hw.camera.back = emulated
hw.camera.front = none
vm.heapSize = 48
hw.sensors.proximity = yes
hw.sensors.magnetic_field = yes
hw.sensors.orientation = yes
hw.sensors.temperature = yes
kernel.path = /home/dkyun77/dev/android-jb/prebuilts/qemu-kernel/arm/kernel-qemu-armv7
kernel.parameters = android.checkjni=1
disk.ramdisk.path = /home/dkyun77/dev/android-jb/out/target/product/generic/ramdisk.img
disk.systemPartition.initPath = /home/dkyun77/dev/android-jb/out/target/product/generic/system.img
disk.systemPartition.size = 204m
disk.dataPartition.path = /home/dkyun77/dev/android-jb/out/target/product/generic/userdata-qemu.img
disk.dataPartition.size = 200m
disk.snapStorage.path = ./snap.img
avd.name = <build>
댓글
댓글 쓰기