Android L – Rerouting Google…
Android has become a true fortress in Google’s empire, but what’s more remarkable is that it has done so only in the six years since its introduction back in the fall of 2008. Sure, Google may not be that old at all, unlike prestigious tech companies like HP, Intel or IBM, but they’re becoming the most relevant consumer-oriented company in the business, along with the likes of Apple, Microsoft and Facebook. An important vector for this rise to the top was the specific ‘agility’ that characterizes the Mountain View-based giant. It didn’t show the inertia of a tech-giant, instead many skunkworks/internal projects turned into succesful products quite rapidly. That’s how Gmail was born. It’s the whole company policy and attitude towards innovation and creation that gave Google this advantage.
Going back to Android, and linking the previous idea, Google’s mobile operating system displayed the same kind of agility early in its life. Until the 2.1 version (codename Eclair) the OS averaged one major update each two-and-a-half months. That’s more often than some mobile applications, but for an operating system that’s blink-of-an-eye fast. Since then, Android has relaxed the tempo and settled for a six-month release schedule. While that’s two times as fast as its main rival, Apple’s refined iOS, there hasn’t been a major overhaul since version 4.0 (Ice Cream Sandwich), which was released in October 2011. It all pointed to Android losing its character from this point of view, instead becoming just another commercial solution, engineered to solve Google’s problems, not the user’s.
All these latest releases focused mainly on three things: separating as much functionality as possible from the core operating system, thus putting an end to the fragmentation issue, refining/optiming the internals of Android and finally polishing the user interface whilst avoiding big changes. These are all hard for the user to see, and with these “maintenance” releases stockpiling we began to wonder – what’s the next big version of Android going to be like? Fortunately, Google I/O, the company’s own developer conference, brought for the first time a preview release of the next version of Android. Called Android L, this brings a large suite of changes, improvements and additions, but most importantly it signals an important change of direction for Android. This finally shows the result of the last months’ (or even years’) work inside Google.
So I say let’s unwrap the Android L Developer Preview, take a look for the most important improvements it received over its predecessor, and put all the pieces together. You’ll see that small individual changes add up to build a vastly different image of Android and Google.
It’s important to start our analysis with a disclaimer. This isn’t a full review of Android L, nor is it definitive in terms of performance and battery life, since this is a Developer Preview version. What does that mean? It simply means the code is far from finished, and while new functionality is already present, it may present bugs and its performance can be improved. Not all first-party applications have seen updates either, but we can expect many more to change until the final release this fall. Having said that, we will still take a look at performance and battery life and do some comparisons with Android 4.4, but this is only meant to be a short preview of the latest and greatest in Android.
After you take out performance, battery life, stability and those fine details which enhance the user experience, all you’re left with is well… the appearance. This is where we’ll try to extract as many conclusions from as possible, because the interface changes in Android L make a perfect statement for Google’s vision about the direction the industry has taken. It will most definitely shape Google’s portfolio more than ever before, so we’ll try to reach these conclusions as well: what does it mean for Google? How does it reflect on the end user? Android L’s new design and new way of doing things will reveal us significant details about these topics.
Can I install it? How?
This is the first time Google has released a preview version of Android. Altough it was specifically released for developers to adapt their applications (hence the “Developer Preview” nomenclature), it is freely available for download. There are two supported devices at this moment: the Nexus 5 (codename hammerhead) and the 2013, Wi-Fi version of the Nexus 7 (codename razor). You can go over to developer.android.com/preview/index.html and follow the steps to get the system image for your Nexus device.
You’ll notice the file comes in a .tgz archive. Extract it and then run the ‘flash-all’ script with the phone started in bootloader mode. That’s it, the script will take care of everything, the phone will reboot itself (be patient, the first boot takes a long while) and you will have a fresh Android L install on your device.
A couple of notes, however: First of all, in order to be able to flash this way (the easy way, am I right?) you have to set up ADB and Fastboot on your computer beforehand. Second of all, doing these exact steps will erase all information on your device, including files on the internal storage (some people call it internal SD card). If you wish to keep your data you have to decompress the .zip archive and flash the individual partition images with the following commands:
fastboot flash boot boot.img
fastboot flash cache cache.img
fastboot flash recovery recovery.img
fastboot flash system system.img
After the phone reboots, you’ll have to do a couple more steps. First, open the Settings application, go to the ‘About’ screen (last option), and repeatedly tap on the build number (last option) until it says you’re a developer. Now go one screen back and open the developer options. From there activate the USB Debugging. The last step is to start the activation screen by entering the following command on your computer:
adb shell am start -a android.intent.action.MAIN -n com.google.android.setupwizard/.WizardManager
This is a hackish way to install the Android L Developer Preview, and I certainly do not recommend it, but it allows you to keep your data. Now that the install bit is done, let’s have a look at what’s new.
The thing that will strike you the most in Android L is the new design. Holo, the much appreciated user interface that appeared in Android 3.0 (codename Honeycomb), and which suffered several revisions up until now, has finally got a successor. Android fans, meet the awkwardly named Material Design. The idea that stands at the base of Material Design is not how the software should look, nor how it should interact with the user. Instead, Google’s designers started by asking themselves what software is made of. That’s how they came up with a comprehensive set of guidelines, ready to help any developer build an application.
That’s an application that’s meant to run not just on smartphones or tablets, but on any type of device that’s powered by Google’s software. Take for example Chrome OS, or the more recently announced Android Wear, Android Auto or Android TV. That’s right, Google’s not trying to figure out how to build an user interface just for wearables, or just for phones, they’re trying to build an a set of user interface guidelines applicable to all types of devices. You’ll instantly know you’re using Google software, and you’ll instantly know how. This is reminiscent of Microsoft’s Modern UI, which spans from Windows Phone all the way to Windows 8 Pro and Xbox One. As you’ve heard multiple times already, this is not a product battle, this is an ecosystem battle between the tech giants.
So how on earth do they think they can cover all screen sizes and shapes, plus multiple input methods? It’s very simple actually, as the guidelines don’t speak in specific, technical terms. They don’t mention which panel should go where, what color it should be. Instead, the guidelines present means of putting the information on the screen. “Sheets” containing said information stack up in vertical hierarchies, while meaningful transitions direct user’s focus and give elements importance. Soft shadows, colorful backgrounds and large hero images do make a beautiful interface; one that looks nice, but isn’t very hard to design and build. Animations are a big part of Material Design and this gives Android a playful, fresh new look.
I cannot ignore the similarities between Google’s, Microsoft’s and Apple’s user experience guidelines, since they tell pretty much the same story: design isn’t about making things look pretty, it’s about making interaction with them seem natural and easy. That’s why all these three platforms are sprinkled with animations, little touches all over the interface and have colorful screens. I for one am very intrigued because all these companies see the user experience in the same way. And they’ve built their software around the same basic principles, but each one has its own look an feel, including Android L.
Its pre-Material Design roots are obvious in this Developer Preview instalment, but that’s not a bad thing. Google’s trying to keep old users happy and avoid having a Windows 8 fiasco. This pre-release version, except its general UI, has only three applications updated in order to comply with the Material Design theme: Calculator, Phone and Settings. As you can see from the screenshots below, they don’t seem to be all that different from their predecessors, a simple color scheme change isn’t enough to call it a new design. But once you’ve looked at the screenshots, go and play the screen captures below, to see just how many animations and subtle transitions happen when the users interacts with the device. Specific ripples appear when the user touches the screen, icons stretch out as they’re about to activate and information appears and hides with meaningful transitions so you know what just happened.
It’s all very nice, but you really have to see it in action in order to understand how different it really is. Head over to the next page if you’re interested.
Now, I don’t blame anyone for thinking that a vastly colored interface, full of animations and little flourishes, sounds like something an Asian company would come up with. Come to think of it, aren’t Samsung’s or LG’s skins the exact same thing? Well, fortunately, that would be a wrong conclusion. While Android L really is that colorful and playful, it doesn’t make you feel like it all has been added just for the sake of it. The graphical interface responds to the user’s input in a strangely natural way, making you think you’re interacting directly with the on-screen graphical elements. Take a look below to see how the interface works.
I’m absolutely amazed by the amount of detail that went into this. I’m digging especially the overscroll glow, which now orients itself after your finger. Ripples in selectable list elements and buttons don’t appear in a random position, but at the exact coordinates where you touched the screen. Elastic animations in the notification shade offer you a great amount of feedback, almost telling you how to use it. It all seems normal when you think of it, but these are all new to Android and they make quite a big impact.
The lockscreen has gained some well-deserved functionality, namely notification handling. The number of possible interactions is quite large: you can swipe left or right to dismiss, double tap to open, swipe down to reveal all notifications or swipe up to unlock the phone. Swiping left or right outside of a notification takes you to the camera or to the dialer, respectively. I think Google was spot on with these additions, because they augment the concept of glanceable information; you’re simply wasting less time to perform ordinary actions.
The new user interface is certainly a welcomed change, but let’s not forget its main purpose. I haven’t heard of many people complaining about Android’s looks, but I’ve heard people wondering how Google will develop its portfolio in tech domains adjacent to those already dominated by Android. That’s what Material Design is supposed to achieve, user experience uniformity from the phone to your TV, to your car. We don’t have any examples in this regard, so color me intrigued by how it will all play out for Google and how the software will end up looking on a computer or TV screen.
Now, you didn’t think Google would go through all this hassle if they didn’t bring Android to new types of computing devices. I’ve heard rumors we’re going to see Android-based servers, and in these highly specialised fields a smartphone operating system would have nothing to offer. That’s why Google’s making some changes to how its operating system is working. Probably the most important is the switch from the Dalvik VM to ART (Android Runtime). While users had the option to switch between these two, but Android L uses strictly ART as the runtime library. What the hell does this mean? Speaking in simplified terms, Android applications contain Dalvik byte code. This is not code that your device’s CPU can execute, so it has to be translated before being sent to the CPU. Traditionally, the Dalvik byte code was interpreted and translated at the moment when it was need, but Android 2.2 added a JIT (just-in-time) compiler which transformed the most used Dalvik byte code to machine code even before execution. That’s all great, but translating from Dalvik to machine code uses resources (time and processing power), and ART looks to optimize the previously described process. Translation now occurs on the first boot or after an application is installed, so the machine code is ready to be used at any time. ART should bring performance and efficiency improvements, but the new runtime presents other benefits as well…
… one of these is flexibility. And how is Google taking advantage of this? By adding 64-bit capabilities to Android, 9 months after the introduction of the iPhone 5S, the first smartphone to use a 64-bit CPU. Don’t be fooled by marketing departments that 64-bit devices are automatically faster than current 32-bit ones. There some situations where a 64-bit CPU would see massive performance advantages, but another one is its strongest: the capability to address way more memory: 4 trillions the size. Try to put that into perspective for a moment: there wasn’t a huge pressure to add more memory to smartphones or tablets. But servers? That’s another story, one that has to do with huge memory sizes.
Sure, Android L remains a mobile operating system, so mobile devices receive their fair share of love. Improvements to battery life are claimed, and optimizations have been made to the animation and graphics libraries. The device can now dispatch jobs to the GPU in parallel to executing them (for each View), and more types of effects and animations are computed on the GPU. These optimizations were a must in designing such an interactive interface.
Other changes to the graphics stack include new functionality, that should bring Android’s 3D capabilities to “PC-level graphics”. Of course this is an exaggeration, but nonetheless it means developers get new tools to build games for Android. This is something iOS has done quite a bit better, history shows, so it’s interesting to see how Android’s rounding its set of skills.
Battery life improvements are an important part of Android L, and Project Volta takes care of that. The new features it brings are a new battery saver function similar to what we saw on some Samsung and HTC phones, a set of new APIs that provide more energy-efficient scheduling functions, plus new tools for developers to check for energy use and optimize their applications.
Further changes include cellular radio energy optimizations such as network calls coalescing and deferring. When an application transfers data over the network, the radio hardware wakes up, does the transfer and then goes back to a waiting state.
Now, the level of energy consumed during the actual transfer cannot be lowered in software, but those waiting periods can be minimized if as many transfers as possible are grouped. That’s basically what coalescing means.
All in all, Google said Android L can improve battery life by up to 20% when compared to KitKat. I’ve not seen that kind of improvement in my tests, but taking in consideration all the eye-candy effects on tap that could very well be a good thing. With my daily usage, which has about ten 2-minutes calls, browsing adding up to about one hour and several levels of Candy Crush Saga, battery life saw a modest improvement. Video battery life actually decreased, so I can’t say Android L made a noticeable improvement in my case. Use cases where the phone rests more in standby mode could see better results, so I expect lower-end phones, which aren’t used as heavily, to benefit the most from Project Volta.
Performance doesn’t change that much compared to Android 4.4 KitKat in general. We see some regressions in certain benchmarks and admirable jumps in others, but that’s the old Dalvik VM vs. ART story all over again; this performance delta isn’t noticeable by the end-user. What is noticeable though is the improved response latency to the user’s input. It’s a mix of clever graphical tricks and various optimizations throughout the system, but Android L certainly feels snappier.
It’s a curious case though, because performance drops do happen, and when they do the framerate drops below an acceptable limit, visibly hampering the fluidity of the graphical interface. Only time will tell if the current generation of hardware isn’t powerful enough to drive Android L at 60fps on a 1080p screen or if it’s just a matter of optimizations that couldn’t make their way in the Developer Preview.
This may be just another Android update, it may be even be remembered as “yet another Android update” down the line, but I feel like this is the first public sign that Google is changing their way of presenting products. There is a transition happening right now, from super-functional products that do not look all that great to software that combines said functionality with a proper design.
This applies especially to Android, as its level of polish and refinement has grown clearly with the latest releases, but with ‘L’ it rises to a whole new level. Both the graphical parts, as well as the software underneath see major changes which not only add functionality, but also make Android feel modern again. Google hasn’t provided any exceptional new feature with Android L, instead they gave the operating system a thorough overview and improved it across the board. The new user interface, along with the promised battery life and new APIs make a great update for one of the world’s most popular operating systems.
When talking about the new look, two things I find the most striking. One is how all major tech companies use the same design guidelines basically, with simple graphical elements, but tons of animations and a high level of interactivity. They all look and feel different, but I am very intrigued to see that Google, Microsoft and Apple all see the user’s interaction in the same way.
The second thing is how Android and iOS took different paths for their development, but they now seem to arrive in the same place. While iOS started out as a very polished software product and only recently has it gained a lot of functionality and has opened a bit, Android has followed the reversed path. It started out as an open platform, tried to stuff in as many functions as possible, but the latest releases have focused on refining the product. In the end, we’ll have two mobile operating systems which look and work great, and perhaps no one will ever care how they evolved.
In the end, no one can tell for sure what’ll happen in the future. As people change their mind, companies change strategies too, but this Android L Developer Preview certainly shows how Google starts to focus more and more on design. I’m a bit scared to be honest, with Google’s agility, resources and now its design focus, they can build great products and they’re stretching wide with Android, from phones to cars and maybe servers in the future. We could have a new software ecosystem dominating the entire tech industry.
The reason behind Sundar Pichai’s overseeing all of Android, Chrome and Google Apps seems logical now. They want to build a Google software universe.