Unveiled at Google I/O in late June, Google presented the next release of the Android operating system. The to-be-named (it’s just called “Android L” for now) and numbered (version 5?, version 4.5?, …) version of Android is by Google’s own admission “one of the most comprehensive releases we have done” (see comment here from Sundar Pichai, senior vice president at Google in charge of Android, Chrome and Google Apps).
As a developer of Android applications, you should know there really are a significant number of new capabilities, updates, and under-the-cover improvements. I have picked the top 10 Android L features that I believe developers need to start to explore. Of course, any list like this is somewhat arbitrary. My choice in best features may not be your choice in best features based on aspects like your frustrations and views on the current OS and your users’ application needs. However, I do believe this list of top 10 Android L features includes Android L features that will impact – at least at some level – every Android developer’s applications and approach to building those applications.
So, to paraphrase David Letterman – ladies and gentlemen, from our home office in Eagan, MN, here is Tonight’s Top 10 List of Android L features you should begin to explore…
1. Notification Changes
Notifications are not new to Android L, but they have been overhauled and upgraded. This will be one of the features that users, not just developers, will be talking about. Among the many changes, Notifications can now be displayed on the lockscreen in Android L. The lockscreen is visible to all and meant to safeguard the device’s contents from non-owners.
As a developer, you will code the level of detail visible in lockscreen notifications. The Notification.Builder.setVisibility() method will allow you to choose if the notification is public, private (only icon and basics), or secret (nothing). Android L will also use metadata associated to the notification (priority, category, etc.) to better sort the notifications. Further, high priority notifications (“heads-up” notifications) will immediately slide over the top of whatever is going on, but without completely obfuscating the screen.
Users will find visual changes to Notifications as part of the new Material Design (see #2). Further, I am sure many users will like the fact that notifications will now be synchronized in the cloud. Dismissing a notification on one device has it dismissed from another.
2. Material Design
This is a new design language and guide for the user interface of Android L, but will also apply to all of Google’s Web software. Along with a new theme, it provides some new user interface widgets, view shadows, and animations (some out of the box and the ability to customize your own). The new widgets include the RecycleView and CardView. The RecycleView is “a more advanced and flexible version of ListView” (see here). RecyclerView allows for larger and more dynamic view elements. As an extension of FrameLayout, CardView uses shadows and rounded corners to make the containing view elements look like they are in a card. These cards are intended have a consistent look across apps.Android L’s Material Light Dark Action Bar Theme (left) versus Android 4’s Holo Light Dark Action Bar Theme (right)
3. Android Runtime (ART)
The Dalvik Virtual Machine replacement known as Android Runtime or ART was introduced in KitKat (Android 4.4). With the 4.4 release, it was called “experimental” and optional (read about the ART introduction here). With Android L, ART becomes the default runtime for Android applications. Unless your application uses JNI to call C/C++, generates non-standard code with some of the development tools (like some obfuscators do), or delve into the dark science of compacting garbage collection, as a developer you should not have to code your applications any differently. You simply reap the benefits of this new runtime, which include ahead-of-time (AOT) compiling and improved garbage collection for better performance along with enhanced debugging capabilities like improved diagnostic details for runtime exceptions.
4. Storage Access Framework
Another feature introduced in Android 4.4 was the Storage Access Framework (SAF). This framework made it easier for users to browse and open/use files on the device and across file storage services like Dropbox. In Android L, SAF has been enhanced and ease file access. Users can not grant read/write access to the contents of an entire directory subtree.
Additionally, Android L provides package-specific directories on shared storage (like the SD card) where your app can place media files. No new permissions are needed by your app to access this path. You can get the directory with a call to the new getExternalMediaDirs( ) method on a context object (like an Activity).
5. Multiple network connections
A new networking API in Android L allows your application to search for a network by transport protocol or other characteristic and make a connection to the network. The API is largely available through ConnectivityManager. Applications can request a “suitable network” with a NetworkRequest object through the ConnectivityManager while also providing a callback (NetworkCallbackListener) to be invoked when Android locates the required network and makes the connection.
6. New Camera API
Device cameras have become much more advanced. Android L has provided a new camera API (in android.hardware.camera2) to allow better image capture and processing.
7. Bluetooth broadcasting
Android 4.3 gave us Bluetooth Low Energy (LE) support. [Side note: Bluetooth LE is also known as Bluetooth Smart]. Bluetooth LE is a low-power consuming form of Bluetooth communication for things like proximity sensors, security sensors, health monitors (like a heart rate monitor or fitness monitor), etc.. In Android 4.3, applications could use a new API to find devices and get info and services from the devices. In Android L, an Android device can serve as a Bluetooth LE device. This will allow Android devices (and apps) to be the health or fitness monitor as opposed to just communicate with one.
8. Power utilization and measurement
Perhaps one of the biggest changes in Android L – from both a developer and user perspective – is the work on power efficiency Google has put into this release. There are several facets to this feature. Project Volta (an umbrella project within Android L) was an initiative to improve Android device batter life. It provides a new battery saver mode, battery historian (for user views into app use of battery power on the device), system power optimizations and much more.
More tools are provided developers in this release to try to build applications that are better users of device power. Battery statistics on the usage of battery power can now be obtained through a adb shell call to dumpsys batterystats.
Additionally, Android L comes with a new job scheduling API (android.app.job) that will allow apps to schedule asynchronous jobs (those that may drain power quickly) to be accomplished later – like when the device is charging.
9. WebView API updates
WebView has been updated and now incorporates features you find in your laptop/desktop browser like WebGL (Web Graphics Library) and WebRTC (Real-Time Communications). Developers will also be very happy that debugging of Web content is now available in WebView(myWebView.setWebContentsDebuggingEnabled(true) – could the method name to turn it on be any longer?). Users will be happy that the performance and security of the WebView has been improved.
10. Android Studio
No, this last “feature” it is not technically part of Android L, but as Google indicates on the Android Studio Beta web page, Android Studio “will be the official Android IDE once it’s ready,” which is likely to be at or near the time of Android L’s release. Android Studio is based on IntelliJ IDEA.
Eclipse has been the development communities’ chief (some would say only) IDE since Android’s inception. That is changing. The future of Android development lies in Android Studio. As a developer, it is time to become familiar with this tool and make plans to switch. Importantly, you will find getting into Android L will be easier using Android Studio (see below).
Doing Your Own Feature Research
The developer preview of Android L is available to the public. If you are interested in starting a more in-depth exploration of these and other Android L features, your first stop is the Android L Preview page at the developer.android.com web site. I highly recommend you download and install the Android Studio beta product to begin your exploration. It is the easiest way to test drive Android L as it is already built in to the offering – and again – Android Studio looks to be the future of Android development in the post Android 4.4 era.
As a warning, all features and APIs discussed in this post are a result of looking at the preview release of Android L. As Google has warned everyone – and I warn you – things are subject to change with the final release.
Final Release Date
The final release date for Android L is to be determined – as is its version number (most expect it to be 5.0 given the significant number of features and changes) and sweet treat name (those on the web seem to favor Lollypop to be the odds on favorite but no one claims factual insight – although the upcoming AnDevCon web site lists several tutorials with Lollypop in the name). Some technology insiders have suggested Android L may be available on some platforms in time for the holiday shopping season (Oct-Dec 2014) – see here.
There are plenty of other features that could easily make this list. OpenGL ES 3.1 support, links to other apps, and many more features almost made my list. Furthermore, I think there are other features of Android L that would make a top 10 Android L features list for Android users (versus developers). This list would include things like the improvements in the security of Android OS. As you explore Android L, give us your thoughts. What do you think are the top features of Android L?
Planning to build an Android application? Need help learning Android development? Need design or development assistance? Contact our Intertech mobile development team for help in Android training or consulting services. We are instructors who consult, and consultants who teach.