Oreo — New World to Explore

Sejal Baraiya
12 min readSep 19, 2017

--

What’s amazing in the new Android Oreo?

In Android 8.0 Oreo we focused on creating fluid experiences that make Android even more powerful and easy to use, such as:

  • Picture-in-picture: Lets users manage two tasks simultaneously on any size screen, and it’s easy for apps to support it. Firstly bugs were reported in the initial roll out of Oreo to Pixel and Pixel XL devices, but this has since been fixed. Secondly, there are some isolated issues of Bluetooth problems, though I haven’t received any myself. I have, however, had issues with Picture-in-Picture not starting which Google support confirmed to me is a known bug for some users.
Picture in Picture Feature
  • Notification dots extend the reach of notifications and offer a new way to surface activity in your apps. Dots work with zero effort for most apps we even extract the colour of the dot from your icon. These dots you can set now very easy way with it’s default channel of notification.
Notification Dots With New Features
  • Autofill framework simplifies how users set up a new device and synchronize their passwords. Apps using form data can optimize their apps for Autofill, and password manager apps can use the new APIs to make their services available to users in their favorite apps. Autofill will roll out fully over the next few weeks as part of an update to Google Play Services.

We also invested in Android Vitals, a project focused on optimizing battery life, startup time, graphics rendering and stability, while giving developers better visibility over the health of their apps:

  • System optimizations: We worked across the system to help apps run faster and smoother. For example, in the runtime, we added a new concurrent compacting garbage collection, code locality, and more.
  • Complementary Android Vitals dashboards and IDE profiles: In the Play Console you can now see aggregate data about your app to help you pinpoint common issues, excessive crash rate, ANR rate, frozen frames, slow rendering, excessive wakeup, and more. You’ll also find new performance profiles in Android Studio 3.0, and new instrumentation on the platform.
Popup With More App Info
  • Apps and reboots are faster with Android O: Optimisations in the system should cut device restart time in half and dramatically increase app performance. This is evident from independent reports from XDA and Android Police.
  • Apps are better thanks to Google Play Protect and tougher enforcement of criteria: Google Play Protect is a background service that will optimize security on Android by analyzing the behaviour of apps to detect malware, and remove it from your phone and from the Play Store. Google is also increasing pressure on app developers to increase the performance and stability of their apps.
  • If they fall into the bottom 25 percent, they are warned and then removed from the Play Store if there’s no improvement.
Google Play Store Application With Protection
  • Wi-Fi Aware (also known as Neighbour Awareness Networking or NAN): This function basically works so that devices with compatible hardware can communicate when they are close, via Wi-Fi Aware, without necessarily having to use the internet connection.
  • Auto fill revolutionizes password management: Google is bringing a system-wide Autofill API to Android O, allowing all of your passwords to be managed in a central place. This will mean convenience and security when logging into apps and filling out forms, since there won’t be any need to copy/paste usernames and passwords anymore.
Auto Fill Password
  • Rescue Party: Another new Android 8.0 feature has been announced. Rescue Party will help prevent boot loops, one of the most dreaded mobile phone issues. When core system components are crashing over and over again, Android will notice and take steps to recover the device. As a final resort, it will reboot into Recovery Mode and give the option to factory reset the device. This feature will be enabled by default and doesn’t require any special hardware, though it’s only for phones running Android Oreo.

Android O hardware support features:

  • HDR displays are officially supported
  • Better Bluetooth support

HDR displays are officially supported

HDR is an interesting feature, but there was little support on the system side. Now, apps can define how to save and display image resources with a wide range of colors. Google says this is especially relevant for image processing apps.

HDR displays supported with Oreo

Better Bluetooth support

Android O supports high-quality Bluetooth audio and codecs such as LDAC. Sony is helping Google in the development of LDAC audio wireless technology. According to the company, LDAC can transfer a larger volume of data through Bluetooth, with a bit rate of more than 990 kbps. In other words, this means better audio quality for devices running with Android O. There is also Audio, a new Android native API designed for applications that require high-performance, low-latency audio quality. Applications that use Audio can read and save data via a stream.

Android O surface features:

  1. Text selection gets smarter: Copy/pasting on mobile is about to get easier, and smarter. Using machine learning, Android will recognize when you’re trying to copy/paste an address, URL or phone number and select the whole thing for you automatically, instead of just one word.
  2. New round emoji: With this update from Developer Preview 1 to 2, the emoji changed. RIP blob emoji. The newer ones are closer to the standard circular ones used on most other platforms like iOS and WhatsApp. This article from Emojipedia shows the old ones and new ones in comparison.
New Emoji Feature available into Oreo

3. Adaptive icons: App icons will adapt automatically to the manufacturer’s UI. The appearance of app icons differs across the wide range of devices running Android. Thus, an app icon may appear to be circulating in the launcher of one device and square in another. That, of course, depends on the manufacturer’s skin, but it’s cool to see that Google will now offer a standard for adapting application icons to the UI (if the developer does).

Adaptive Icons

4. Widgets are easier to integrate:It’s now easier to integrate widgets to your home screen. Rather than digging through the alphabetical list of widgets as in previous versions of Android, you can now long press the icon of the app you want a widget for and then select one of its available widgets.

5. Search and find app info:Since Android Lollipop the Settings menu has had a search function. With the update to Android O, the search gets a new feature. App info now appears in the search results for installing apps. So, you can quickly access an app’s App info menu to quit the app, delete its cache or manage its permissions.

6. Animated clock icon: Developer Chris Lacy shared some exciting news on his blog: in the APK for the Google Clock app from the Android O Beta, he noticed there are hints that Google will add animation to the Clock icon. The XML file where he found the code shows that the icon will be capable of displaying the current hour, minute and second. There were also images included which show the different hands of the clock. These clues all point to a new animated clock icon for Android O — much like the one already present on iOS.

7. Auto sizing TextView: Use auto sizing TextView to automatically fill a TextView with text, regardless of the amount. You can create an array of preset text sizes, or set min and max sizes with a step granularity, and the text will grow and shrink to fill the available TextView space.

8. Fonts in XML: Fonts are now a fully supported resource type. You can now use fonts in XML layouts and define font families in XML.

9. Shortcut pinning: App shortcuts and home screen widgets are great for engaging users and now you can let users add and pin shortcuts and widgets to the launcher from within your app. There’s also a new option to add a specialized activity to help users create shortcuts. The activity is complete with custom options and confirmation.

10. Wide-gamut color for apps: Imaging apps can now take full advantage of new devices that have a wide-gamut color capable display. To display wide gamut images, apps enable a flag in their manifest files (per activity) and load bitmaps with an embedded wide color profile (Adobe RGB, Prophoto RGB, DCI-P3, etc.).

11. WebView enhancements: In Android Oreo, we’ve enabled WebView multiprocess mode by default and added an API to let your app handle errors and crashes. You can also opt in your app’s WebView objects to verify URLs through Google Safe Browsing.

12. Java 8 Language APIs and runtime optimizations: Android now supports several new Java Language APIs, including the new Java Time API. In addition, the Android Runtime is faster than ever before, with improvements of up to 2x on some application benchmarks.

13. Better battery life and performance: Android Oreo isn’t just about looks. It boosts your phone’s performance and battery life, too.Android Oreo also introduces a new battery settings menu that lets you exercise control over power-hungry apps. You can view your phone’s power drain versus the total amount of time you’ve used it, and see a list of the most power-hungry apps. And you can drill down into individual apps to see how much battery they used in the background versus how much they used while open.

Battery Life Saving

14. Speed your development with Android Studio: When you’re ready to build with new APIs in Android Oreo, we recommend updating to the latest version of Android Studio 3.0, available for download from the beta channel. Aside from improved app performance profiling tools, support for the Kotlin programming language, and Gradle build optimizations, Android Studio 3.0 makes it easier to develop with Instant Apps, XML Fonts, downloadable fonts, and adaptive icons.

Default Fonts Should have More To Explore

15. A new home screen for Android TV makes it easy for users to find, preview, and watch content provided by the apps. Apps can publish one or more channels, and users can control the channels that appear on the home screen. You’ll be able to get started with creating channels using the new Tv Provider support library APIs.

The Limitations of using Oreo:

  1. Background Execution Limits: Whenever an app runs in the background, it consumes some of the device’s limited resources, like RAM. This can result in an impaired user experience, especially if the user is using a resource-intensive app, such as playing a game or watching a video. To improve the user experience, Android 8.0 (API level 26) imposes limitations on what apps can do while running in the background. This document describes the changes to the operating system, and how you can update your app to work well under the new limitations.
  2. Background Service Limitations: Services running in the background can consume device resources, potentially resulting in a worse user experience. To mitigate this problem, the system applies a number of limitations on services.
  • The system distinguishes between foreground and background apps. An app is considered to be in the foreground if any of the following is true:
  • It has a visible activity, whether the activity is started or paused.
  • It has a foreground service.
  • While an app is in the foreground, it can create and run both foreground and background services freely. When an app goes into the background, it has a window of several minutes in which it is still allowed to create and use services. At the end of that window, the app is considered to be idle. At this time, the system stops the app’s background services, just as if the app has called the services’ Service. stopSelf () methods.

Why this limit is set?

We added new limits on background location and wifi scans and changes in the way apps run in the background. These boundaries prevent unintentional overuse of battery and memory and apply to all apps — make sure you understand and account for these in your apps.

3. Broadcast Limitations: If an app registers to receive broadcasts, the app’s receiver consumes resources every time the broadcast is sent. This can cause problems if too many apps register to receive broadcasts based on system events; a system event that triggers a broadcast can cause all of those apps to consume resources in rapid succession, impairing the user experience. To mitigate this problem, Android 7.0 (API level 25) placed limitations on broadcasts, as described in Background Optimization. Android 8.0 (API level 26) makes these limitations more stringent.

  • Apps that target Android 8.0 or higher can no longer register broadcast receivers for implicit broadcasts in their manifest. An implicit broadcast is a broadcast that does not target that app specifically. For example, ACTION_PACKAGE_REPLACED is an implicit broadcast, since it is sent to all registered listeners, letting them know that some package on the device was replaced. However, ACTION_MY_PACKAGE_REPLACED is not, an implicit broadcast, since it is sent only to the app whose package was replaced, no matter how many other apps have registered listeners for that broadcast.
  • Apps can continue to register for explicit broadcasts in their manifests.
  • Apps can use Context.registerReceiver () at runtime to register a receiver for any broadcast, whether implicit or explicit.
  • Broadcasts that require a signed permission exempt from this restriction, since these broadcasts are only sent to apps that are signed with the same certificate, not to all the apps on the device.

Review the broadcast receivers defined in your app’s manifest. If your manifest declares a receiver for an implicit broadcast, you must replace it. Possible solutions include:

  • Create the receiver at runtime by calling, Context.registerReceiver (), instead of declaring the receiver in the manifest.
  • Use a scheduled job to check for the condition that would have triggered the implicit broadcast.

4. Other Installation Related Limitations: Now, If we are talking about the limitations of oreo then it will be only related to installation of Oreo right now because it is providing the all excellent features as you can see above.

  • So, There is no other complexity to use, but first all into installation the users get stuck in device and into studio version also. Today’s release of O Developer Preview 2 is our first beta-quality candidate, available to test on your primary phone or tablet. We’re inviting those who want to try the beta release of Android O to enroll now at android.com/beta — it’s an incredibly convenient way to preview Android O on your Nexus 5X, 6P, and Player, as well as Pixel, Pixel XL, or Pixel C device.
  • Latest canaries of Android Studio, SDK, and tools, Android O system images, and emulators. Along with this, you’ll be able to download support library 26.0.0 beta and other libraries from our new Maven repository. So many users want to update their phone with Android O installation, but it is yet to update.

5. Other Issues with Solution: By default, these changes only affect apps that target Android 8.0 (API level 26) or higher. However, users can enable these restrictions for any app from the Settings screen, even if the app targets an API level lower than 26. You may need to update your app to comply with the new limitations.

Check to see how your app uses the services. If your app relies on services that run in the background while your app is idle, you will need to replace them.

Possible solutions include:

  • If your app needs to create a foreground service while the app is in the background, use the new NotificationManager.startServiceInForeground() method instead of creating a background service and trying to promote it to the foreground.
  • If the service is noticeable by the user, make it a foreground service. For example, a service that plays audio should always be a foreground service. Create the service with NotificationManager.startServiceInForeground () instead of startService ().
  • Find a way to duplicate the service’s functionality with a scheduled job. If the service is not doing something immediately noticeable to the user, you should generally be able to use a scheduled job instead.
  • Use FCM to selectively wake your application up when network events occur, rather than polling in the background.
  • Defer background work until the application is naturally in the foreground.

Hope you end up your learning on Android Oreo and its Features with Limitations. I hope it helps you. If you like the article, click on the clap at the bottom to recommend it and feel free to share it :-)

Thank You :)

References:

  1. https://youtu.be/FMSwhXjEIao
  2. https://youtu.be/hbLAzwhBjFE
  3. https://www.android.com/versions/oreo-8-0/
  4. https://android-developers.googleblog.com/2017/08/introducing-android-8-oreo.html
  5. https://youtu.be/vBjTXKpaFj8
  6. https://youtu.be/fu5lxxfr6rA
  7. https://www.androidpit.com/android-oreo-release-features-news
  8. https://www.forbes.com/sites/gordonkelly/2017/08/24/google-android-8-oreo-should-you-upgrade/#57e7bee721cc
  9. https://www.digitaltrends.com/mobile/android-o-news/
  10. https://developer.android.com/about/versions/oreo/index.html

--

--

Sejal Baraiya

Software Quality Assurance Analyst and Android Developer | Always be ready for learning new things. It’s exciting….