Google's introduction of Android 4.4 KitKat, the follow-on to three different versions of Android Jelly Bean, means that users have new features to look forward to—and that mobile developers and designers have a new toolset to learn.
KitKat is designed to work on a wide variety of devices with different amounts of RAM, even devices with as little as 512MB. But while memory optimization is the biggest change in this version of Android, KitKat also features a wide variety of new developer features and functions app makers will want to learn and exploit.
Here's an overview of the 10 most important new developer features in Android KitKat, many of which will also significantly change the ways users interact with Android phones and tablets.
Full-Screen Immersive Mode
Apps in Android can now take expand to take advantage of every last pixel on the screen of a smartphone or tablet. Developers can choose to hide menu and navigation bars, buttons and other chrome to give users a true full screen app. Basically, developers can hide the entire system interface while the user is engaged in their apps.
This can be great for e-reader and other media apps (think newspapers or aggregation apps like Flipboard, Zite or Pulse) and games. To reveal the system user interface, KitKat has a new gesture where a user swipes from the top or the bottom to reveal navigation, menus and buttons.
Developers can now animate between “scenes”—different pages or events within and app—through a new transitions framework in KitKat 4.4. The new framework enables developers to define these scenes and animate them when a user enters or exits them within an app. This will allow apps to feature fades, resizing and other animations.
If developers don't want to individually manage animations and transitions by setting specific scenes, a function called TransitionManager can do it automatically within an apps view hierarchy.
This is generally an awesome update in KitKat. Developers can create high quality video of their apps directly from an Android device. As the Google Play Android app store generally likes to have YouTube videos listed in its app descriptions, making it easy for developers to do this on a device (with an exterior camera) is a good idea.
The screen recording utility is provided within Android 4.4 and lets you capture video of your app and save it as an MP4 file. The recording can done at any device-supported resolution and then shared directly from the device to a computer for post-production. The screen recording function can be found through Android Debug Bridge (ADB) tool in the Android SDK or through the Android Studio integrated developer environment.
Storage Access Framework
The new Storage Access Framework in KitKat allows users to browse and open documents in an app from a variety of cloud storage providers. Want to open a picture from Box, Google Drive, the device’s local storage or another third-party? The Storage Access Framework in Android 4.4 will handle that for you.
Cloud providers or local storage services (such as those offered by individual Android manufacturers) can use the new system by implementing a new document provider class within Android for their service. The document provider class within Android has the APIs (application programming interfaces) necessary to manage, browse, read or write documents within the app from a variety of sources.
Document types include audio and video files, pictures, text, wallpapers and more. Developers can add their own storage services to Android without having to do it on a specific vendor by vendor basis (such as an individual set up for HTC, Samsung etc.).
New WebView & Chromium Features
KitKat includes new implementation of WebView based on Chrome for Android 30. It lets developers use the latest compatibility features, performance standards and support in WebView to access their Web-based content.
New Near Field Communications Platform Support
Host Card Emulation (HCE) in Android 4.4 is a new platform to support Near Field Communications (NFC) transactions. Google says that with HCE, “any app on an Android device can emulate an NFC smart card, letting users tap to initiate transactions with an app of their choice—no provisioned secure element (SE) in the device is needed.” Apps can also act in a new “Reader Mode” to receive NFC functionality (like payment processing, building access, tickets etc.).
The HCE is uses an Application Identifier (AID) to route the different NFC function from the hardware in a device to the right app. For instance, tapping your phone like you would a subway card is a lot different from tapping your phone at a retail store to pay for something. Apps can state what AIDs they want in what category such as payments or building access and so forth. HCE doesn’t replace the need for an NFC chip in a device, but it makes NFC more widely available and compliant.
The concept of “mobile printing” has been alive for some time, but we are now seeing much better integration into mobile devices. Microsoft has done well with wireless printing for mobile devices in Windows 8.1 and Windows 8.1 RT. Kitkat gets Android headed down the road to more ubiquitous printing as well.
Android apps will be able to print most types of content either through a Wi-Fi setup or through the cloud (where information is sent to the cloud from the device then back down to the printer). Google provides its own service for Android called Google Cloud Print. Android 4.4 introduces native platform support along with application programming interfaces for new types of printer support. Printer makers can use the APIs to make their devices compatible and build apps available in Google Play for users to download for specific printers.
For compatibility, Android will turn documents into PDFs as the primary printing files. The printing API provides native and WebView support to turn documents into PDFs before sending them to the printer.
Earlier in 2013, both HTC and Samsung created Infrared Blasters for their flagship devices so that you could control your television with your smartphone. At the time, the Android community wrung its hands about this because it wasn't a natively supported function in Android, just a manufacturer add-on built on top of Android.
Google just changed that in KitKat. If any Android phone has infrared support, developers can tap into it and the application programming interface will tune the frequency from the phone to whatever remote receiver it is pointed at. Want to make an Android a universal remote? Now’s your chance.
New Bluetooth Profiles
Two new Bluetooth profiles come to Android KitKat 4.4. The new profiles let apps support a bigger range of low-power devices and new media interactions. If you are familiar with your wonky Bluetooth functionality, the two new profiles are Bluetooth HID over GATT (HOGP) and Bluetooth MAP. Support for Bluetooth AVRCP 1.3 is also included.
Bluetooth HID over GATT provides a low-latency link to low-powered devices like computer mice or keyboards. Bluetooth MAP let’s apps exchange messages with nearby devices (say, a smartwatch, for instance). The new profiles and support add onto what Google built into Android with Bluetooth in Jelly Bean 4.2.
A side note, Android 4.4 KitKat devices can now be certified by the Wi-Fi alliance as being Miracast compatible. That is a big step for Android in being able to stream content from a device to a television by supporting more streaming standards. Now only if the Chromecast supported Miracast.
Android 4.4 has platform support for hardware sensor batching to optimize power consumed by various sensors. Google is working with hardware manufacturers to allow for collection and delivery of sensor data on an Android device while allowing device’s processor (CPU) to stay in low-power mode.
This should improve battery life and performance for sensor-driven applications. Ever want to take and track a 100-mile bike ride and finish up with a not-dead battery? This is Android’s solution. Let’s hope that it makes it into Android-powered smartwatches in the future.
The biggest example of this is the new step counter and detector for motion controlled sensors. The step detector uses the accelerometer to analyze how many steps you take during the day. The step counter keeps track of the total. These are available in the Nexus 5 and Google is working with manufacturers to bring the features to more devices.
RenderScript Takes Advantage Of Device Hardware
RenderScript Compute was first introduced in Android Honeycomb 3.1. It is an application programming interface “designed to accommodate tasks that can be efficiently split and run concurrently on the underlying hardware which may be only known at the runtime of the application.” Essentially, it helps Android run faster and more efficiently by segmenting processes within an app.
Graphical Processor Unit (GPU) acceleration that was introduced in Jelly Bean 4.2 is spreading to the rest of the Android ecosystem and will be supported on the Nexus 4 and Nexus 5. A new C++ API in the Android Native Developer Kit in KitKat 4.4 lets you access RenderScript through the Android platform framework. Big tasks that put a lot of pressure on the device’s hardware can now be integrated into an apps native code and allow for support from multiple smartphone CPU and GPU cores.
What does that mean, exactly? Well, the knock against many quad-core smartphones is that most apps don’t take advantage of all the power the devices have to offer. The new functionality in RenderScript Compute in Android helps developers make more powerful apps while writing less code in order to get the most out of a device’s hardware.