I just downloaded the full 4.0.1_r1 Android Source Code repository according to the official instructions. Can someone help me understand the repository’s basic naming scheme?
For example, in the root directory of the repository, what exactly is the “frameworks” directory? How does this differ from the “packages” directory?
I have spend quite a bit of time around the android source code the last few years, so let me take a shot at explaining the different folders in the root. These are roughly (depending a bit on the android version):
bionic
bootable
build
build/target/productsyou will find all the generic build targets you see when you launchlunch.cts
dalvik
development
device
devices/{yourname}/products/{yourdevice}.mkdefining exactly which apps should be build for your device (as well as a few other things). This adds an entry to the lunch menu called{yourdevice}that you can build.docs
http://source.android.com.external
bzip2,dbus,ping,tcpdump, and many other projects here.frameworks
AudioManager. The source ofAudioManageras well as all the internal Android source supportingAudioManageris placed underframeworks/base/media. You will find the bulk of the Android SDK implemented somewhere underframeworks/base/.hardware
hardwarefolder, however manufactures implement their own libraries and place them inhardware/{manufcaturename}(or indevice/{manufacture}).libcore
ndk
out
outfolder will clean the sources completely.outis divided into different folders, the main ones arehostandtargetwhere stuff compiled for the host machine (e.g. adb) and for the target device (most of the android system) are separated. There are further subdivisions below, and in general theoutfolder is quite nicely sorted, so you should just explore it a bit yourself.packages
prebuilt
sdk
system
This is all from my experience with working with the Android source, I do not have any (other) references. I hope this helps you get an overview of the folder structure.