# What is Jetpack?

## Ethos

To create recommended components, tools, and guidance that makes it quick and
easy to build great Android apps, including pieces both from Google and from
trusted OSS sources.

## Team mission

To improve the Android developer experience by providing architectural guidance,
addressing common pain points, and simplifying the app development process
through broad compatibility across Android versions and elimination of
boilerplate code so developers can focus on what makes their app special.

## What is `androidx`?

Artifacts within the `androidx` package comprise the libraries of
[Android Jetpack](https://developer.android.com/jetpack).

Libraries in the `androidx` package provide functionality that extends the
capabilities of the Android platform. These libraries, which ship separately
from the Android OS, focus on improving the experience of developing apps
through broad OS- and device-level compatibility, high-level abstractions to
simplify and unify platform features, and other new features that target
developer pain points.

## What happened to the Support Library?

As part of the Jetpack project to improve developer experience on Android, the
Support Library team undertook a massive refactoring project. Over the course of
2017 and 2018, we streamlined and enforced consistency in our packaging,
developed new policies around versioning and release, and developed tools to
make it easy for developers to migrate.

Revision 28.0.0 of the Support Library, which launched as stable in September
2018, was the last feature release in the `android.support` package. There will
be no further releases under Support Library packaging.

## Quick links

### Filing an issue

Have a bug or feature request? Please check our
[public Issue Tracker component](http://issuetracker.google.com/issues/new?component=192731&template=842428)
for duplicates first, then file against the appropriate sub-component according
to the library package or infrastructure system.
