Surface Duo Blog
Build great Android experiences, from AI to foldable and large-screens.
Latest posts

Adapting to Android multi-window and foldable devices
Hello Android developers! Although multi-window support was first introduced in Android 7 (API 24), many developers are only recently starting to adapt their code to this feature as dual-screen, foldable, and large-screen devices are becoming more common. If you’re considering adapting your apps for the latest larger-screen devices, today’s post contains some strategies and tips to help you build responsive Android layouts, including for Microsoft Surface Duo. Jetpack Window Manager The most useful package for working with dual-screen and foldable devices is Jetpack Window Manager, which prov...

Develop for Surface Duo 2

Hello Android developers! At yesterday’s Microsoft event we introduced the new Microsoft Surface Duo 2. Today I’d like to invite developers to start building or enhancing apps for dual-screen devices like the Surface Duo, Surface Duo 2, and other foldables. Surface Duo 2 The new Surface Duo 2 includes 5G support, three rear-facing cameras (including ultra-wide and telephoto), larger and brighter screens, a faster CPU, and a lot more! Learn more about Surface Duo 2 and pre-order on microsoft.com. Figure 1: Surface Duo 2 Jetpack Window Manager The best way to adapt your appl...

Android emulator multi-touch support

Hello Android developers! We’re excited to announce that version 30.9.0 of the Android emulator now supports multiple touch points to let you test gestures and interactions that require more than one finger! Multi-touch support requires the emulator be running on a touch screen device, which includes most modern Windows PCs, including the Microsoft Surface line. Pinch, zoom, rotation etc. Lots of common UI practices are hard to test on emulators without multi-touch support, including pinch and spread gestures common on map controls, and zooming photos, web pages, and other content. Figure...

Unity and Jetpack Window Manager
Hello game developers! We’ve covered Jetpack Window Manager in the docs, and previously blogged about how to integrate the DisplayMask API into a Unity sample. In this post I’ll describe how to extend a Unity project to integrate native Android code and configuration to include the Jetpack Window Manager package and provide dual-screen and foldable device information to your Unity app or game. By providing folding feature information you can adapt your Unity code to move user interface elements away from the hinge, adapt gameplay for foldable devices, or even incorporate device features like the...

Travel Planner dual-screen sample app
Hello Android developers! Over the summer, Hersh and I worked on a sample app that demonstrates a variety of dual-screen app possibilities. We used APIs like Jetpack Window Manager to create features that work across different foldable devices, including Microsoft Surface Duo. In this post, I’ve highlighted some of our favorite features that highlight cool dual-screen user experiences. Travel Planner app The sample is a Travel Planner app designed to help plan vacations and other travel. In this app, users can create and track trips’ dates, locations, and other information. The source code is...

Android Emulator native host pen support

Hello Android developers! We’re excited to announce that version 30.8.3 of the Android Emulator now includes active pen support to let you test pen-specific features like pressure sensitivity, orientation, eraser tip, and input button! Pen support requires the emulator be running on a device with a specific pen digitizer technology, which is present on modern portable devices including the Windows Surface line. Devices from the Microsoft Surface family, like the Surface Laptop, Book, Pro, or Surface Duo work great with an active pen like the Microsoft Surface (Slim) Pen, but other devices...

Dual-screen Navigation Rail

Hello Android developers! Google recently published a new landing page for building responsive layouts for larger screens (including dual-screen and foldable devices). The new NavigationRail widget includes features and guidance as an efficient way to navigate app features on larger screens. About NavigationRail NavigationRail is a material design component for top-level navigation on larger screens. It provides a variety of display options with icons, text, and even a floating action button if needed. For a responsive experience across phones, dual-screen/foldable, and tablet devices, it can be coup...

Jetpack Window Manager alpha10 update
Hello Android developers! Google recently released the latest version of the Jetpack Window Manager package, and as with previous releases, we’ve updated our docs and samples to match. This post walks through using the new API to get layout updates when your apps are running on dual-screen and foldable devices, like Microsoft Surface Duo. UPDATE: on August 18th, 2021 Google released beta01 of the Jetpack Window Manager package. The Java sample for this post has been updated and modified from what's shown below to ensure the is removed when appropriate. Update to alpha10 The latest release of Wi...

Dual-screen developer tools recap
Hello dual-screen developers, Each week we cover a different aspect of dual-screen development, but with so much happening it’s difficult to cover ALL of the platforms that support the Microsoft Surface Duo. This post is a quick run-down of all the different tools and platforms that developers can use to create dual-screen experiences on Android. Surface Duo Android emulator The free Surface Duo emulator image download makes it easy to get started with dual-screen development. It works with all the different developer platforms and provides a complete dual-screen experience, including the ability...