While the recent release of Android Oreo, the eighth major operating system version since Android launched in 2008, focuses on fundamentals like performance and reliability, it still packs several highlights for both end users and developers. With all of the updates, we’re breaking down a few of our favorite user-facing features and backend tweaks, and sharing how Visual Studio App Center helps you use them to their fullest potential to deliver even better apps.
Our Top Three User-Facing Updates
Android Oreo’s user interface introduces a new, unified look for app icons on the launcher, an overhaul of the Settings structure and layout, and 69 new emoji and a new emoji style (because emoji are 👌 for code reviews, for example). You can check out the new emoji here, and it's worth noting that the 8.1 release includes the fix for the controversial burger emoji.
One of the more visible new features is Picture-in-Picture (PiP) mode for phones and tablets running Android Oreo, which was previously limited to Android TV. Since PiP allows users to consume content from one location while interacting with another, it brings entirely new usage contexts, such as interacting with friends in your app about a live streamed event, that were previously the sole domain of dual-screen experiences.
While taking advantage of PiP mode requires you to update your apps, it should be quite popular with video and video chat apps. YouTube currently only supports PiP with paid YouTube Red subscriptions, but other media apps, like VLC, have already added support.
User-Friendly Notifications At-a-Glance
Notifications are one of the best ways to keep your users coming back to your apps. With Oreo, users and developers benefit from better notification “glanceability.” The new ordering system clearly distinguishes between major ongoing events, person-to-person notifications, and lower priority general notifications.
We hope future upgrades will improve on these enhancements. While users can currently snooze notifications for 15, 30, and 60 minutes, a wider array of options (from “remind me tomorrow” to “remind me when I connect to home Wi-Fi”) would be welcome. Likewise, while "Notification channels" offer great ways to control the amount of notifications you receive from apps in certain categories, the categorization of those channels is left to the developer. Letting users create custom notification channels like “My news apps” would add even more utility. Still, these changes are a promising start and a major upgrade in user experience.
New Font Support, New APIs
Other welcome UI changes center around fonts. The days of implementing hacky solutions to make your custom fonts work are gone. Instead of piecing together a solution that leaves you unable to preview your font implementation from your IDE, Oreo supports downloadable fonts and allows you to create fonts from popular font formats, like TTF and OTF (accessible from Android resource system). Downloaded fonts are also supported via the Android support library, so you can implement custom fonts for your users running your app on older Android versions as well.
Google continues to provide access to all Google Fonts from Google Play Services, but you’re now free to create your own font providers.
Finally, you can declare downloadable fonts as required in the manifest of the app, making sure that the fonts are downloaded before their actual use in a layout.
One surprisingly significant change is in the method signature of findViewById(). While this previously returned a View instance, it now uses generics to return <T extends View>. While great for type-safety (it requires fewer dangerous type casts), this also means app developers should check that all of their type assignments still work correctly when building their app’s UI after removing those casts.
Backend Tweaks and What They Mean for You
The Trade-Off: More Developer Chores
Android Oreo provides welcome new features and a more efficient OS, but it doesn't come without a price. Oreo is far less generous than its predecessors in granting background execution time. To improve both battery life and overall system performance over time, Google introduced new rules for background execution, wake locks, and background services. Google called this out in previous major releases, e.g. promoting the JobScheduler API from Android 5.0 Lollipop, which is now the go-to for background execution, but it will take some time for apps to adopt these changes. Developers targeting Android Oreo should make sure they adhere to the latest background execution guidelines in order for their app to continue to work. Depending on how they used background services in the past, this might mean substantial refactorings.
The Bright Side: Less Fragmentation?
We're all familiar with the challenges of OS fragmentation; in 2015, OpenSignal reported more than 24,000 distinct Android devices, running operating systems back to version 1.0. Millions of devices are running older versions of the OS, and probably always will. A big reason for slow or spotty adoption of new releases on existing devices is the amount of effort required of OEMs to ensure compatibility for existing hardware, which is a low priority when selling new devices creates more revenue. Android Oreo seeks to remedy this problem with Project Treble, "designed to make it easier, faster, and less costly for manufacturers to update devices to a new version of Android."
Project Treble decouples the vendor code (the lower-level code that OEMs have to implement) from the OS frameworks in an effort to ease the transition from one OS to the next. There are also other advances, like splitting up and versioning Hardware Abstraction Layers (HALs), which should reduce the amount of effort required for vendors. There are also other nice changes in Android Oreo that allow for more modular updates, such as the ability to deliver GPU driver updates through the Play Store for SoC vendors.
These changes set the stage for vendors to update more devices more frequently, but it remains to be seen whether vendors will play their part in reducing fragmentation. If they do, we may see their efforts begin to pay off soon, since the first maintenance release to Oreo, Android 8.1, shipped on December 6.
Bringing it All Together: Android Oreo and Visual Studio App Center
With new end-user features and all the changes under the hood, there’s a lot going on in Android Oreo!
We have multiple Oreo devices in the App Center automated test lab, as well as hundreds of older device / OS configurations, so you can ensure that your apps work smoothly with the new OS, while still looking and behaving well on earlier versions.
Our SDK and Build service fully support Oreo, giving you complete access to App Center’s cloud-based continuous integration, crash reporting, and user analytics. Get ready to build, test, and distribute your Android apps with confidence (and deliver a great experience for all of your users, regardless of platform, device model, or operating system version).