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>




댓글

이 블로그의 인기 게시물

SSH 연결 Delay 해결

[ELK] search guard를 이용한 보안 설정 (사용자 권한)

공공데이터(openapi) 사용법 (특정 정류소, 버스의 남은 좌석 확인 하기)