No description, website, or topics provided.
Java Kotlin Python ANTLR Shell HTML
Switch branches/tags
support-library-27.1.1 support-library-27.1.0 support-library-27.0.2 support-library-27.0.1 android-wear-p-preview-2 android-wear-o-preview-4 android-wear-o-preview-3 android-wear-n-preview-2 android-wear-n-preview-1 android-wear-8.0.0_r1 android-wear-7.1.1_r1 android-wear-5.1.1_r1 android-wear-5.1.0_r1 android-wear-5.0.0_r1 android-vts-8.1_r5 android-vts-8.1_r4 android-vts-8.1_r3 android-vts-8.0_r8 android-vts-8.0_r7 android-vts-8.0_r6 android-vts-8.0_r2 android-vts-8.0_r1 android-support-lib-19.1.0 android-sdk-support_r11 android-sdk-adt_r20 android-sdk-adt_r16.0.1 android-sdk-4.4.2_r1.0.1 android-sdk-4.4.2_r1 android-sdk-4.0.3_r1 android-sdk-4.0.3-tools_r1 android-p-preview-5 android-p-preview-4 android-p-preview-3 android-p-preview-2 android-p-preview-1 android-o-preview-4 android-o-preview-3 android-o-preview-2 android-o-preview-1 android-o-mr1-preview-2 android-o-mr1-preview-1 android-o-mr1-iot-release-1.0.3 android-o-mr1-iot-release-1.0.2 android-o-mr1-iot-release-1.0.1 android-o-mr1-iot-release-1.0.0 android-o-mr1-iot-preview-8 android-o-mr1-iot-preview-7 android-o-mr1-iot-preview-6 android-o-iot-preview-5 android-n-preview-5 android-n-preview-4 android-n-preview-3 android-n-preview-2 android-n-preview-1 android-n-mr2-preview-2 android-n-mr2-preview-1 android-n-mr1-preview-2 android-n-mr1-preview-1 android-n-iot-release-smart-display android-n-iot-release-smart-display-r2 android-n-iot-release-polk-at1 android-n-iot-release-lg-thinq-wk7 android-n-iot-preview-4 android-n-iot-preview-2 android-m-preview android-m-preview-2 android-m-preview-1 android-l-preview_r2 android-cts-verifier-4.0.3_r1 android-cts-verifier-4.0_r1 android-cts-9.0_r1 android-cts-8.1_r8 android-cts-8.1_r7 android-cts-8.1_r6 android-cts-8.1_r5 android-cts-8.1_r4 android-cts-8.1_r3 android-cts-8.1_r2 android-cts-8.1_r1 android-cts-8.0_r12 android-cts-8.0_r11 android-cts-8.0_r10 android-cts-8.0_r9 android-cts-8.0_r8 android-cts-8.0_r7 android-cts-8.0_r6 android-cts-8.0_r5 android-cts-8.0_r4 android-cts-8.0_r3 android-cts-8.0_r2 android-cts-8.0_r1 android-cts-7.1_r20 android-cts-7.1_r19 android-cts-7.1_r18 android-cts-7.1_r17 android-cts-7.1_r16 android-cts-7.1_r15 android-cts-7.1_r14 android-cts-7.1_r13 android-cts-7.1_r12
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
.idea Disable * imports in kotlin files Jul 19, 2018
animation Fix flakey path interpolator test Aug 15, 2018
annotations Move to beta01 version for AndroidX 1.0.0 release Jun 21, 2018
api Update docs generation to exclude dependency R files Oct 18, 2017
appcompat Fixed error in documentation saying that the default night mode is MO… Aug 21, 2018
arch Move 'arch core' libaries out of 'app-toolkit' Jul 24, 2018
asynclayoutinflater Move to beta01 version for AndroidX 1.0.0 release Jun 21, 2018
benchmark Add gradle commands to lock/unlock clocks for stable benchmarking Aug 3, 2018
biometric Merge "Fix Biometric dependencies to 1.0.0-rc01" into androidx-master… Aug 14, 2018
browser Move minSdkVersion default into AndroidX plugin Jul 14, 2018
buildSrc Merge "Add NavInflaterBenchmark" into androidx-master-dev Aug 20, 2018
car Merge "Support CharSequence in subheader and seekbar list item." into… Aug 20, 2018
cardview Move to beta01 version for AndroidX 1.0.0 release Jun 21, 2018
collection Enable Metalava API tracking for non-Android Jul 11, 2018
content Move to androidx.test for tests. Jul 11, 2018
coordinatorlayout Skip insets test on TV Jul 17, 2018
core Annotates some kotlin tests with the relevant size annotation Aug 21, 2018
cursoradapter Move to beta01 version for AndroidX 1.0.0 release Jun 21, 2018
customview Move to androidx.test for tests. Jul 11, 2018
development Replacement for ``. Aug 21, 2018
docs-fake Delete SupportAndroidTestAppPlugin. Aug 15, 2018
documentfile Move to beta01 version for AndroidX 1.0.0 release Jun 21, 2018
drawerlayout DrawerLayout clean up. Aug 6, 2018
dumb-tests Create a dummy project for test runner Aug 16, 2018
dynamic-animation Move to androidx.test for tests. Jul 11, 2018
emoji Mark all the test >3s as @LargeTest Jul 19, 2018
exifinterface Mark all the test >3s as @LargeTest Jul 19, 2018
fragment Fix flaking DialogFragmentTest Aug 17, 2018
frameworks/support Add offline docs target for support lib gradle build Jul 1, 2016
gradle/wrapper Move to using Gradle 4.9 Jul 27, 2018
graphics Removed fields in AnimatedVectorDrawableTest in favor of local Aug 15, 2018
gridlayout Move to androidx.test for tests. Jul 11, 2018
heifwriter Move minSdkVersion default into AndroidX plugin Jul 14, 2018
interpolator Move to beta01 version for AndroidX 1.0.0 release Jun 21, 2018
jetifier Merge "Fix jetifier bug in constant pool." into androidx-master-dev Aug 20, 2018
leanback-preference The great preference sample app migration Aug 14, 2018
leanback Fix or suppress outstanding error-prone errors Aug 4, 2018
legacy Remove unused testing dependencies in legacy modules Jul 17, 2018
lifecycle Merge "docs: Fixed code snippet in ViewModel reference." into android… Aug 20, 2018
loader Fix ModernAsyncTaskTest.testCancellationWithException on API 15 Aug 14, 2018
localbroadcastmanager Move to beta01 version for AndroidX 1.0.0 release Jun 21, 2018
media-widget Remove DataSourceDesc2.getType Aug 20, 2018
media Merge "Fix flaky SessionPlaylistAgentTest" into androidx-master-dev Aug 21, 2018
media2 Merge "Rename CallbackDataSource2 to DataSourceCallback2" into androi… Aug 21, 2018
mediarouter Merge "Add divider to route volume slider layout" into androidx-maste… Aug 21, 2018
navigation Annotates some kotlin tests with the relevant size annotation Aug 21, 2018
paging Delete SupportAndroidTestAppPlugin. Aug 15, 2018
palette Annotates some kotlin tests with the relevant size annotation Aug 21, 2018
percent Move to androidx.test for tests. Jul 11, 2018
persistence Call getWrappedDb in DatabaseErrorHandler. Jul 18, 2018
preference Disables test coverage for Preference ktx tests Aug 21, 2018
print TargetApi annotation scrub Jun 28, 2018
recommendation Move minSdkVersion default into AndroidX plugin Jul 14, 2018
recyclerview Attempt to fix flaky test in RecyclerViewLayoutTest. Aug 17, 2018
remotecallback RemoteCallback Proposal Aug 16, 2018
room Merge "Delete SupportAndroidTestAppPlugin." into androidx-master-dev Aug 16, 2018
samples Adds fallback implementations for launching nested screens / fragments Aug 21, 2018
scripts Add support library deps-license script Oct 15, 2015
slices Merge "Don’t tint the progress bar if we don’t have a good color" int… Aug 17, 2018
slidingpanelayout Merge "Deprecate capability setters in favor of actions." Jul 2, 2018
swiperefreshlayout Update SwipeRefreshLayout to Nested Scrolling V2. Jul 27, 2018
testutils-ktx Create collection-ktx adapted from core-ktx util. Mar 10, 2018
testutils Move to androidx.test for tests. Jul 11, 2018
textclassifier Sample projects for textclassifier Aug 20, 2018
transition Fix flakiness of FragmentTransitionTest.sharedTransition Aug 17, 2018
tv-provider Move minSdkVersion default into AndroidX plugin Jul 14, 2018
versionedparcelable Use $T with JavaPoet for types Aug 17, 2018
viewpager Convert otherwise-unused fields to local Aug 8, 2018
viewpager2 Increase timeout for single test Aug 15, 2018
wear Auto close nav drawer 1 sec after drag to peek Aug 7, 2018
webkit [WebView Support Library] test resetting WebViewClient Aug 13, 2018
work Reset the scheduled bit when rescheduling on AlarmManager. Aug 21, 2018
.gitignore Remove separate app-toolkit project Jul 25, 2018
LICENSE.txt Include LICENSE.txt file in Support Library project root May 11, 2017
OWNERS Add pavlis@ and jeffrygaston@ to top-level OWNERS May 23, 2018
PREUPLOAD.cfg Adding ktlint hook to support library. Nov 17, 2017 Update to point people to the new importMaven tool. Aug 21, 2018
build.gradle Move buildOnServer task init to AndroidX plugin Aug 10, 2018 Enable Gradle Build Cache May 23, 2018
gradlew Enable lint stacktraces. May 17, 2018
include-composite-deps.gradle Have Gradle permit SL to be an included build Jan 18, 2018
include-support-library.gradle Have Gradle permit SL to be an included build Jan 18, 2018
settings.gradle Merge "Add NavInflaterBenchmark" into androidx-master-dev Aug 20, 2018

AOSP AndroidX Contribution Guide

Accepted Types of Contributions

  • Bug fixes - needs a corresponding bug report in the Android Issue Tracker
  • Each bug fix is expected to come with tests
  • Fixing spelling errors
  • Updating documentation
  • Adding new tests to the area that is not currently covered by tests
  • New features to existing libraries if the feature request bug has been approved by an AndroidX team member.

We are not currently accepting new modules.

Checking Out the Code

NOTE: You will need to use Linux or Mac OS. Building under Windows is not currently supported.

Follow the “Downloading the Source” guide to install and set up repo tool, but instead of running the listed repo commands to initialize the repository, run the folowing:

repo init -u -b androidx-master-dev

The first time you initialize the repository, it will ask for user name and email.

Now your repository is set to pull only what you need for building and running AndroidX libraries. Download the code (and grab a coffee while we pull down 3GB):

repo sync -j8 -c

You will use this command to sync your checkout in the future - it’s similar to git fetch

Using Android Studio

Open path/to/checkout/frameworks/support/ in Android Studio. Now you're ready edit, run, and test!

If you get “Unregistered VCS root detected” click “Add root” to enable git integration for Android Studio.

If you see any warnings (red underlines) run Build > Clean Project.


Full Build (Optional)

You can do most of your work from Android Studio, however you can also build the full AndroidX library from command line:

cd path/to/checkout/frameworks/support/
./gradlew createArchive

Testing modified AndroidX Libraries to in your App

You can build maven artifacts locally, and test them directly in your app:

./gradlew createArchive

And put in your project build.gradle file:

handler.maven { url '/path/to/checkout/out/host/gradle/frameworks/support/build/support_repo' }

Running Tests

Single Test Class or Method

  1. Open the desired test file in Android Studio.
  2. Right-click on a test class or @Test method name and select Run FooBarTest

Full Test Package

  1. In the project side panel open the desired module.
  2. Find the directory with the tests
  3. Right-click on the directory and select Run androidx.foobar

Running Sample Apps

The AndroidX repository has a set of Android applications that exercise AndroidX code. These applications can be useful when you want to debug a real running application, or reproduce a problem interactively, before writing test code.

These applications are named either <libraryname>-integration-tests-testapp, or support-\*-demos (e.g. support-4v-demos or support-leanback-demos). You can run them by clicking Run > Run ... and choosing the desired application.

Password and Contributor Agreement before making a change

Before uploading your first contribution, you will need setup a password and agree to the contribution agreement:

Generate a HTTPS password:

Agree to the Google Contributor Licenses Agreement:

Making a change

cd path/to/checkout/frameworks/support/
repo start my_branch_name .
(make needed modifications)
git commit -a
repo upload --current-branch .

If you see the following prompt, choose always:

Run hook scripts from (yes/always/NO)?

If the upload succeeds, you'll see output like:

remote: New Changes:
remote: Further README updates

To edit your change, use git commit --amend, and re-upload.

Getting reviewed

  • After you run repo upload, open
  • Sign in into your account (or create one if you do not have one yet)
  • Add an appropriate reviewer (use git log to find who did most modifications on the file you are fixing or check the OWNERS file in the project's directory)

Handling binary dependencies

AndroidX uses git to store all the binary Gradle dependencies. They are stored in prebuilts/androidx/internal and prebuilts/androidx/external directories in your checkout. All the dependencies in these directories are also available from google(), jcenter(), or mavenCentral(). We store copies of these dependencies to have hermetic builds. You can pull in a new dependency using our importMaven tool.