Android SDK¶
Take a look at this comprehensive analysis of the Android SDK.
Structure¶
Let’s see what’s inside ~/Library/Android/sdk:
$ tree -f -L 1
.
├── build-tools
├── cmake
├── cmdline-tools
├── emulator
├── extras
├── fonts
├── icons
├── licenses
├── ndk
├── patcher
├── platform-tools
├── platforms
├── skiaparser
├── skins
├── sources
├── system-images
└── tools
17 directories
Let’s start with the easiest ones.
Licenses¶
$ tree -f -L 1
.
├── ./android-googletv-license
├── ./android-sdk-arm-dbt-license
├── ./android-sdk-license
├── ./android-sdk-preview-license
├── ./google-gdk-license
└── ./mips-android-sysimage-license
1 directory, 6 files
These files contain hashes of license texts. Unfortunately, I couldn’t find the original license contents.
Fonts¶
$ tree -f -L 2
.
└── ./com.google.android.gms.fonts
├── ./com.google.android.gms.fonts/directory
└── ./com.google.android.gms.fonts/fonts
4 directories, 0 files
Here you can find the sources of Google Fonts that are downloaded when you select “More Fonts” in the Android Studio font chooser window.
For example:
Icons¶
$ tree -f -L 2
.
└── ./material
├── ./material/icons_metadata.txt
├── ./material/materialicons
├── ./material/materialiconsoutlined
├── ./material/materialiconsround
├── ./material/materialiconssharp
├── ./material/materialiconstwotone
├── ./material/materialsymbolsoutlined
├── ./material/materialsymbolsrounded
└── ./material/materialsymbolssharp
This directory contains the icon sources that are downloaded after you accept the license when opening the “Configure Vector Asset” window in Android Studio. These are XML files.
For example:
Skins¶
$ tree -f -L 1
.
├── ./automotive_1024
├── ./automotive_landscape
├── ./automotive_large_portrait
├── ./automotive_ultrawide_cutout
├── ./galaxy_nexus
├── ./nexus_10
├── ./nexus_4
├── ./nexus_5
├── ./nexus_5x
├── ./nexus_6
├── ./nexus_6p
├── ./nexus_7
├── ./nexus_7_2013
├── ./nexus_9
├── ./nexus_one
├── ./nexus_s
├── ./pixel_2
├── ./pixel_2_xl
...
Here you can find directories for different devices containing configuration files related to device size (layout), skin .webp files, and .ini configuration files. These are used when previewing different layouts in the XML layout editor in Android Studio.
For example:
Emulator¶
In the emulator directory, you can find Android emulator binaries that are used when you select “Download Emulator” in Android Studio.
Skiaparser¶
Each directory corresponds to a specific version of the Skia parser used by the Layout Inspector image server.
Prebuilt binaries can be found here: https://android.googlesource.com/platform/prebuilts/studio/skiaparser/
For example:
$ tree -f -L 1
.
├── ./package.xml
├── ./skia-grpc-server
├── ./source.properties
└── ./version-map.xml
1 directory, 4 files
Here, skia-grpc-server is an executable file.