Developers write better apps when they can read the source. Unfortunately, the sources for the Android framework and various Google Android libraries are scattered all over the web.
This page helps Android developers find the sources they're looking for.
🤔 Something missing? Report or edit.
- Most Jetpack libraries have sources available on cs.android.com/androidx. Some interesting ones:
- That repository is also synced to GitHub
- You can contribute via GitHub to a subset of projects (experimental workflow). You can also contribute by clicking Edit Code in a file on cs.android.com, which should work for all projects in that repository.
- Developed directly on GitHub, browsable on cs.android.com.
- The git history starts at 2.0.0, 1.x sources are available here.
- Developed directly on GitHub, browsable on cs.android.com
- Latest sources are browsable on cs.android.com
- When a release is stable, its sources are synced to cs.android.com/android on the
studio-master-dev
branch.- 👎🔎 Release version is not searchable online: the
studio-master-dev
branch is not indexed.
- 👎🔎 Release version is not searchable online: the
- Developed directly on GitHub, browsable on cs.opensource.google.
- Developed directly on GitHub.
- Available on cs.android.com/android
- View internals? See View.java.
- Activity lifecycle? See ActivityThread.java.
- Art Runtime? See class.cc.
- Start an emulator for the latest version.
- Run
adb pull /system/framework/framework.jar
. - Unzip
framework.jar
(contains dexes). - Use dex2jar to turn dexes into jars.
- Explore with jd-gui or IntelliJ (hack: add as a dependency)
- Latest sources are browsable on cs.android.com.
- When a release is stable, its sources are synced to cs.android.com/android on the
studio-master-dev
branch.- 👎🔎 Release version is not searchable online: the
studio-master-dev
branch is not indexed.
- 👎🔎 Release version is not searchable online: the
- Latest sources are browsable on cs.android.com.
- When a release is stable, its sources are synced to cs.android.com/android on the
studio-master-dev
branch.- 👎🔎 Release version is not searchable online: the
studio-master-dev
branch is not indexed.
- 👎🔎 Release version is not searchable online: the
- @jrodbx dumped the sources for each release on github.
- The sources are dumped from Maven Central.
- Sources for the Kotlin compiler and standard lib are on GitHub.
- A subset of Firebase Android libraries have sources available on GitHub, also browsable on cs.opensource.google/firebase-sdk.
- Firebase Analytics is not open source.
Bazel is a build tool maintained by Google but not part of the official Android toolchain. Some Android devs begrudgingly use it.
- Bazel is developed on Github and browsable on cs.opensource.google/bazel.
Skia is a 2D graphics library used by Android and Compose Desktop. On Android it's always been used for software rendering, and is used for hardware rendering except from Android 3.0 to 9.0.
- Available on cs.opensource.google/skia.
- Play Services is not open source. I added this entry because people keep asking about it 😅.
- A small number of Gradle plugins related to Play Services, including
strict-version-matcher-plugin
,oss-licenses-plugin
, andgoogle-services-plugin
, have been open sourced on GitHub.
- A small number of Gradle plugins related to Play Services, including