Google Announces LG Nexus 5 Smartphone with Android 4.4 KitKat

Google has partnered with LG and Nestle to bring to market the latest Nexus 5 smartphone featuring Android 4.4 “Kitkat”, the latest, and brand new, release of Android. Let’s first have a look at the device, and then we’ll go through the new features and improvement brought by Android 4.4.

Battery – 2300 mAh with talk time up to 17 hours, standby time up to 300 hours, internet use time up to 8.5 hours on Wi-Fi, and up to 7 hours on LTE. Supports wireless charging.

Dimensions – 69.17×137.84×8.59 mm

Weight – 130g

The phone is available in black or white color, and in the US, costs $349 (16GB flash version) or $399 (32GB version) on Google Play. The device can also be purchased in Canada, U.K., Australia, France, Germany, Spain, Italy, Japan and Korea, but residents from other countries will have to wait a little longer.

What’s new in Android 4.4 Kitkat

As a side note, If you don’t have the cash to buy the Nexus 5, Google announced upcoming KitKat support for several older devices including Nexus 4, Nexus 7, and Nexus 10, as well as the Samsung Galaxy S4 and HTC One Google Play Edition devices. It may also be possible to get beta Android 4.4 “ROMs” earlier for your device from sites like XDA Developers Forums. The factory image for Nexus 5 is already available here.

Android 4.4 brings several performance optimizations and new features for developers:

Memory Optimization and Debugging ToolsAndroid 4.4 has been designed to run smoothly on devices with as little as 512 MB RAM. Google has optimized low level software and middleware such as the kernel and Dalvik, but also apps including Chrome, and YouTube.procstats tool has been added to monitor memory use over time, with run times and memory footprint for foreground apps and background services (more at the end of the post). The meminfo tool has been enhanced to make it easier to spot memory trends and issues.

New NFC Capabilities through Host Card EmulationHost Card Emulation (HCE) allows any app on an Android device to emulate an NFC smart card, without needing a provisioned secure element (SE) in the device. The only thing needed is an NFC controller in the device.

Printing FrameworkAndroid apps can now print any type of content over Wi-Fi or cloud-hosted services such as Google Cloud Print. The framework also allows printer manufacturers to develop their own print services that can be distributed via Google Play.

Storage access Framework
This new framework provides a standard UI to let users browse and open documents, images, and other files across all of their preferred document storage providers (local or cloud storage).

Low-power sensors

Sensor batching – Hardware sensor batching is an optimization to reduce the power consumed during sensor activities. This is particularly useful for low-power, long-running use-cases such as fitness, location tracking, monitoring, etc.. This feature is hardware-dependent, and currently (only?) works on the Nexus 5.

Step Detector and Step Counter – Android 4.4 also adds platform support for two new composite sensors: step detector and step counter. These let your app track steps when the user is walking, running, or climbing stairs, and they are implemented in hardware for low power consumption. Currently available in Nexus 5.

SMS Provider – The new SMS provider and APIs define a standardized interaction model for all apps that handle SMS or MMS messages.

New ways to build apps

Full-screen Immersive mode – It’s now possible to run an app full screen, without status and navigation bar. A swipe from the top or bottom edge of the screen can bring back the system UI.

Transitions framework for animating scenes – The transitions framework lets developers define scenes, typically view hierarchies, and transitions, which describe how to animate or transform the scenes when the user enters or exits them.

Translucent system UI styling

Enhanced notification access – Listener services can access a notification’s actions as well as new extras fields — text, icon, picture, progress, chronometer, and many others.

Chromium WebView – Webview has been completely redesigned and is now based on Chromium.

New Media Capabilities

Screen recording – You can now record a video of the action on your phone with the screen recording utility. Started with the command line: adb shell screenrecord or through the DDMS panel in Android Studio.

Resolution switching through adaptive playback – Seamless change in resolution during playnack. Useful for MPEG-DASH among other things.

LoudnessEnhancer can make speech content more audible.

Common Encryption for DASH

HTTP Live Streaming v7

Audio Tunneling to DSP – This lets the DSP handle audio decoding to improve battery life. In the Nexus 5, audio playback time can last up to 60 hours, an increase of over 50% over non-tunneled audio.

Audio monitoring – For peak and RMS levels

Loudness enhancer – Media playback applications can increase the loudness of spoken content by using the new LoudnessEnhancer effect, which acts as compressor with time constants that are specifically tuned for speech.

Audio timestamps for improved AV sync

Wi-Fi CERTIFIED Miracast – Android 4.4 does not introduce Miracast, Android 4.2 did that, but I understand devices running Android 4.4 Kitkat with be considered “Miracast compatible”, and a new menu has been added in Settings > Developer options > Wireless display certification.

RenderScript Compute

Performance improvement compared to Android 4.3 – No need to recompile the app

GPU acceleration – Available on Nexus 5, Nexus 4, Nexus 10 and Nexus 7 (2013), and coming to more devices.

RenderScript in the Android NDK – Native code can now leverage Renderscript thanks to a new C++ API.

Graphics – SurfaceFlinger has been upgraded to OpenGL ES 2.0 from OpenGL ES 1.0, and the Hardware Composer now supports virtual displays.

New Types of Connectivity

Two New Bluetooth profiles – Bluetooth HID over GATT (HOGP) gives apps a low-latency link with low-power peripheral devices such as mice, joysticks, and keyboards. Bluetooth MAP lets your apps exchange messages with a nearby device, for example an automotive terminal for handsfree use or another mobile device.

IR Blasters – For TV / STB control

Wi-Fi TDLS support – Seamless way to stream media and other data faster between devices already on the same Wi-Fi network by supporting Wi-Fi Tunneled Direct Link Setup (TDLS).

Accessibility

System-wide settings for closed captioning – Users can now go to Settings > Accessibility > Captions to set global captioning preferences, such as whether to show captions and what language, text size, and text style to use.

Enhanced Accessibility APIs

Support for International Users

Drawable mirroring for RTL locales – This allow to reduces the size of the code, but having only one drawable for RTL and LTR languages.

RTL pseudo-locale – Android includes an RTL pseudo-locale as a new developer option to make it easier to test and debug layouts.

Security Enhancements

SELinux (enforcing mode) – Android 4.4 updates its SELinux configuration from “permissive” to “enforcing.” This means potential policy violations within a SELinux domain that has an enforcing policy will be blocked.

Two new cryptographic algorithms:

Elliptic Curve Digital Signature Algorithm (ECDSA) support has been added to the keystore provider improving security of digital signing, applicable to scenarios such as signing of an application or a data connection.

The Scrypt key derivation function is implemented to protect the cryptographic keys used for full-disk encryption.

Tools for Analyzing Memory Use

ProcstatsProcstats keeps track of how apps are running over time, providing data about their execution durations and memory use to help determine how efficiently they are performing.

Procstats

You can access procstats from the adb tool included in the Android SDK, adb shell dumpsys procstats

The Process Stats option shows a high-level metrics on your app’s memory use. On the top of the main screen you can see a summary of system memory status. Green indicates relative amount of time spent with low RAM usage, yellow indicates moderate RAM usage, and red indicates high (critical) RAM usage. Below, there’s the list of process with their (relative computed) memory load.
To see more details about the memory usage of one particular app, tap on it to access the window shown on the right of the image above.