In the wee hours of this morning, after much speculation and more leaks than you’d find in a Californian bar, Google finally released Android 4.4, more commonly known as Kit Kat. The latest version of Android largely improves on what was already there, with better support for things like printing and NFC card emulation, but also adds a host of new features and APIs designed to improve performance and battery life across all devices.
Google claim to have designed Kit Kat to run on devices with as little as 512MB RAM, which would be great, if it’s true. Currently, any device with less than 2GB RAM quickly becomes bogged down and will grind to a halt, particularly if you’re trying to do a couple of things at once. Google have made the system better at handling memory as well as providing additional configuration options to OEMs to better tune Android to their hardware.
Android 4.4 has a new API, ActivityManager.isLowRamDevice(), which allows developers to tailor their app’s behaviour to different systems. For devices with low-memory, developers can strip out some of the more intensive features so that the application performs well on all devices.
There are also a couple of new tools to monitor memory use. Procstats details memory use over time giving run times and memory footprint for foreground apps and background services, and meminfo can help identify issues with memory and reveals additional overhead that hasn’t been previously visible.
RenderScript is a low-level API used in complex processing, like 3D graphics. Android 4.4 offers significant performance increases for RenderScript execution without the developers having to change their code or recompile it against the newest SDK. GPU acceleration now is now supported on the Nexus 4, 5, and 7 (2013), as well as the Nexus 10.
Android 4.4 changes the way a number of platform features work to reduce their drain on your device’s battery life. One of these changes is called ‘sensor batching’, which is said to dramatically reduce power consumed by ongoing sensor activities.
Sensor batching lets your device remain in a low-power idle state by delivering data from the device’s sensor in batches, rather than as it is collected. Applications can request this data at specified intervals, and it is ideal for fitness or location tracking applications where data is being collected over a long period of time. So far, sensor batching is only available on the Nexus 5, but Google say they are working with their chipset partners to bring it to more devices soon.
Kit Kat supports audio tunnelling to a digital signal processor in the device’s chipset to offload some of the playback processing to the DSP so that the system can stay in a low-power mode. Google claim that the Nexus 5’s battery lasts over 50% longer with audio tunnelling enabled than without. Tunnelling isn’t something that has to be built into applications individually either as it’s done by the system. It does require special hardware support though, and so far it’s only available on the Nexus 5, but OEMs are likely going to want to support this.
NFC is the most underutilised feature on Android phones, but Google are hoping to change that in Kit Kat, adding a Reader Mode as well as support for Host Card Emulation (HCE).
HCE allows your Android device to emulate any ISO/IEC 7816-based smart card that uses the ISO/IEC 14443-4 protocol for transmission, without the need for a provisioned secure element in the device. MasterCard’s PayPass and Visa’s PayWave technologies are both compatible with these standards as is Melbourne’s Myki ticketing system. HCE should remove the biggest obstacle for developers and hopefully we’ll soon live in a world where a mobile phone can replace most of your wallet.
Reader Mode lets an Android device act as a reader for HCE cards and other NFC-based transactions.
Android 4.4 introduces native printing support throughout the platform and there are now APIs for managing print jobs. There are two sides to this – printer manufacturers can use the new APIs to develop their own print services which act as plugins to Android’s printing platform, and can be distributed through Google Play. Application developers can use the new APIs to add printing support to their applications with minimal code changes. Devices with Android 4.4 will have Google Cloud Print pre-installed and a number of Google apps, such as Chrome, Drive, Gallery and QuickOffice will support printing.
We know that Google will be shortly updating Hangouts to support SMS integration, but Android 4.4 also now has a shared SMS provider and new APIs that allow third-party apps to tie into SMS and MMS without any dodgy hackery. This means that you’ll be able to pick a messaging application that you prefer, and set it as the default without worrying about whether you’ll be able to send MMS or getting duplicate notifications.
Android 4.4 brings a full-screen immersive mode that hides away the system UI completely, letting you use the entire screen to display content. This is particularly helpful on devices with on-screen navigation buttons, as you won’t lose that precious real estate when playing games or watching movies. The system bars can be recalled by swiping from the edge of the screen.
You’ll notice from pictures of the Nexus 5 that when on the home screen, the system UI bars are translucent. This isn’t limited to the home screen though, and developers can request that Android render their apps this way.
Accessibility has been improved in Kit Kat, with a system-wide Closed Captioning system. There are global settings that control whether captions are switched on or off, as well as the foreground and background colours and typeface.
The accessibility APIs now support more precise structural and semantic description and observation of on-screen elements, so developers can add more information to assist the screen reader.
Rad new features
Storage access framework, AKA file manager
File managers are something that have always been shunned on mobile devices for some reason, but Google are bringing file management back in a big way with Kit Kat’s new storage access framework. The new UI, which can be accessed from any app, makes it easy to access data from anywhere. There is an API for cloud storage providers, such as Box, to plug into the framework.
Fitness apps are all the rage these days, and Android 4.4 includes platform support for step detection and counting. The step detector analyses accelerometer input and will trigger an event when it detects that the user has taken a step. The step counter keeps track of the number of steps taken. Third party apps that want to make use of this data just have to request it from the system, rather than running their own algorithms in the background. Step detection and counting is so far only available on the Nexus 5, but hopefully Google will be able to bring it to other phones soon.
For phones with an IR blaster, like the HTC One and Samsung Galaxy S 4, Kit Kat brings full platform support for the feature. The API is hardware independent and so developers will be able to build one app to control the IR blaster on all Android devices.
New Bluetooth profiles
The Bluedroid Bluetooth stack used in Android now supports Bluetooth HID over GATT (HOGP), Bluetooth MAP and Bluetooth AVRCP 1.3. HOGP allows a low-latency link with low-power HIDs like mice, keyboards, or game controllers; MAP lets apps exchange messages with a nearby device; and AVRCP 1.3 lets users set an absolute volume on the system from a Bluetooth device.
Google have added a number of features to Kit Kat to enhance media playback:
- Adaptive playback allows a seamless change in resolution during playback. This is great for streaming video, as you’ll be able to change from portrait mode to fullscreen landscape without any gap while rebuffering.
- Common encryption for MPEG-DASH
- HTTP Live Streaming (HLS) support has been updated to a superset of version 7 of the HLS specification.
- Audio tunnelling to DSP
- Audio monitoring tools to view peak and RMS levels of currently-playing audio
- Loudness enhancer
- Audio timestamps to better synchronise audio to video frames
Android 4.4 now supports screen recording with a new utility that lets you capture video as you use the device and save it as an MP4 file. You can record at any resolution and bitrate you like (so long as the device supports it), with the default being the device’s display resolution.
So there you have it! Google have added a lot for developers to play with in Android 4.4, and I can’t wait to see what will come of it.