Profile cover photo
Profile photo
Xavier Ducrohet
Android Tools Lead
Android Tools Lead

Xavier's posts

Post has attachment
"A source tells ThinkProgress that the Kuwaiti embassy, which has regularly held the event at the Four Seasons in Georgetown, abruptly canceled its reservation after members of the Trump Organization pressured the ambassador to hold the event at the hotel owned by the president-elect. The source, who has direct knowledge of the arrangements between the hotels and the embassy, spoke to ThinkProgress on the condition of anonymity because the individual was not authorized to speak publicly. ThinkProgress was also able to review documentary evidence confirming the source’s account."

Post has attachment
wow, just wow...

"Knudsen called the Third Reich “the miracle of the 20th century.” The miracle of the 21st century: that Reince Priebus and his speechwriters couldn’t find a heartwarming tale about someone who didn’t help fuel the Nazi war machine."

Post has shared content
This web page highlights some of the cool interactive graphics built for UI designer. They almost seem excessive, but went a long way making the concepts easy to learn and memorable.

Post has shared content
If you missed the live stream of our Google IO talk about ConstraintLayout and the new UI builder, it is now available online!

+John Hoford+Romain Guy#ConstraintLayout #IO16 #Android

Post has shared content
We announced today the project I have been working on with +John Hoford for the past year: a new constraint-based layout for android and its associated UI builder, complete with powerful tools to help you create constraints, all available on the Android Studio 2.2 preview! (use the canary build). The UI builder has been built in parallel of the layout system, and really takes advantage of it to provide a new experience.

+Romain Guy  did a really nice demo of it during the "What's new on Android"

John and I will also give a talk about it on friday morning , which will be streamed as well.

There's a codelab available , and you might have seen the mention in the keynote

Keep in mind, this is a preview, released as an alpha version -- "there might be bugs" :) -- but we want to hear from you as you use it -- don't hesitate to contact us and share suggestions, feature requests and of course, bug reports.

Check it out!

#ConstraintLayout #Android #AndroidStudio

Post has shared content
Please update to Android Studio v2.1.1

We wanted to make you aware of an important security update for Android Studio.

Today we released the Android Studio 2.1.1 update. The incremental update addresses two security vulnerabilities in the underlying IntelliJ platform that affects all previous versions of Android Studio:

Built-in WebServer Vulnerabilities: A Cross-Site Request Forgery (CSRF) flaw in the IDE’s built-in WebServer could allow an attacker to access the local file system from a malicious web page without user consent.

Internal RPC Vulnerabilities: Over-permissive Cross-Origin Resource Sharing (CORS) settings could allow an attacker to access various internal API endpoints; gain access to data saved by the IDE; gather various meta-information, like IDE version; or open a project without permission.

We have had no reports of active customer exploitation or abuse of these newly reported issues, but it’s important that you update to this new version now.

JetBrains notified Google of two security issues that affect all versions of Android Studio and we worked together to develop a solution. These issues not only affect the Android Studio development environment but all JetBrains products built on IntelliJ Platform including IntelliJ IDEA. See JetBrains security posting here:

We are offering security patches for versions 1.5.1, 2.0, and 2.1 of Android Studio to upgrade to v2.1.1. Simply go into Android Studio and check updates (Help → Check for Update [Windows/Linux] , Android Studio → Check for Updates [OS X]).

If you need to stay on Android Studio 1.5.x, we are also offering a zip file of v1.5.2, which includes the patch for the security vulnerabilities. Download the zip from Android Studio tools website ( and manually install the zip package over your existing Android Studio installation. 

Post has shared content
Android Studio 2.1 now available as stable

Built on the speed and features of Android Studio 2.0, the stable release of Android Studio 2.1 includes updates so you can try out new features and APIs of the developer preview including the new Jack compiler and Java 8 language support.

In addition to support for the N Developer Preview, Android Studio 2.1 also includes performance improvements to Instant Run which leads to faster edit and deploy build speeds.

Blog Post:

Post has shared content
Take our Android Studio survey!

The Android Studio team wants to hear your feedback in order create features that most benefit you.

Post has attachment
In case you missed the livestream.

Post has attachment
TL;DR: If you're doing bytecode instrumentation as part of your Android build, or if you are providing plugins that do instrumentation, and you want it to work with Instant Run, you need to switch to the Transform API.


While it's currently possible to add bytecode instrumentation to the build process, there is (was) no API for it. The general mechanism was to find the dx task, grab its inputs, and replace them with your own outputs. Then the tasks dependencies had to be rewired to include the new intermediary task.

This is problematic for several reasons:
- It's impossible to differentiate some of the inputs (sub-modules vs external libraries)
- Dealing with legacy multi-dex makes it harder as the computation of the main dex class list must also include the output of the instrumentation.
- combining more than one third-party instrumentation is fragile and prone to breakage.

On top of this, this will simply not work with Instant Run. While the original build of the APK does go through the regular build steps, the hotswap mode runs different tasks.

During a regular build, Instant Run adds the following steps:
- Instrumentation of the project classes to add an indirection for code replacement.
- Copy of the classes to compare later and produce the override class.
This must happen after any third party instrumentation, which is not possible with old the mechanism of hooking up instrumentations (since they are added at the end just before dx).

During a hotswap build, Instant Run will run javac, and then compare the output to the previous build output to generate the override class(es). Then, it runs a different dx task that only dx the override classes and nothing else. This flows is very different from the regular build and the old mechanism of hooking up instrumentation would completely miss this.

To fix this, we created the Transform API. Its goal is to provide an API to hook up first and third party instrumentations into the build process. The API does not deal with Gradle tasks, but instead handles what needs to be instrumented, with the plugin doing the task instantiation and wiring.

For information about the transform API please see here:

The Transform API is currently in beta, and we'd like to stabilize it as soon as possible, so we'd love to get feedback. Please join our development Google Groups and give us your feedback:!forum/adt-dev

Wait while more posts are being loaded