We must first understand the Android system source code directory structure to lay the foundation for
Aosp Learning.
So let's get started.
If you haven't downloaded the Aosp source code yet, you can use CS dot android dot com to read through
the source code and follow along with these tutorials.
Or if you want to download the Aosp source code, please follow the instructions from Aosp download
tutorials.
So the basic idea of this session is to give you a very high level overview of aosp folders.
So we'll go through each folders one by one, and I will try to explain what each folders are meant
for.
So the first folder we have got is a R, which stands for Android runtime.
So this folder contains the modules related to Android runtime operating environment.
All the related modules can be found here, including DEX compilers, JVM, Dalvik, VM, etc..
I have opened the Aosp project in a so here you can find all the folders coming under the Aosp project.
So the first one is RTM, which stands for Android runtime.
So as we discussed, it contains all the dependent modules required for the Android runtime to function.
So here we can find the Dalvik VM and the open JDK VM.
And similarly, there are a lot of other dependent modules which are necessary for Android runtime to
function.
So next is Bionic.
Bionic is Android's Custom C library, math library and a dynamic linker.
So you can find bionic here and inside that you can find all the library and supported modules for C
and C++.
So if you open the read me, you can read more information about different folders within Bionic.
So for example, lib m, this folder contains all the modules for the math library and similarly Lipsey.
Lipsey contains all the C related modules and the dynamic linker interface is available in Lib Deal
and the Lib standard C++ is available in this particular folder.
The dynamic linker and the unit text can be found here.
The benchmarks can be found under this path.
Next we have Bootable.
The bootable folder consists of the boot related code, so it contains the bootloader OTA over-the-air
update and some modules for the recovery mechanism.
So in here we have the bootable folder here under which we could find the bootloader and the recovery
folder.
Next we have the build folder.
The build folder consists of the main files for the build system so you can find the env setup message
file here and some common shell scripts.
And also there are folders for the May song build systems here, so make and soon are the build systems
used by Android.
So these build systems are used to build the entire Aosp project.
So in, in lecture we have the build folder here.
So under the build folder we can find the so make and there are many other supporting modules which
are needed for the build system.
And at the root you can find and we set up dot s so EMV set up dot such is the configuration environment
setup configuration self script which we run before we start using Aosp.
So if you open it up, you can see all the commands which are available within that.
So if you have already built your system, you have definitely used it.
So you first run env setup assets and then you use the lunch command which actually gives you the launch
menu where you select one build variant.
And this shell script contains the logic for all the commands which you execute in the terminal.
So for example, HM stands for making the top of the tree so you can find all the descriptions here.
We will cover this cover and set up in detail in a separate video.
Next, we have the CTD or Compatibility Definition Document.
This folder consists of the documentation.
So this documentation you can also find it online.
These are instructions given by Google, which the OEM has to follow to be compatible with the latest
Android release.
So see really can be found under compatibility folder.
So under this if you go there is a folder called CTD.
Inside CTD, there are multiple sections like we have 13 sections.
So and each of these sections are dedicated to different, different topics.
For example, this one is dedicated to device types.
And within device types you can see different device types supported by Android.
So for example, handheld device requirement.
So this is specific to mobile devices, the mobile phones and similarly we have elevation.
So this is specific to television OEMs.
This is applicable for all the OEMs who uses Android as the operating system for television.
Similarly, we have watch this is for the VR devices and.
We have automotive here.
This is for the Android automotive build.
So with each of the new versions, there will be changes to this documentation.
Similarly, you can find for each topics here like this is software and then the application packaging,
multimedia, hardware, performance and power.
So next we have CTS.
CTS stands for Android Compatibility, a suit.
So here you can find all the modules to run the CTS tests on your device.
So CTS tests ensure that your implementation is compatible with this latest AOSP build.
So basically under CTS, it will run a number of a huge number of apks or programs which will check
different, different implementation of your build.
So in case if one of the implementation fails, it will log that in the report.
So at the end of CTS run, you will get a report mentioning whether it was successful or it was failure.
So you can find the city's CTS tests under the CTS folder if you want to learn more about CTS test and
how to run this, how to start the CTS tests and you can look at source dot android dot com.
So there you have detailed information on how to run that you can find all the city's modules under
this particular folder.