Tech —

This is Android N’s freeform window mode

Android gets a desktop-style floating window mode, and there's even mouse support.

Last week, we wrote about the "freeform window" mode in the Android N Developer Preview. Brief mentions in the developer documents and hints in the code pointed to Android someday displaying apps in resizable floating windows, just like in a desktop OS. Freeform window mode isn't normally accessible in the current dev preview, but shortly after the post, we were contacted by reader Zhuowei Zhang with instructions on how to make it work.

We'll get to the instructions, but first let's talk about what's actually here. Freeform window mode is just what we imagined. It's a dead ringer for Remix OS—multiple Android apps floating around inside windows—and it might be the beginnings of a desktop operating system. It works on Android N phones and tablets, and once the mode is enabled, you'll see an extra button on thumbnails in the Recent Apps screen. To the left of the "X" button that pops up after a second or two, there will be a square shape—the same ugly placeholder art Google used for the split screen mode in the Android M Developer Preview.

Press the square symbol for an app and you'll be whisked away to a screen showing that app in a floating window that sits on top of your home screen wallpaper. The windows aren't floating above the Android desktop; the background is just a blank wallpaper without any of your icons or widgets. The floating apps all have title bars like in Recent Apps. You can drag the apps around by the title bars or use the "close" and "maximize" buttons. Apps can be resized exactly how you would expect—press or hold on the edge and move your finger, and you'll see the app change shape. Just like in split-screen mode, apps will auto-switch between their tablet and phone layouts (with some apps making the switch better than others). You can only resize in one direction at a time, though; there doesn't seem to be a corner hotspot that will let you adjust the width and height.

Tapping on the home or recent buttons will leave this environment, but your windowed apps get saved to a special, single windowed app environment. With one app open in windowed mode, you can head to Recent Apps and tap on the square icon for another app, which will add that app to your windowed app screen. The whole recent app screen changes when you start up a windowed app. The screen splits in half, with tiny thumbnails of your windowed apps at the top and the usual vertically scrolling list of app thumbnails at the bottom. Tapping on any of the small windowed app thumbnails will launch the windowed environment and jump like on a regular Recent Apps thumbnail; you can swipe them away to close them. In the Recent Apps screen, one of the windowed app thumbnails seems to have a "maximize" button, but the button doesn't actually do anything.

One of the more surprising parts of this mode is actual mouse support. When mousing over the edges of apps, the mouse pointer will change to the standard "resize" symbol (a line with arrowheads on both ends). The mouse support in Android usually isn't that great—the mouse cursor doesn't change for hyperlinks, for example—but someone went out of their way to add mouse support to this feature. This addition lends further credence to the theory that freeform mode isn't just a lame copy of Samsung's existing multi-window for phones and tablets but a move toward a mouse-and-keyboard-powered desktop OS.

When you're on the windowed app screen, any new apps you open will also pop up in windows. If you pull down the notification panel and press the settings gear, the settings will open in a new window in the center of the screen. The same goes for launching Gmail or the Play Store from a link in Chrome or launching anything from the "share" menu. Everything is set up to play nicely with the windowed environment instead of taking over the screen with a full-screen app.

Android N's freeform window mode in action. Video produced by Jennifer Hahn.

Android still has some work to do before something like this system is viable. The memory management isn't set up to handle a windowed environment. YouTube stops the second you tap on anything else, and a Chrome tab will quickly unload when it loses focus. Android just isn't able to keep multiple apps alive at once right now.

The UI needs work, too. With no dock or taskbar, there's no real way to bring an app to the front of the stack if it ends up being hidden behind something. Resizing apps produces graphical bugs, and it's annoying that you can't change the width and height of a window at the same time. The default size of an app window is a crazy, thin sliver, which means you need to resize everything as soon as you open it to get a workable window size. There's also no way to have a maximized app with a smaller windowed app on top of it—you're either in windowed mode with everything in a window or in full-screen mode.

Additionally, the app title bars seem like a big waste of space right now, especially on our tiny 9-inch tablet. Other than the "close" and "maximize" buttons, the title bars are always blank. They would look a lot more finished with something like a left-aligned app icon and app title like on Windows. Freeform window mode is very unfinished, but it isn't normally exposed to users. We expect Google will nail down most of this stuff when it comes time for a final release.

How to enable freeform mode

If you managed to stumble into the Android N Preview via the super-easy "Beta Program" over-the-air update, these instructions probably aren't for you. If you want to enable the feature the hard way, you're going to get your hands dirty with some old-fashioned command line image flashing like in past Developer Previews. Enabling freeform mode will also probably stop your device from being able to install future Android N over-the-air updates until you reset back to a stock system. You'll need the usual prerequisites of a device with an unlocked bootloader and Android N installed, plus a computer with fastboot and the Android SDK Tools.

Step one is to flash a custom recovery like the TeamWin Recovery Project (TWRP). Search for your device, download the appropriate image file, and put it in the same folder as your SDK tools. Reboot your device into fastboot mode by holding Power + Volume Down until you see the fastboot screen. Plug the phone into your computer, open a command line to your directory, and type "fastboot flash recovery [name of your TWRP image]". After the flash finishes, boot into recovery mode using the volume keys to scroll through the menus until you see "recovery." Next, confirm the choice by pressing Power.

Once you're inside your custom recovery, you'll need to mount the system partition as writable. In TWRP, press the "Mount" button and check the "System" box. Then comes the magic part: On your computer, open an ADB shell (open a command line, type "ADB Shell," and hit enter), then type the following and hit enter after each line:

cd /system/etc/permissions
sed -e "s/live_wallpaper/freeform_window_management/" android.software.live_wallpaper.xml >freeform.xml

That should be it. Boot up Android normally, and in the Recent Apps screen, you should see a square button appear on each item next to the "close" button. Press the square button and you'll put an app in windowed mode. Enjoy!

Channel Ars Technica