Updated 1 day ago | GitHub

Open Source projects for Android Development

Overview

This page started in 2015 as a wishlist of rough edges in the Android tooling and support libraries that CodePath hoped someone in the open source community would fix. The tools have changed a lot since then, so the original list is kept below only as a historical reference, with each item’s status as of November 2026. None of these items is a good starting project today.

If you want to contribute to Android itself, see the next section.

Where to contribute today

  • The Android platform (AOSP). See Contributing back to Android for how to download, build, and submit changes. The official overview is Contribute to AOSP. It notes that only Google employees can approve a change for submission. Platform bugs and feature requests go to the Google Issue Tracker, as described in Report and track bugs.
  • Jetpack (AndroidX) libraries. The androidx/androidx GitHub repository is an official mirror that accepts pull requests for a select set of library groups, including Activity, AppCompat, Biometric, Collection, Compose Runtime, Core, DataStore, Fragment, Lifecycle, Lint, Navigation, Paging, Room, and WorkManager. Approved pull requests are mirrored into AOSP Gerrit. Other AndroidX libraries still use the AOSP Gerrit workflow. Per the contributing guide, make sure there is a related issue on the issue tracker before you start.
  • Android Studio, the Android Gradle plugin, and the emulator. Report bugs with Help > Submit a Bug Report in Android Studio, or file them directly on the Android Studio issue tracker, as described in Report a bug. The source for these tools is covered in the “Contributing to Android Studio and the build tools” section of Contributing back to Android.

Historical reference: the 2015 wishlist

Note: The items below were written against Android Studio 1.x, the Android Support Library, and the Eclipse-to-Gradle transition. They are kept so that older links still resolve. Each one includes a note on what has happened since.

  • Warn when the INTERNET permission is missing. The original complaint was that networking libraries failed silently if you forgot <uses-permission android:name="android.permission.INTERNET" /> in AndroidManifest.xml.
    Status: resolved in the platform. Android’s core library now throws SecurityException("Permission denied (missing INTERNET permission?)") when a hostname lookup fails with a permission error. See lookupHostByName in Inet6AddressImpl.java.

  • Make importing existing Android Studio projects forgiving. In Android Studio 1.x, importing a folder or app/build.gradle instead of the top-level build.gradle produced a blank project.
    Status: superseded. The current Create a project guide says to choose File > New > Import Project, go to the project’s root directory, and click OK. Projects in version control can be opened with File > New > Project from Version Control. The 2015 link to the project importer’s source code pointed at the retired platform/tools/adt/idea tree and has been removed.

  • Stop requiring a custom app namespace for support library attributes. For example, the ActionBar compatibility library required app:showAsAction.
    Status: by design; no change expected. The Support Library has been replaced by AndroidX, and Android Studio now says the legacy support libraries are no longer supported. Attributes defined by a library such as AppCompat are still declared in the http://schemas.android.com/apk/res-auto namespace. The official menu resource example declares xmlns:app="http://schemas.android.com/apk/res-auto" and uses app:showAsAction="ifRoom|withText".

  • Support nested layout folders without needing a clean or rebuild. A popular workaround for large projects listed a resource directory and its own subdirectories as separate resource directories in Gradle. Changes then often needed a clean or rebuild to be picked up.
    Status: not fixed; the workaround is now discouraged. The page previously called the fix “pending” in Gerrit change 157971. That change was uploaded to the studio-1.4-dev branch in July 2015 and never merged. Its status is still NEW. Resource directories still can’t be nested. The app resources guide gives the example that you can’t have res/drawable/drawable-en/. The Configure build variants guide shows how to list several res source directories with res.setSrcDirs(...) (Kotlin DSL) or res.srcDirs = [...] (Groovy). It also says to avoid specifying a directory that is a parent of another directory you list. Use separate, non-overlapping resource directories or split code into modules instead.

References