AndroidX Overview

We are rolling out a new package structure to make it clearer which packages are bundled with the Android operating system, and which are packaged with your app's APK. Going forward, the android.* package hierarchy will be reserved for Android packages that ship with the operating system; other packages will be issued in the new androidx.* package hierarchy.

Existing packages are being refactored to use the new hierarchy. Historical artifacts—those versioned 27 and earlier, and packaged as android.support.*—will remain available on Google Maven; however, all new development will occur in the new androidx.*-packaged artifacts versioned starting from 1.0.0.

For a full mapping of all the old classes and build artifacts to the new ones, see the AndroidX refactoring page. For more information about the AndroidX refactor, see the blog post.

Versioning changes

The new artifacts will follow Semantic Versioning, and will update independently, instead of all at once. Following this restructuring, it will be possible to update AndroidX libraries in your project independently. This avoids the problem of updating many Support Library modules in your project from e.g. 26.1.0 to 27.0.0 all at once.

New Project

If you create a new project using the androidx-packaged dependencies (as opposed to refactoring an existing project with the Android Studio tool), your new project needs to target API level 28, and you will need to add the following lines to your gradle.properties file:

android.useAndroidX=true
android.enableJetifier=true