# What is Jetpack?

## 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.

For frequently asked questions, see the
[General FAQ](/docs/faq.md).

To get started developing in AndroidX, see the
[Getting started](/docs/onboarding.md) guide.

For information on library and API design, see the
[Library API Guidelines](/docs/api_guidelines/index.md).

## Quick links

### Filing an issue

Have a bug or feature request? Please check our
[public Issue Tracker component](http://issuetracker.google.com/issues?q=componentid:192731%2B)
for duplicates first, then file against the appropriate sub-component according
to the library package or infrastructure system. Learn more at
[Issue tracking](/docs/onboarding.md#tracking-bugs).
