Google Chrome for Android
Google Chrome is available on Android devices with Android 4.0 (Ice Cream Sandwich) and later versions. You can also download it from Google Play.
For a complete list of developer features in Chrome, see chromestatus.com.
A first-class browsing experience
When the user signs into Chrome on one device, the tabs and browsing history of that session are available to the user when she signs into Chrome on another device. Note, it's the entire page content that gets synchronized between Chrome instances, not just the URL, so the user doesn't have to resubmit credentials to see a boarding pass or an article on a site that requires a login.
The address bar uses prefetching to fill in URLs and performs search queries with suggestions based on browsing history and local bookmarks. To save bandwidth, this feature only runs when the user is connected to a wifi network.
Highlights of this user experience include:
- Smooth scrolling of independent elements on the same page
- Fixed-position elements that hold their spot while the user scrolls through the page
- Native inertial scrolling by default
- A much improved multi-touch implementation
- HTML date/time pickers
- Text auto-sizing, also known as font boosting
With these improvements, Chrome for Android enables interactive mobile web experiences.
See all the Chrome for Android features such as tabs, incognito mode, and sync across devices for the user's Google account.
Performance
Chrome for Android brings to small devices the same multi-process architecture, GPU-accelerated rendering, and the V8 JavaScript engine - all optimized for mobile architectures. Chrome for Android delivers fast graphics performance through:
- GPU acceleration for the
canvas
element - Fluid CSS3 transforms and transitions
- Support for
requestAnimationFrame
for more efficient animations
Use Developer Tools to find problems—and fix them
Debugging web pages on the small screen is difficult. There's just not enough real estate to inspect elements and resources on the device. Now you can debug mobile web sites with the full suite of Chrome Developer Tools running on a desktop browser that's connected to your phone via USB. See Remote Debugging for further details.
In addition to the powerful Chrome Developer Tools, Chrome for Android provides more advanced developer features for very specific use cases:
- GPU diagnostics:
chrome://gpu
- AppCache debugging:
chrome://appcache-internals
- Net stack debugging:
chrome://net-internals
You can also use the Resource Timing and User Timing APIs to analyze application performance.
Working offline
Working online is convenient, but connections sometimes fail when the signal is blocked or nonexistent. Chrome for Android supports the latest open web HTML5 features that address this concern, including:
- AppCache or application cache.
- FileSystem and File APIs (File, FileList, FileReader, Blob)
- localStorage for storing simple key-value pairs
- WebSQL for relational data (deprecated)
- IndexedDB, a standard indexed data store
For more about off-line storage, see these articles.
Standards and APIs
Chrome for Android supports modern web standards. This section presents a sampling of features; for an updated view of features per Chrome release, see chromestatus.com.
CSS and presentation
New CSS3 artifacts are available:
- Support for the standard CSS calc function (prefixed as -webkit-calc)
- CSS Filters are supported (prefixed as -webkit-filter)
- The Flexbox layout model is fully supported (prefixed as -webkit-flex)
- Viewport units,
vh
,vmin
, andvw
for responsive design - @supports conditional blocks to test whether Chromium supports certain property/value pairs
- The :unresolved CSS pseudo-class that lets you style a custom element that hasn’t been registered in the browser yet (custom elements are part of the Web Components standard in development)
Elements
Newer standard HTML5 elements supported include the following:
- iframe elements with seamless, srcdoc, and sandbox attributes
- Shadow DOM is now exposed via
element.webkitCreateShadowRoot()
. - The track element, for use with the audio and video tags, lets you set metadata, subtitles, and so forth
- The viewport element that provides for a better presentation of web pages on mobile devices
Device APIs
In a mobile world, it's important to be able to access your user's contextual surroundings, from location and device orientation to camera access. Chrome for Android provides:
- Geolocation API for accessing location
- HTML media capture for camera access
- Device orientation for portrait vs. landscape orientation
- Android Intent URIs such as
tel:
andgeo:
that give access to the dialer and Google maps
Standard APIs
Chrome for Android supports many HTML5 APIs that are ready to use in your apps.
- requestAnimationFrame to achieve optimum animation performance
- Interactive communication between server and client with WebSockets.
- Multi-threading with Web Workers (dedicated only)
- requestFullscreen method (presently via the prefixed call,
webkitRequestFullScreen()
) to allow you to hide the browser UI (chrome) - WebRTC for real-time communication without a plug-in
- WebAudio to process and synthesize audio signals
- Experimental support (via
chrome://flags
in the Chrome address bar) for the following APIs:- WebGL for creating three-dimensional graphics for web browsers
Security
Chrome for Android supports Content Security Policy to significantly reduce the risk and impact of XSS attacks, using the standard (non-prefixed) HTTP header, Content-Security-Policy
.
More resources
For a complete list of developer features in Chrome, see chromestatus.com.
Find more information about open web platform APIs and technologies for mobile on WebPlatform.org.
Known issues
Development is still underway, and there are many additional features being added to Google Chrome for Android. For current status, see the issues list at mcrbug.com and star the ones you need the most. If you find a new issue, log it using new.mcrbug.com.
Share your thoughts
If you run into a mobile web development problem and would like help, please post it to Stack Overflow using the [google-chrome]
and [android]
tags.