In the past month, Google released a developer preview for the next big update to the Android OS. Even in this early state, Android N has some interesting features worth highlighting. I recently downloaded the preview along with the updated development tools to take take a look at what's changed.
Obtaining the Android N Preview
The developer preview and development tools are all free downloads from Google. If you have any interest in trying out the software Google has published an overview of all of the available information for Android N. There is a wealth of information available that will make it easy to get started with developing for the new OS.
Multi-window Support in Android N
The biggest new feature is the ability to display more than one app at a time. Android phones and tables now have the ability to display two apps either side-by-side or one-above-the-other, and Android TV's can use picture-in-picture mode to similar effect. On tablets this is a particularly nice feature since it lets you utilize some of the extra screen real estate. Invoking multi-window mode is a pretty direct process and can be done in two different ways. From the Overview screen, a user can click and hold the activity title, and then drag it towards a highlighted corner of the screen to enter into multi-window mode. A user can also simply click and hold the Overview (Square) button to bring up a list of recent app while entering multi-window mode, and allow the user to choose an activity to run beside the currently active one. By default the apps divide the available space 50/50, but this can be changes so that one app gets two thirds while the other gets the remaining third. Google has also mentioned that device manufacturers can enable a freeform mode for larger devices (though I didn't notice this option in my testing). You can change the amount of space each app occupies on the fly by dragging the separator between windows to resize as you see fit. If you drag the separator all the way to the left or right you'll re-enter fullscreen mode (you can also hold in the Overview button for this). I tested a few apps out in this mode and they mostly seemed to work without issue. The layouts would occasionally look a little ugly when cramped for space, but otherwise things mostly looked okay. Google has some guidance for changes that developers should make to their apps to better support the feature in Google's documentation. Developers can also disable multi-window mode for their app if it requires full screen mode. Thankfully though, current applications seem to largely work in the multi-window environment.
Android N also brings some small updates to notifications. The changes are focused around:* Updated Templates: new templates with more emphasis on the image an avatar
- Bundled notifications: this allows the system to group messages together around a given criteria (for example a topic)
- Direct reply: this gives apps the ability to reply inline to certain notifications (such as texts)
- Custom views: Google provides a couple of new APIs for further customizing you notifications I had the least experience playing with the updated notification system, but certainly the ability to reply to text inline within the notification is a nice addition. Google has some more information about taking advantage of the new notification improvements which can be found on their site.
Under the hood improvements
There's a number of less obvious improvements in Android N as well. Google mentions some performance and batter life improvements that a hard to verify at this point, but still nice for end users. There's also updates to support some phone features like number blocking and call screening (along with APIs to utilize them). More specifically of interest to developers, Google has provided an API for providing your own tiles for the quick settings panel which allows developers to provide easy access for users to key functions of your app. Android is also adding support for OpenGL ES 3.2 which will probably be of interest to game developers and any others doing 3D rendering. Finally, they've also allowed JIT compilation in certain circumstances rather than always using Ahead Of Time compilation to improve the user experience and performance. Google has added it's own profiling to the Android Run Time to determine which type of compilation will be best given the current conditions of the app and device. The improved profiling will probably be most noticeable when it comes to App updates which will no longer need to reoptimize after every update (thus saving a lot of time), but this should also make launching apps and using them faster and more memory efficient too.
Android N looks to be a significant update, and we've only covered some of the bigger features. There's more information available on the Android developer site, but there's a number of other features that we haven't touched on. The software is still in an early state, and I did experience a few crashes while testing the OS. When it's finally released, Android N looks like it should bring some significant quality of life improvements for both developers and users.