becoming more effective with the android ...more...becoming more effective with the android emulator...
TRANSCRIPT
P RE SENTED BY
LU IS DE LA ROSAD IREC T OR OF T EC HNOLOGY
BECOMING MORE EFFECTIVEWITH THE ANDROID EMULATOR
@louielouie
AnDevCon San Francisco 2013
AKA
ANDROID EMULATOR MYTHS.. .
BUSTED!2.1
WHAT YOU WILL LEARN
Engineers f rom many companies have been working hard on making it better. . .but they don’t get 1 hour Broadway Launch Events to show it off.
THE EMULATOR IS WAY, WAY BETTER THAN YOU EVER THOUGHT
- SPEED UP THE EMULATOR
- KNOW YOUR OPTIONS
- BEND THE EMULATOR TO YOUR WILL
WHAT YOU WILL LEARN IN DETAIL
LET’S DEMYSTIFY THIS
Android Virtual Device Manager > New.. .
MYTH #1: NON-NEXUS DEVICES CAN’T BE EMULATED
EMULATING THE AMAZON KINDLE FIRE
Android SDK ManagerTools > Manage Add-On Sites. . .User-defined Sites, New.. .
http://kindle-sdk.s3.amazonaws.com/addon.xml
MYTH #1: NON-NEXUS DEVICES CAN’T BE EMULATED
BUSTED!
MYTH #1: NON-NEXUS DEVICES CAN’T BE EMULATED
MYTH #1: NON-NEXUS DEVICES CAN’T BE EMULATED
MYTH #1: NON-NEXUS DEVICES CAN’T BE EMULATED
NEXUS DEVICES ARE GOOD
MYTH #2: EMULATOR IS SLOW
STARTUP TIME ON2011 13” MACBOOK PRO2.3 GHZ I5 + SSD UPGRADE:
CONFIRMED?
3:40
MYTH #2: EMULATOR IS SLOW
ON SUBSEQUENT STARTS:
PLAUSIBLE?
1:10
MYTH #2: EMULATOR IS SLOW
MOST ANDROID DEVICES RUN ARM
THE ANDROID EMULATOR TOO
BUT ARM EMULATION ON INTEL IS SLOW
WHY ARM IMAGE?
ACCURATE EMULATION
COMPARE TO IOS SIMULATOR
TRANSITION TO X86 PRESERVED ACCURACY
PROBLEM
ARM SYSTEM IMAGE
QEMU
X86 CHIP
SOLUTION
X86 SYSTEM IMAGE
VIRTUAL MACHINE (HAXM)
X86 CHIP WITH VT-X
VT-X EXPLAINED
ACCELERATES X86-BASED VIRTUAL MACHINES IN HARDWARE
MUST BE ENABLED IN BIOS
AMD HAS SIMILAR AMD-V
MYTH #2: EMULATOR IS SLOW
INTEL ATOM X86SYSTEM IMAGE
MYTH #2: EMULATOR IS SLOW
INTEL ATOM X86SYSTEM IMAGE
Available for 2.3.3 (10), 4.0.3 (15), 4.1.2 (16),4.2.2 (17) and 4.3 (18); 4.4 is in development
MYTH #2: EMULATOR IS SLOW
INTEL ATOM X86SYSTEM IMAGE
HAXM EXPLAINED
HARDWARE ACCELERATED EXECUTION MANAGER
A CUSTOM VIRTUAL MACHINE FOR THE ANDROID EMULATOR
MYTH #2: EMULATOR IS SLOW
HAXM MAKES EMULATOR RUN CLOSE TO NATIVE SPEED
MYTH #2: EMULATOR IS SLOW
INSTALLING HAXM STEP 1
MYTH #2: EMULATOR IS SLOW
INSTALLING HAXM STEP 2
<sdk>/extras/intel/Hardware_Accelerated_Execution_Manager/IntelHAXM.dmg (or .exe on Windows)
Need to install HAXM in addition to the Android add-in.
MYTH #2: EMULATOR IS SLOW
INSTALLING HAXM STEP 3
MYTH #2: EMULATOR IS SLOW
BEACON MOUNTAIN
All-in-one install
h!p://so"ware.intel.com/en-us/vcsource/tools/beaconmountain
Includes Android SDK, Eclipse, ADT, HAXM, NDK
MYTH #2: EMULATOR IS SLOW
ON LINUX, USE KVMINSTEAD OF HAXM
emulator -avd <avd_name> -qemu -m 512 -enable-kvm
SOLUTION (LINUX)
X86 SYSTEM IMAGE
QEMU + KVM
X86 CHIP WITH VT-X
MYTH #2: EMULATOR IS SLOW
HAXM MAKES EMULATOR RUN CLOSE TO NATIVE SPEED
HAX is working and emulator runs in fast virt mode
Look in LogCat for:
MYTH #2: EMULATOR IS SLOW
STARTUP TIME WITHX86 SYSTEM IMAGE + HAXM ON 2011 13” MACBOOK PRO2.3 GHZ I5 + SSD UPGRADE:
BUSTED!0:21
MYTH #2: EMULATOR IS SLOW
ON SUBSEQUENT STARTSX86 SYSTEM IMAGE + HAXM:
DOUBLE BUSTED!!
0:17
MYTH #2: EMULATOR IS SLOW
ON SUBSEQUENT STARTSX86 SYSTEM IMAGE + HAXM+ LAUNCH FROM SNAPSHOT:
MYTH #2: EMULATOR IS SLOW
ON SUBSEQUENT STARTSX86 SYSTEM IMAGE + HAXM+ LAUNCH FROM SNAPSHOT:
TRIPLE BUSTED!!!
0:06
MYTH #3: DEVICES ARE BETTER FOR PROFILING
HAXM/KVM LEVERAGES YOUR DESKTOP/LAPTOP CPU
Intel x86 vs ARMv7
Different goals: Performance vs ba"ery life
Side-effects: Heat
MYTH #3: DEVICES ARE BETTER FOR PROFILING
EXPERIMENTAL GPU ACCELERATION LEVERAGES
YOUR VIDEO CHIPSET
Note: does not play well with Snapshot
MYTH #3: DEVICES ARE BETTER FOR PROFILING
TOO FAST?
File I/O can be much slower with SD vs SSD or HDD
Profiling should be done on Devices
CONFIRMED
BRIEF MYTH INTERLUDE
KEYBOARD & SKIN
NO KEYBOARD
NO SKIN WITH CONTROLS
MEMORY & STORAGE SIZING
TALKING TO YOUR COMPUTER
10.0.2.2
KEYBOARD SHORTCUTSRotate - Control-F11
Home - Home (Fn-le# on Mac)
Back - Esc
Menu - F2
DON’T SEE EMULATOR?
adb kill-server
adb devices
(note that adb is restart implicitly)
MYTH #4: ANDROID EMULATOR IS LIMITED
It takes work to emulate a device and some things have not been built yet:
PLAUSIBLE
Bluetooth
USB
MYTH #4: ANDROID EMULATOR IS LIMITED?
But it can do things that a device can’t easily do.
EMULATOR CONSOLEtelnet localhost 5554
Note: need to enable telnet in Windows 7/8
MYTH #4: ANDROID EMULATOR IS LIMITED?
Why 5554?
EMULATOR LISTENS TO A PORT
> adb devices
List of devices a"ached emulator-5554 device
MYTH #4: ANDROID EMULATOR IS LIMITED?
INBOUND CALL
gsm call 15558675309
MYTH #4: ANDROID EMULATOR IS LIMITED?
INBOUND SMS
sms send 15558675309 "It's me, Jenny"
MYTH #4: ANDROID EMULATOR IS LIMITED?
ENABLING POWER CHANGESIn <avd_home>/avd/<avd_name>.avd/config.ini:
change hw.ba"ery=noto
hw.ba"ery=yes
Otherwise: crash!
MYTH #4: ANDROID EMULATOR IS LIMITED?
ENABLING POWER CHANGES
MYTH #4: ANDROID EMULATOR IS LIMITED?
“No support for determining ba"ery charge level and AC charging state.”
- Android Emulator Documentation
BUSTED!
MYTH #4: ANDROID EMULATOR IS LIMITED?
FULL SPEED AHEAD!
power capacity 100power ac on
MYTH #4: ANDROID EMULATOR IS LIMITED?
ALMOST EMPTYpower ac off
power status dischargingpower capacity 10
MYTH #4: ANDROID EMULATOR IS LIMITED?
SAY CHEESE!
MYTH #4: ANDROID EMULATOR IS LIMITED?
EMULATED CHEESE
MYTH #4: ANDROID EMULATOR IS LIMITED
Experimental tethering support for:
Hardware Sensors
Multi-Touch
MYTH #5: DEVICE IS BETTER FOR DEBUGGING
Emulator is like a Rooted Device
BUSTED
without voiding your warranty
MYTH #5: DEVICE IS BETTER FOR DEBUGGING
You can’t normally browse internal data at /data/data
MYTH #5: DEVICE IS BETTER FOR DEBUGGING
You can pull a file and verify
MYTH #5: DEVICE IS BETTER FOR DEBUGGING
Unit Tests run faster on Emulator (due to CPU)
Your physical keyboard is easier to use than virtual
Can click with mouse instead of touching
MYTH #5: DEVICE IS BETTER FOR DEBUGGING
Sometimes you don’t have a device
Le# it at home
On the plane
The Next Big Thing
Presentation
MYTH #5: DEVICE IS BETTER FOR DEBUGGINGThe Next Big Thing
MYTH #5: DEVICE IS BETTER FOR DEBUGGINGThe Next Big Thing
MYTH #5: DEVICE IS BETTER FOR DEBUGGINGThe Next Big Thing
MYTH #5: DEVICE IS BETTER FOR DEBUGGINGThe Next Big Thing
BREAKING NEWS: GENYMOTION
Released yesterday (11/13/2013)
Runs on both Intel’s VT-x and AMD’s AMD-V
May be the future of Android emulation
Commercial alternative to existing emulator options
Built on the open source project AndroVM
GENYMOTION: USES VIRTUALBOX
Like HAXM, but different.Don’t try to use both at the same time.
SOLUTION (GENYMOTION)
X86 SYSTEM IMAGE
VIRTUAL MACHINE (VIRTUALBOX)
X86 CHIP WITH VT-X
GENYMOTION LETS YOU SKIP THE AVD CONFIGURATION SCREEN
GENYMOTION ADDS VISUAL CONTROLS
GENYMOTION SHELL: THE ALTERNATIVE TO EMULATOR CONSOLE
WHICH TO USE?
TRY BOTH HAXM AND GENYMOTION
QUESTIONS
?Luis de la RosaDirector of Technology, savvy appsh!p://savvyapps.comEmail: [email protected]!er: @louielouieGoogle: google.com/+luisdelarosa
Presentation, notes and links:luisdelarosa.com/emulator
HTTP://SAVVYAPPS.COM/
COME DO THE BEST WORK OF YOUR CAREER
luisdelarosa.com/emulator