A recolor that skips elevation leaves the wrong surface in front of the tap. Android 5.0 Lollipop, announced on 15 October 2014, is the release that made Material Design the platform’s visual system.

Android 5.0 Lollipop is the release Google announced on 15 October 2014 to put Material Design on Android. Sundar Pichai’s post that day calls Lollipop the largest Android release yet, with more than 5,000 new APIs, and describes Material Design as one consistent design across phones, tablets, and TVs. Roman Nurik’s checklist, dated 28 October 2014, says a screen generally holds 2 to 10 surfaces, places phone keylines at 16 dp and 72 dp from the left edge and 16 dp from the right, and keeps animations generally under 300 ms. Ankur Kotwal’s 20 October 2014 developer post says Android 5.0 runs only on the ART runtime and adds 64-bit ABIs. The Android history archive places the release on the platform timeline.

Input or item Value and source Why it matters
Announcement 15 October 2014, Sundar Pichai, Google blog The date the consumer release was named
API count in that post More than 5,000 new APIs Pichai’s count covers the platform, including the visual system
Surface count Generally 2 to 10, Nurik, 28 October 2014 Extra layers make the shadow stack hard to read
Phone keylines 16 dp and 72 dp from the left, 16 dp from the right Alignment uses a published grid
App bar and FAB elevation 4 dp app bar, 8 dp floating action button, same checklist Resting depth has a published normal value
Motion bound Generally under 300 ms, same checklist Long transitions miss the published pace
Runtime Android 5.0 runs only on ART, Kotwal, 20 October 2014 The interface and the runtime shipped together
First named devices Nexus 6, Nexus 9, Nexus Player ship with it; Nexus 4, 5, 7, 10 and Google Play edition devices in the coming weeks A platform date and a handset date differ

Rule of thumb: If the surface count exceeds 10 on one screen, or the parent clips its children, drop a layer or stop clipping the shadow. Nurik’s 28 October 2014 checklist keeps a screen between 2 and 10 surfaces because each shadow is supposed to mark a new surface. The shadows and clipping guide, last updated 28 May 2026, says the parent draws that shadow and clips it by default.

Unbranded black slab phone with the screen off on a pale wooden desk
Example of an unbranded slab handset with the screen off. Material Design still has to arrive as a build on a specific phone.

What did Material Design change on the screen?

Pichai’s 15 October 2014 post says content should respond to touch, or to voice, and that transitions between tasks should feel fluid. He names that approach Material Design. The Lollipop overview, last updated 20 May 2024, still describes the same toolkit: a z-level that raises elements and casts shadows while they move, activity transitions that can share a visual element, ripple feedback on touch controls, vector drawables, and a RenderThread that keeps animation off the main UI thread.

Nurik’s checklist, 28 October 2014, turns that idea into numbers a layout can hit. Surfaces are pieces of digital paper at different elevations. A phone aligns body text, thumbnails, and app bar titles to keylines 16 dp and 72 dp from the left edge and 16 dp from the right. Tablets use 24 dp and 80 dp. UI sizes sit on an 8 dp grid. The app bar is 56 dp tall on phones and 64 dp on tablets. Finer text uses a 4 dp grid. The app bar normally rests at 4 dp elevation and casts a shadow. A floating action button is a circular surface in the accent color, normally at 8 dp, and it floats in front of the other surfaces.

Color is the other half of the same checklist. The signature pair is a primary color and an accent color that contrasts with it. Nurik’s example is a dark blue primary with a neon pink accent. In code, those are colorPrimary and colorAccent. Chris Banes, on 22 October 2014, adds colorPrimaryDark for the status bar. On API 21, AppCompat copies those theme colors onto the framework widgets. On older Android, the same library tints the action bar and a short list of widgets: text fields, checkboxes, radio buttons, switches, and the toolbar.

Chris Banes and Nick Butcher, on 24 October 2014, show elevation as a layout attribute measured in dp. Their sample sets android:elevation="8dp" on a view. The shadow follows the view’s outline, which comes from the background drawable. A circular background therefore throws a circular shadow. CardView supplies a default elevation and corner radius, and cardElevation plus cardCornerRadius change them. The post leaves the numeric default unspecified.

Where a Material layout loses the shadow

The shadow fails in a few published places. The parent draws it and clips it by default, so a card inside a clipping container can have a Z value and still show a cut-off edge. Setting the outline provider to null removes the shadow on purpose. On the 2014 checklist, scrolling the ink off an invisible edge is the layout mistake: you scroll the surface, and android:clipToPadding="false" is the ListView and ScrollView note Nurik gives for that.

Before API 21 the drawing path is different. Nurik says shadows on earlier versions are normally PNG assets. Banes says ripples stay out of AppCompat on those versions because RippleDrawable depends on RenderThread. Clearing android:windowContentOverlay also stops removing the action bar shadow once elevation draws it. The fix he prints is getSupportActionBar().setElevation(0), or an elevation of 0 in the action bar style.

Path What changes Dominant failure mode Prevention
Recolor only Primary and accent update, depth stays flat The wrong surface sits in front of the tap Give each surface an elevation and stay inside 2 to 10
Elevation inside a clipping parent Z is set and the shadow is still cut The parent clips the shadow by default Let the shadow draw past the clip, or remove the clip
Outline provider set to null The view has no outline The shadow disappears Keep the outline that comes from the background
Pre-Lollipop ripple AppCompat tints a subset of widgets Touch feedback has no ripple Treat ripples as an API 21 behavior and ship PNG shadows for older phones
Old overlay flag windowContentOverlay is null The action bar shadow remains Set the action bar elevation to 0
Close view of an unbranded black phone with a plain cable plugged into the bottom port
A platform theme still has to be built and delivered to a specific phone.

How do you convert that elevation to pixels?

The shadows guide separates two parts of Z. Elevation is the resting component. TranslationZ is the animated lift, used when a control rises for a press. Both are in dp.

Z = elevation + translationZ

Screen pixels come from the density guide:

px = dp × (dpi / 160)

Worked example. Use Nurik’s normal floating action button, 8 dp, at rest, so translationZ is 0 dp. Use the density guide’s xxhdpi bucket, about 480 dpi. The 8 dp, 0 dp, and 480 dpi figures are the published inputs for this arithmetic.

Z = 8 dp + 0 dp = 8 dp

px = 8 × (480 / 160) = 24 px

The same screen turns the 4 dp app bar into 12 px. The 24 px figure is the Z value in screen pixels. The shadows guide says a higher Z casts a larger, softer shadow, and it does not publish a blur radius, so 24 px is not a shadow size. The density guide marks 480 dpi with a tilde. A panel at 440 dpi or 500 dpi changes the pixel result by the same formula.

Diagram of Z equals elevation plus translationZ, with 8 dp, 0 dp, and 24 px on an xxhdpi screen
The Z sum is from the shadows guide. The 8 dp resting elevation is from Nurik's 28 October 2014 checklist. The 480 dpi bucket and the dp-to-px formula are from the density guide. The 0 dp translation is the resting case.

What changed under the interface?

Kotwal’s 20 October 2014 post says Android 5.0 runs exclusively on ART. He lists ahead-of-time compilation, more efficient garbage collection, and better debugging. He writes that in many cases ART improves performance without a code change. The current Lollipop overview, last updated 20 May 2024, describes ART as a mix of ahead-of-time, just-in-time, and interpreted code on ARM, x86, and MIPS, and says it is fully 64-bit compatible. The 2014 sentence and the 2024 sentence are both on Google pages. They do not use the same list of execution modes.

64-bit support is in both. Kotwal says Java-language apps run on 64-bit architectures with no modifications, and that NDK r10c covers native code. The overview names the Nexus 9’s NVIDIA Tegra K1 as a 64-bit device and lists new ABIs for ARM v8, x86-64, and MIPS-64. A native library that ships only the older ABI stays on that older ABI.

Project Volta is the battery half of Kotwal’s post. Battery Historian, included in the SDK, plots power events. JobScheduler runs background work when the device is idle, on an unmetered network, or on a charger. The overview adds dumpsys batterystats and points Battery Historian at https://github.com/google/battery-historian. Pichai’s consumer post separately says a battery saver feature extends device life by up to 90 minutes. That sentence is an upper bound in the 15 October 2014 announcement. This page has no per-phone power log behind it.

Lock-screen notifications and heads-up notifications shipped in the same release. The overview says the user can allow none, some, or all notification content on a secure lock screen, and that a heads-up notification is a small floating window for alerts such as an incoming call. Overview, the redesigned recents space, can show separate activities as individual documents. Pichai also describes multiple user accounts, a guest user mode, and Smart Lock with a trusted device such as a watch or a car.

What still has to be paid for after the theme ships

The announcement date and the handset date are different bills. Pichai writes that Android 5.0 comes on Nexus 6, Nexus 9, and Nexus Player, and that it would also reach Nexus 4, Nexus 5, Nexus 7, Nexus 10, and Google Play edition devices in the coming weeks. Nexus 9 and Nexus Player opened for pre-order on 17 October, with Nexus 9 in stores from 3 November. Nexus 6 pre-orders were planned for late October and store stock for November, unlocked through the Play store or on a contract or installment plan from AT&T, Sprint, T-Mobile, U.S. Cellular, and Verizon. He says carrier timing varies. A phone outside that list still needed the vendor’s build. The same post mentions Android One, launched in India and described as coming to other countries, as a separate effort to put smartphones online. It does not add those phones to the 15 October delivery list.

The app bill is the second drawing path. On API 21 the framework casts the shadow from elevation. On earlier versions the checklist says shadows are normally PNG assets, and ripples are absent. An app that sets colorPrimary and stops there still has that older asset path for every phone waiting on the weeks in Pichai’s sentence. AppCompat v21, com.android.support:appcompat-v7:21.0.+ in Banes’s sample, is the library Google published for that split. This page does not price the extra assets.

Later pages on this site pick up the threads Lollipop opened. Android 4.4 KitKat is the prior release’s memory budget. Android 6.0 Marshmallow is the next platform step for permissions, Doze, and fingerprint. Material You and Material 3 Expressive are the later design pages. Project Treble is the later split between the Android framework and vendor code, which is an update-delivery problem after the October 2014 device list.

Platform event: 15 October 2014. Original publication record: 20 October 2014.

How this page was checked

The figures above come from public Google documents: Pichai’s post with published_time 2014-10-15, Kotwal’s post dated 20 October 2014, Banes’s AppCompat post dated 22 October 2014, the Banes and Butcher implementation post dated 24 October 2014, Nurik’s checklist dated 28 October 2014, the Lollipop overview last updated 20 May 2024, the shadows guide last updated 28 May 2026, and the density guide. The worked example uses the published Z sum, Nurik’s 8 dp resting elevation, a resting translation of 0 dp, the documented xxhdpi bucket of about 480 dpi, and the published dp-to-px formula.