A users’ guide to Android 4.4′s new developer features

Screenshot 2013-11-01 at 6.55.36 AM

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.

Performance

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.

Graphics performance

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.

kk-rs-chart-versions

Battery life

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.

Improved features

NFC

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.

Printing

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.

kk-print-land-n5

SMS

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.

UI

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.

kk-home

Improved accessibility

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.

kk-captions-n5

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.

kk-saf2-n5 kk-saf1-n5
New sensors

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.

Media capabilities

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.

,

About the author

James recently graduated law in Melbourne, and decided to run away to London to avoid getting a real job. In between long walks on the beach and eating by candlelight, he enjoys boring people with rants about technology. He has... (read more)


  • Montalbert_Scott

    Thanks for that summary James. Very useful. Can’t wait to see what the developers can do with all this new stuff..

  • Andreas Koepke

    I like the new NFC features. I assume you need to have the encryption keys for Mifare cards in order for this to work though. I can also see the reaction of the transit guard when you present the back of the phone to scan instead of the actual card.

    Despite any explanations I may have, I think I will end up with a fine.

    • http://ausdroid.net/ James Finnigan

      You’re probably right :( But we can still dream!

    • NFC Payment

      What kind of lower level communication this will be using to communicate with the payment terminal ???….I assume these andriod application will require a phone with an NFC Capibility meaning an NFC antenna ? is that correct ?

      • Andreas Koepke

        Yes, this is just expanding the existing NFC support in Android which is only available on phones with NFC chips and antennas installed. The Nexus line has had this for years (started with Nexus S) and other manufacturers are releasing phone with NFC now. The Samsung S3 and S4 both have NFC as does the HTC One and the Xperia Z along with a few other Xperia devices.

  • Harpersneil

    Great article, thanks!