[AOSP] AOSP Project Folders Explained in Detail

정은·2024λ…„ 3μ›” 11일
0

Android Open Source Project

λͺ©λ‘ 보기
9/14

posted based on udemy video - Android OS Internals 😁

AOSP Project Folders

Android Source Code DirectoryDescription
artART(Android Runtime) operating environment. All the ART-related modules can be found here including dex compilers, JVM, dalvik VM, etc.
bionicAndroid's custom C library. Bionic is Android's C library, math library, and dynamic linker.
bootableBoot-related code. Contains Bootloader, OTA, recovery mechanism.
buildBuild System. You can find envsetup.sh, common shell scripts and make, soong folders here.
So these build systems are used to build the entrie AOSP Project.
compatibilityCDD (Compatibility Definition Document) documentation
ctsAndroid Compatibility Test Suite Standard.
CTS tests ensure that you implementation is compatible with this latest AOSP build.
dalvikDalvik Virtual Machine-related code. Even though ART was introduced, android still uses the dex code. In this folder, there are modules supporting dex code generator and Dalvik eXchange.
developersDeveloper Directory. Contains Demo and Sample Android Projects.
developmentApplication development related. Here you can find the development IDE like clion, eclipse, IntellJ under the ide folder. Lots of Sample implementation under samples folder. And many other folder to support app development like Python, vndk, etc.
deviceDevice-specific files and components. Here you can find the supporting configuration and driver files required for Development Boards like linaro hikey, ti, amlogic, etc.
externalExternal Open Source projects imported into the AOSP. This folder contains a lot of dependent project used by AOSP like Dagger2, exoplayer, flatbuffers, icu, jackson, rust and many many more. There are around 347 dependent modules in it as in AOSP 12.
dalbikDalbik Virtual Machine-related code. Even though ART was introduced, it still uses the dex code. In this folder, there are modules supporting dex code generator and Dalvik eXchange.
frameworksApplication framework, the core part of the Android system, written in Java and C++. Here you can find all the system service and core implementations of Android.

As such it's where most APIs are defined:
frameworks/base/core/java/android/app/
frameworks/base/cord/java/android/content/

frameworks/base/services/core/java contains most system services, and these directories typically have more granularity than core/java/, since they can be refactored without top layer API changes.
hardwareMainly the code of the hardware abstraction layer and hardware support modules. Consists of the hal for audio, video, usb, tv, camera etc.
kernalContains kernel configs, prebuilts.
libcoreConsists of many core libraries related json, xmlparser, apache harmony etc.
libnativehelperDynamic library, the basis of the JNI library. It consists of helper functions to use with JNI.
ndkNDK(Native Development Kit) related code to help developers embed C/C++ code in the application.
outAfter the Build is complete, the code output is in this directory. You can find the generated images for the build here.
packagesApplication package like Stock Android apps, providers, IMEs and many more.
pdkPlatform Development Kit. PDK (Platform Development Kit) is a reduced set of Android release provided to chipset vendors and OEMs before a new android platform is released.
The goal of the PDK release is to help chipset vendors and OEMs to migrate to a new release.

PDK release includes only necessary components for developing android HAL (Hardware Abstraction Layer). Note that the full android release is a superset of PDK release, and there is no separate PDK release to public as the full paltform release includes everything in PDK.

Place-holder for tools and test codes for PDK.
-Build: It is a place-holder for PDK build related stuffs.
-apps: test apps
platform_testingPlatform test. Consists of platform test modules.
https://source.android.com/compatibility/tests
prebuitsConsists of Prebuilt binaries. Includes toolchains like asuite, android emulator, Bazel etc.
sdkMany SDK Tools sources can be found here. Instructions to build sdk for a specific build can be found here under docs.
systemIt contains Low-level file system libraries, applications, and components. This is the "Embedded Linux" folder. Here you can find folders for selinux, logging, libhidl and many low level configurations.
testContains the test suites like csuite, catbox, vts(vendor test suite), mts(mainline test suite) etc.
toolchainToolchain files related to benchmark and pgoprofiles.
toolsTool files like apksig, asuite, trade federation etc.
profile
μ •λ‹ˆμ˜ 이런거 μ €λŸ°κ±° 기둝 일지 πŸ˜›

0개의 λŒ“κΈ€