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
INTERNETpermission is missing. The original complaint was that networking libraries failed silently if you forgot<uses-permission android:name="android.permission.INTERNET" />inAndroidManifest.xml.
Status: resolved in the platform. Android’s core library now throwsSecurityException("Permission denied (missing INTERNET permission?)")when a hostname lookup fails with a permission error. SeelookupHostByNameinInet6AddressImpl.java. -
Make importing existing Android Studio projects forgiving. In Android Studio 1.x, importing a folder or
app/build.gradleinstead of the top-levelbuild.gradleproduced 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 retiredplatform/tools/adt/ideatree and has been removed. -
Stop requiring a custom
appnamespace for support library attributes. For example, the ActionBar compatibility library requiredapp: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 thehttp://schemas.android.com/apk/res-autonamespace. The official menu resource example declaresxmlns:app="http://schemas.android.com/apk/res-auto"and usesapp: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 thestudio-1.4-devbranch in July 2015 and never merged. Its status is stillNEW. Resource directories still can’t be nested. The app resources guide gives the example that you can’t haveres/drawable/drawable-en/. The Configure build variants guide shows how to list severalressource directories withres.setSrcDirs(...)(Kotlin DSL) orres.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
- https://source.android.com/docs/setup/contribute - Contribute to AOSP
- https://source.android.com/docs/setup/contribute/report-bugs - Report and track AOSP bugs
- https://github.com/androidx/androidx/blob/androidx-main/CONTRIBUTING.md - AndroidX contributing guide
- https://developer.android.com/studio/report-bugs - Report Android Studio, Gradle plugin, and emulator bugs
- https://developer.android.com/studio/projects/create-project - Create a project, including importing an existing project into Android Studio
- https://developer.android.com/build/build-variants - Configure source sets, including
ressource directories