Friday, September 20, 2019

Emulator 29.2.1 Canary

Emulator 29.2.1 is now available in the Canary channel. Changes:

Google Maps UI

Previously, it can be hard to work with virtual location settings because of the high barrier of entering lat/lon points manually and finding or generating GPX/KML files. Now, Extended Controls > Location includes an integrated Google Maps view, along with a point selector and route generator.

Individual points can be saved and re-sent to the device as the virtual location, while routes can be generated through typing in addresses or clicking two points. Each route can be replayed; locations along the route are sent in real time (or faster, according to a speed multiplier) to the guest OS. At the same time, GPX/KML can still be imported. Other notes:
  • Known issue: Not yet available on Windows. Further work needs to happen to stabilize the Windows build needed for Google Maps UI on Windows.
  • Known issue: Only available in Canary channel even if 29.2.1 is released to stable. This is so we have more time to get feedback and stabilize the feature.
  • We automatically attempt to fallback to the old UI if an incompatibility or failure to load Google Maps happens.


  • Fixed crash on startup on Linux Wayland systems. This was because XkbGetKeyboard was used to query the host system's keyboard state. Usage of XkbGetKeyboard turns out to be not advisable on Linux Wayland and perhaps in general (for example: https://github.com/glfw/glfw/issues/389)
    • Big thanks to the /r/androiddev community for getting back to us quickly on this with getting stack traces and verifying the fix!
  • Fixed issue where keyboards with different letter mappings than QWERTY (AZERTY, QWERTZ, etc.) would end up typing the original QWERTY-mapped key. The previous unexpected behavior is actually due to a new input system where the emulator only sends raw keycodes to the guest OS; by also changing the Android guest's keyboard type to a different keyboard type, more keyboard types can be tested.
  • Keycode forwarding can still be used, but we need to ensure the Android guest is aware of the host keyboard type.
  • We now require turning that on manually via -feature KeycodeForwarding.
  • A future system image update will automatically apply KeycodeForwarding-related guest side updates so the keyboard types on host and guest always match.
  • On Linux with non-US keyboards, we also found an issue where keycodes were not sent unless keycode forwarding was used. In this case, for now, please change the Android guest's keyboard type to the same keyboard type that you're using.
  • Updated metrics for Multi-Display UI.
  • Linux emulator now statically links libunwind.