Difference between revisions of "Master-android"

From eLinux.org
Jump to: navigation, search
m
(19 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 
+
This document outlines Android source code in 'master' branch from https://android.googlesource.com/
<font size="13" color="RED">Updated:  {{CURRENTTIMESTAMP}} </font>
+
<font size="2" color="RED">This page is a WIP page which means information will change constantly as it is based on a moving code</font>
 
 
 
 
'''Repo tag version - android-4.2.2'''
 
 
 
  
 
1. abi
 
1. abi
 
::*'''cpp'''
 
::*'''cpp'''
 
:::The content of this directory is not clear what it is about as it contains several C++ files.
 
:::The content of this directory is not clear what it is about as it contains several C++ files.
2. bionic
+
 
 +
2. art
 +
::*'''build'''
 +
::*'''compiler'''
 +
::*'''dalvikvm'''
 +
::*'''dex2oat'''
 +
::*'''disassembler'''
 +
::*'''oatdump'''
 +
::*'''patchoat'''
 +
::*'''runtime'''
 +
::*'''sigchainlib'''
 +
::*'''test'''
 +
::*'''tools'''
 +
 
 +
3. bionic
 
::Bionic is mainly a port of the BSD C library to our Linux kernel with the following additions/changes:
 
::Bionic is mainly a port of the BSD C library to our Linux kernel with the following additions/changes:
 
::- no support for locales
 
::- no support for locales
Line 17: Line 27:
 
::*'''libc'''
 
::*'''libc'''
 
:::This directory contains the different architecture that is supported to use bionic, namely - ARM (under the arch-arm/) and x86 (under the arch-x86/ directory). In order to understand in detail on how to add functions or port it to different architecture you want to read the file OVERVIEW.TXT under the docs/ folder
 
:::This directory contains the different architecture that is supported to use bionic, namely - ARM (under the arch-arm/) and x86 (under the arch-x86/ directory). In order to understand in detail on how to add functions or port it to different architecture you want to read the file OVERVIEW.TXT under the docs/ folder
 +
:::*'''bionic''' -
 +
:::*'''arch-arm'''
 +
::::This directory contains bionic libc libraries for ARM processor class
 +
::::*'''cortex-a8''' -
 +
::::*'''bionic''' - sources needed to link and load bionic and it includes the functions
 +
::::*'''cortex-a9''' - contains optimized assembler code for A9 processor- memcpy, memset and strcmp
 +
::::*'''cortex-a15''' - contains optimized assembler code for A15 processor- memcpy, memset and strcmp
 +
::::*'''generic''' - contains assembler code for generic ARM processor - memcpy, memset and strcmp
 +
::::*'''include''' - contains header files
 +
::::*'''krait''' - contains optimized assembler code for krait processor - memcpy, memset and strcmp
 +
::::*'''syscalls''' - system calls assembler code (autogenerated files)
 +
:::*'''arch-mips'''
 +
::::This directory contains bionic libc libraries for MIPS processor class
 +
::::*'''bionic''' - sources needed to link and load bionic and it includes the functions
 +
::::*'''include''' - contains header files
 +
::::*'''string''' - contains string related functions
 +
::::*'''syscalls''' - system calls assembler code (autogenerated files)
 +
:::*'''arch-x86'''
 +
::::This directory contains bionic libc libraries for x86 processor class
 +
::::*'''bionic''' - sources needed to link and load bionic and it includes the functions
 +
::::*'''include''' - contains header files
 +
::::*'''string''' - contains string related functions
 +
::::*'''syscalls''' - system calls assembler code (autogenerated files)
 +
:::*'''bionic''' - contains all the functions available in libc
 +
:::*'''include'''  - contains header files
 +
:::*'''kernel'''
 +
::::This directory contains 'cleaned' kernel related headers and also tools to 'clean up' normal plain vanilla Linux headers
 +
::::*'''arm-arm''' - 'clean' ARM Linux headers
 +
::::*'''arm-mips''' - 'clean' MIPS Linux headers
 +
::::*'''arm-x86''' - 'clean' x86 Linux headers 
 +
::::*'''common''' -  'clean' non-architecture specific Linux headers 
 +
::::*'''tools''' - contain scripts for generating clean headers (instructions outlined inside README.TXT file)
 +
:::*'''netbsd''' -  functions available from NetBSD
 +
:::*'''private''' - private or non-standard header files specific for Android needs
 +
:::*'''stdio''' - functions for standard I/O
 +
:::*'''stdlib''' - functions for standard library functions - exit, tolower, etc
 +
:::*'''string''' - functions for standard string functions
 +
:::*'''tools''' - Python scripts containing helper function and syscalls generation
 +
:::*'''tzcode''' - functions for timezone functions
 +
:::*'''unistd'''  - functions for universal standard functions
 +
:::*'''upstream-dlmalloc''' - from README.txt "This directory contains malloc/free routines implemented by Doug Lea (aka dlmalloc). You should not edit these files directly. Make fixesupstream and then pull down the new version of the file."
 +
:::*'''upstream-freebsd''' - from README.txt "This directory contains upstream FreeBSD source."
 +
:::*'''upstream-netbsd''' - from README.txt "This directory contains upstream NetBSD source."
 +
:::*'''wchar''' - string function (not sure what is this for ?)
 +
:::*'''zoneinfo''' - timezone host data
 
::*'''libdl'''
 
::*'''libdl'''
:::This directory what looks like a ‘stub’ program that are being used during linking process. The main function of the program is to open a library and read the symbol. The file that contains the main functionality is dlfcn.c under the /bionic/linker/ directory
+
:::This directory what looks like a ‘stub’ program that are being used during linking process. The main function of the program is to open a library and read the symbol. The file that contains the main functionality is dlfcn.c under the /bionic/linker/ directory
 
::*'''libm'''
 
::*'''libm'''
:::Contains Math library. Several architecture are supported inside this directory.
+
:::Contains Math library. Several architecture are supported inside this directory - ARM, i386, i387, MIPS
 +
:::*'''upstream-freebsd''' - math library from FreeBSD
 
::*'''libstdc++'''
 
::*'''libstdc++'''
::*'''libthread_db'''
+
::*'''linker''' - contains linker code that is used during kernel bootup
::*'''linker'''
+
::*'''tests''' - contains test cases for testing the different functions available such as - math, pthread, regex,etc
 
:::This directory contains utility that is used during linking process. The tool is called Android Dynamic Linker what is does is it assign fix addresses to the library to reduce the size of the library and also increases the loading speed. .
 
:::This directory contains utility that is used during linking process. The tool is called Android Dynamic Linker what is does is it assign fix addresses to the library to reduce the size of the library and also increases the loading speed. .
3. bootable
+
4. bootable
 
::*'''bootloader/legacy'''
 
::*'''bootloader/legacy'''
 
:::This directory is empty
 
:::This directory is empty
Line 32: Line 88:
 
:::This directory contains code for creating recovery program. The code inside shows the different things that needs to be implemented. This can be used as a boilerplate to create your own custom recoveries like the ClockworkMod.
 
:::This directory contains code for creating recovery program. The code inside shows the different things that needs to be implemented. This can be used as a boilerplate to create your own custom recoveries like the ClockworkMod.
 
::::*'''applypatch''' - Applies binary patches to files
 
::::*'''applypatch''' - Applies binary patches to files
::::*'''edify''' - Contains code that parse update scripts. The language is call ‘edify’ (this is used in conjuction with the updater sub-project)
+
::::*'''edify''' - Contains code that parse update scripts. The language is call ‘edify’ (this is used in conjuction with the updater sub-project)
 
::::*'''etc''' - contains sample update script (the file is called update-script)
 
::::*'''etc''' - contains sample update script (the file is called update-script)
::::*'''minadbd''' -  
+
::::*'''fonts''' -
 +
::::*'''minadbd''' - this contains a stripped down version of 'adbd' daemon for adb connection
 
::::*'''minelf''' - contains source library that is used by the updater sub-project
 
::::*'''minelf''' - contains source library that is used by the updater sub-project
 
::::*'''minui''' - contains graphical library to be used by the recovery project.The library are mostly utilized for displaying information
 
::::*'''minui''' - contains graphical library to be used by the recovery project.The library are mostly utilized for displaying information
Line 41: Line 98:
 
::::*'''res''' - contains images that are used as background in the recovery project
 
::::*'''res''' - contains images that are used as background in the recovery project
 
::::*'''testdata''' - test .zip files for testing the update process
 
::::*'''testdata''' - test .zip files for testing the update process
::::*'''tools''' - library that contains misc function that are used by the recovery project. Some interesting function that allow checking of “unclean” reboot.  
+
::::*'''test'''
 +
::::*'''tools''' - library that contains misc function that are used by the recovery project. Some interesting function that allow checking of “unclean” reboot.  
 
::::*'''updater''' - This contains the executable to run the update script
 
::::*'''updater''' - This contains the executable to run the update script
4. build
+
5. build
 
::The main entry point of the build system resides here - envsetup.sh, if you follow the instruction in source.android.com you will see that the first step before you do anything to build Android is to use the command source build/envsetup.sh
 
::The main entry point of the build system resides here - envsetup.sh, if you follow the instruction in source.android.com you will see that the first step before you do anything to build Android is to use the command source build/envsetup.sh
  
Line 50: Line 108:
 
::*'''core'''
 
::*'''core'''
 
:::This directory contains the heart of the build system, it consists of a number of files with the .mk extension (Makefile). The entry point of the build is the main.mk file
 
:::This directory contains the heart of the build system, it consists of a number of files with the .mk extension (Makefile). The entry point of the build is the main.mk file
:::*'''combo''' -
+
:::*'''combo''' - this directory contains makefile that setup the host for things like - compiler, compiler settings. Architecture specific compiler settings are set here.
:::*'''tasks'''
+
::::*'''arch''' -
 
+
::::*'''include''' - architecture specific header file is inside here. The hearder file is included in ALL Android code.
 +
:::*'''tasks''' - makefiles that contains helper functions
 +
:::*'''clang'''
 
::*'''libs'''
 
::*'''libs'''
:::This directory contain a program which is written to replace the “cp” command to be used in Android. Not sure what is the rationale behind the use of this program.  
+
:::This directory contain a program which is written to replace the "cp" command to be used in Android. Not sure what is the rationale behind the use of this program.  
:::*'''host''' -
 
 
 
 
::*'''target'''
 
::*'''target'''
:::This directory contains configuration for the target device that you are planning to build for. Looking at the content of this directory it looks like it is being used for emulators. The files inside this directory looks similar with the device directory where it contains .mk file for board specifics.
+
:::*'''board''' - this directory contains configuration for the target device that you are planning to build for. Looking at the content of this directory it looks like it is being used for emulators. The files inside this directory looks similar with the device directory where it contains .mk file for board specifics.
:::*'''board''' -
+
:::*'''product''' - contains makefiles for the apps that need to be build
::::*'''emulator''' -
+
::::*'''security''' - contains generated keys that are used in normal build process, own keys can be generated using the 'make_key' application
::::*'''generic''' -
 
::::*'''generic_armv5''' -
 
::::*'''generic_x86''' -
 
::::*'''vbox_x86''' -
 
:::*'''product''' -
 
::::*'''security''' -
 
 
 
 
::*'''tools'''
 
::*'''tools'''
 
:::This directory contains a number of tools that can be used as part of the build process. <font color="red">[need to investigate later whether the tools inside this directory is used as part of the build process - document tools that are used in the build process].</font>
 
:::This directory contains a number of tools that can be used as part of the build process. <font color="red">[need to investigate later whether the tools inside this directory is used as part of the build process - document tools that are used in the build process].</font>
 
+
::::'''acp''' - "cp" version from Google
::::'''acp''' -  
+
::::'''apicheck''' - script to run apicheck application
::::'''apicheck''' -  
+
::::'''atree''' - this project is a program for file listing or something like the ‘ls’ command. (inside out/host/linux-86/bin)
::::'''atree''' - this project is a program for file listing or something like the ‘ls’ command. (inside out/host/linux-86/bin)
 
::::'''bin2asm''' - this project is a program for file listing or something like the ‘ls’ command. (inside out/host/linux-86/bin)
 
 
::::'''check_prereq''' - (inside out/target/product/<device>/system/bin)
 
::::'''check_prereq''' - (inside out/target/product/<device>/system/bin)
::::'''droiddoc''' -  
+
::::'''droiddoc''' - contains document templates that are used to generate documentation using Javadoc
 
::::'''fs_config''' - this project is part of the host tools (inside out/host/linux-86/bin)
 
::::'''fs_config''' - this project is part of the host tools (inside out/host/linux-86/bin)
::::'''fs_get_stats''' -  
+
::::'''fs_get_stats''' - contain source for a utility to retrieve file stats
 
::::'''releasetools''' - this project contains python scripts that can be used to sign your .apk, create an OTA file and other release related tasks  
 
::::'''releasetools''' - this project contains python scripts that can be used to sign your .apk, create an OTA file and other release related tasks  
 
::::'''rgb2565''' - this project is to convert image to a 565raw format (inside out/host/linux-86/bin)
 
::::'''rgb2565''' - this project is to convert image to a 565raw format (inside out/host/linux-86/bin)
 
::::'''signapk''' - this project is to sign your .apk file, the project is written in Java code (inside out/host/linux-86/framework)
 
::::'''signapk''' - this project is to sign your .apk file, the project is written in Java code (inside out/host/linux-86/framework)
::::'''zipalign''' - according to the README file “The purpose of zipalign is to ensure that all uncompressed data starts with a particular alignment relative to the start of the file.  This allows those ::::::::portions to be accessed directly with mmap() even if they contain binary data with alignment restrictions. (inside out/host/linux-86/bin)
+
::::'''signtos'''
5. cts
+
::::'''zipalign''' - according to the README file “The purpose of zipalign is to ensure that all uncompressed data starts with a particular alignment relative to the start of the file.  This allows those ::::::::portions to be accessed directly with mmap() even if they contain binary data with alignment restrictions.” (inside out/host/linux-86/bin)
 +
6. cts
 
::This directory contains compatibility test suite (http://source.android.com/compatibility/cts-intro.html). The test coverage are broken down into different folders to cover different parts of Android.
 
::This directory contains compatibility test suite (http://source.android.com/compatibility/cts-intro.html). The test coverage are broken down into different folders to cover different parts of Android.
 
::*'''apps'''
 
::*'''apps'''
 
:::This directory contains applications test suites. The test cases are written in Java and it test different device functionality from application layer such as - USB, sensors, camera, bluetooth, etc  
 
:::This directory contains applications test suites. The test cases are written in Java and it test different device functionality from application layer such as - USB, sensors, camera, bluetooth, etc  
:::*'''cts-usb-accessory''' -
+
:::*'''cts-usb-accessory''' - USB accessories mode test case
 
:::*'''CtsVerifier''' -
 
:::*'''CtsVerifier''' -
 
+
::*'''build''' - contains makefiles to generate and package the test cases
 
::*'''development'''
 
::*'''development'''
:::<font color="red">[contains script file but it does not make sense how it is used in the Android build system]</font>
+
:::*'''ide/eclipse''' - contains .sh file to generate the CTS classpath file for Eclipse
:::*'''ide''' -
 
 
 
 
::*'''hostsidetests'''
 
::*'''hostsidetests'''
:::This directory contains .......
+
:::*'''aadb''' -
 +
:::*'''appsecurity''' - application security test cases
 +
:::*'''holo'''
 +
:::*'''monkey''' - monkey test cases
 +
:::*'''sample'''
 +
:::*'''usb''' -
 
::*'''libs'''
 
::*'''libs'''
:::<font color="red">[according to the README file classes were extracted from the  http://code.google.com/p/vogar/ project. Looking at the description of the project it is a command line test utility for Java]</font>
+
:::*'''commonutil'''
:::*'''json''' -
+
:::*'''deviceutil'''
:::*'''vogar-expect''' -
+
:::*'''json''' - JSON library
 +
:::*'''runner''' - contain makefile to run the core tests which resides inside the tests/core/runner
 +
:::*'''testserver''' - http test server
 +
:::*'''vogar-expect''' - according to the README file classes were extracted from the  http://code.google.com/p/vogar/ project. Looking at the description of the project it is a command line test utility for Java
 +
:::*'''wrappedgtest''' -
 
::*'''suite'''
 
::*'''suite'''
:::This directory contains .......
+
:::*'''audio_quality''' -
 +
:::*'''pts''' -
 
::*'''tests'''
 
::*'''tests'''
 
:::This directory contains Java test cases testing different kind of things, mostly on features that are available from Java application.
 
:::This directory contains Java test cases testing different kind of things, mostly on features that are available from Java application.
 
:::*'''acceleration''' -
 
:::*'''acceleration''' -
:::*'''accessibilityservice''' -
+
:::*'''accessibility''' -
:::*'''ApiDemosReferenceTest''' -
 
:::*'''appsecurity-tests''' -
 
 
:::*'''assets''' -
 
:::*'''assets''' -
:::*'''config_demo''' -
 
 
:::*'''core''' -
 
:::*'''core''' -
 
:::*'''deviceadmin''' -
 
:::*'''deviceadmin''' -
 +
:::*'''expectations''' -
 
:::*'''jni''' -
 
:::*'''jni''' -
 +
:::*'''plans''' -
 
:::*'''ProcessTest''' -
 
:::*'''ProcessTest''' -
 
:::*'''res''' -
 
:::*'''res''' -
 +
:::*'''sample'''
 
:::*'''SignatureTest''' -
 
:::*'''SignatureTest''' -
 +
:::*'''systemAppTest''' -
 
:::*'''src''' -
 
:::*'''src''' -
 
:::*'''tests''' -
 
:::*'''tests''' -
:::*'''vm-tests''' -
+
:::*'''uiautomator''' -
 
:::*'''vm-tests-tf''' -
 
:::*'''vm-tests-tf''' -
 +
  
 
::*'''tools'''
 
::*'''tools'''
 
:::This directory contains different kind of tools that are available for you to use. The tools are not used in the build process.
 
:::This directory contains different kind of tools that are available for you to use. The tools are not used in the build process.
  
::::*'''cts-api-coverage''' -
+
::::*'''cfassembler''' -  class to generate .class files that are somehow damaged in order to test the dalvik vm verifier.
::::*'''cts-native-xml-generator''' -
+
::::*'''cts-api-coverage''' - Tool that generates a report of what Android framework methods are being called from a given set of APKS
::::*'''cts-reference-app-lib''' -
+
::::*'''cts-holo-generation'''
::::*'''device-setup''' -
+
::::*'''cts-java-scanner''' - searches a source directory for native gTests and outputs a list of test classes and methods.
::::*'''tradefed-host''' -
+
::::*'''cts-java-scanner-doclet''' -
::::*'''utils''' -
+
::::*'''cts-native-scanner''' - scanner of C++ gTest source files
::::*'''dex-tools''' - Java project that reads .dex file, this is quite useful if you need to understand the .dex file format. In the README file it is stated that Eclipse .classpath is available to make it easier for us to import, but can’t find the file anywhere.
+
::::*'''cts-reference-app-lib''' - Base Class that provides common functionality for all Reference Application Tests
 +
::::*'''cts-xml-generator''' - class that outputs a test package xml
 
::::*'''dasm''' - .d file disassembler and assembler
 
::::*'''dasm''' - .d file disassembler and assembler
::::*'''dx-tests''' - according to the dx-tests.html file “It tests the capabilities of the DX converter in a black-box manner, based on the usual specifications for .class files.”
+
::::*'''device-setup''' - Collect device information on target device
::::*'''host''' - this folder contains test cases to test some of the host applications such as ADB, Session, etc.  
+
::::*'''dex-tools''' - contains the source code and tests for a dex file parser. This folder contains a .project file, it can be imported directly into eclipse as a java project.
 
::::*'''signature-tools''' - This project contains the source code and tests for API signature comparison tools. The project is in Java
 
::::*'''signature-tools''' - This project contains the source code and tests for API signature comparison tools. The project is in Java
::::*'''vm-tests''' - Dalvik VM test cases
+
::::*'''tradefed-host''' - CTS Trade Federation, cts-tradefed for short, is the next generation test harness for CTS. cts-tradefed is built on top of the Android Trade Federation test harness.
 +
::::*'''utils''' -
 
::::*'''vm-tests-tf''' - Similar to vm-tests except there are few difference files.
 
::::*'''vm-tests-tf''' - Similar to vm-tests except there are few difference files.
  
6. dalvik
+
7. dalvik
::*'''dalvikvm'''
+
 
:::This directory contains the main Dalvik class that execute the .dex files
 
  
 
::*'''dexdump'''
 
::*'''dexdump'''
Line 150: Line 211:
 
::*'''dexlist'''
 
::*'''dexlist'''
 
:::List all methods in all concrete classes in one or more DEX files.
 
:::List all methods in all concrete classes in one or more DEX files.
 
::*'''dexopt'''
 
:::Command-line DEX optimization and verification entry point.
 
  
 
::*'''docs'''
 
::*'''docs'''
Line 168: Line 226:
 
::*'''opcode-gen'''
 
::*'''opcode-gen'''
 
:::This directory contains sets of defined opcodes and instruction formats for Dalvik.
 
:::This directory contains sets of defined opcodes and instruction formats for Dalvik.
::*'''tests'''
+
 
:::This directory contains test cases to test Dalvik op-codes.
 
 
::*'''tools'''
 
::*'''tools'''
 
:::This directory contains Dalvik related tools
 
:::This directory contains Dalvik related tools
  
:::*'''dexdeps''' -This tool dumps a list of fields and methods that a DEX file uses but does not define.  When combined with a list of public APIs, it can be used to determine whether an APK is accessing fields and calling methods that it shouldn't be.  It may also be useful in determining whether an application requires a certain inimum API level to execute.
+
::*'''vm'''
:::*'''dmtracedump''' - This directory contains the dmtrace tool
 
:::*'''gdbjithelper''' - This directory contains an interesting debugging tool to debug certain behaviour that could not be catch easily. There is an instruction on how to use it inside README file
 
:::*'''hprof-conv''' - This directory contains an application to strip Android-specific records out of hprof data, back-converting from 1.0.3 to 1.0.2.  This removes some useful information, but allows Android hprof data to be handled by widely-available tools (like "jhat").
 
  
::*'''unit-tests'''
+
8. developers
::*'''vm'''
+
::*'''build'' -  
:::This directory contains the core of the Dalvik code.
+
::*'''demos'' -  
:::*'''alloc''' - Memory allocation code for Dalvik are stored here.
+
::*'''docs'' -  
:::*'''analysis''' - This directory contains Dalvik code specifically related to bytecode, it contains code for Dalvik bytecode structural verifier, preparing DEX file for use by the VM,  Dalvik classfile verification, bytecode optimizations.
+
::*'''samples'' -  
:::*'''arch''' - Architecture specific code that is used to invoke JNI
 
:::*'''compiler''' - Code that setup the necessary infrastructure for Java application, this is used by the interpreter as it contains all the plumbings.
 
:::*'''hprof''' - Profiling tool
 
:::*'''interp''' - Dalvik interpreter entry point
 
:::*'''jdwp''' - Java Debug Wire Protocol support
 
:::*'''mterp''' - This is the source code for the Dalvik interpreter. Most of the code are written in Assembly
 
:::*'''native''' - Internal native functions
 
:::*'''oo''' -  
 
:::*'''os''' -  
 
:::*'''reflect''' -  
 
:::*'''test''' -  
 
  
7. development
+
9. development
  
 
::*'''apps'''
 
::*'''apps'''
 
:::This directory contains application that are not part of the deployed app in the OS. There are some useful application such as widget builder, etc
 
:::This directory contains application that are not part of the deployed app in the OS. There are some useful application such as widget builder, etc
:::*'''BluetoothDebug''' -  
+
:::*'''BluetoothDebug''' - Bluetooth debugging app
:::*'''BuildWidget''' -  
+
:::*'''BuildWidget''' - Define a simple widget that shows the Wiktionary "Word of the day."
:::*'''CustomLocale''' -  
+
:::*'''CustomLocale''' - Change locale app that can be automatically called for testing purpose --> adb shell am broadcast -a com.android.intent.action.SET_LOCALE --es com.android.intent.extra.LOCALE en_US
:::*'''Development''' -  
+
:::*'''Development''' - Development system app
:::*'''DevelopmentSettings''' -  
+
:::*'''DevelopmentSettings''' - Development settings system app
:::*'''Fallback''' -  
+
:::*'''Fallback''' - fall back activity that registers itself for common intents which may possibly not otherwise be handled.
:::*'''FontLab''' -
+
:::*'''GestureBuilder''' - tool to create Gesture
:::*'''GestureBuilder''' -  
+
:::*'''launchperf''' - launch performance application
:::*'''launchperf''' -  
 
 
:::*'''NinePatchLab''' -  
 
:::*'''NinePatchLab''' -  
:::*'''OBJViewer''' -  
+
:::*'''OBJViewer''' - gles and raw file viewer
:::*'''SdkSetup''' -  
+
:::*'''SdkSetup''' - Entry point for SDK SetupWizard.
:::*'''WidgetPreview''' -  
+
:::*'''SettingInjectorSample''' -  
 +
:::*'''WidgetPreview''' - widget preview application
 +
 
 
::*'''build'''
 
::*'''build'''
:::*'''tools''' -
+
:::*'''tools'''  
 +
::::This directory contains a number of tools that are used as part of the build process
  
 
::*'''cmds'''
 
::*'''cmds'''
 
:::This directory contains the monkey tool that allows you to inject key events into an app.
 
:::This directory contains the monkey tool that allows you to inject key events into an app.
:::*'''monkey''' -
 
  
 
::*'''docs'''
 
::*'''docs'''
Line 224: Line 268:
 
::*'''host'''
 
::*'''host'''
 
:::This directory contains Windows binary files for USB.
 
:::This directory contains Windows binary files for USB.
:::*'''windows''' -  
+
:::*'''windows''' - contains USB drivers for Windows
 +
 
 
::*'''ide'''
 
::*'''ide'''
 
:::This directory contains IDE specific information/configuration. Eclipse, EMacs, IntelliJ and XCode are the IDEs supported.
 
:::This directory contains IDE specific information/configuration. Eclipse, EMacs, IntelliJ and XCode are the IDEs supported.
:::*'''eclipse''' -  
+
:::*'''eclipse''' - formatter for eclipse
:::*'''emacs''' -  
+
:::*'''emacs''' - plugin configuration for emacs for Android development
:::*'''intellij''' -  
+
:::*'''intellij''' - Definition for IntelliJ configuration
:::*'''xcode''' -  
+
:::*'''xcode''' - xcode configuration (not very familiar on what kind of configuration is this as never used xcode before)
  
 
::*'''libraries'''
 
::*'''libraries'''
 
:::From the README.txt - Stereo Camera Libraries for Android. This SDK component contains static libraries for computing the depth map of a pair of stereo images. To use the libraries, simply copy them as static libraries into your project.
 
:::From the README.txt - Stereo Camera Libraries for Android. This SDK component contains static libraries for computing the depth map of a pair of stereo images. To use the libraries, simply copy them as static libraries into your project.
 +
:::*'''stereocamera''' -
  
 
::*'''ndk'''
 
::*'''ndk'''
 
:::This directory contains NDK (Native Development Kit) for Android. This particular directory is not build as part of the Android build process.
 
:::This directory contains NDK (Native Development Kit) for Android. This particular directory is not build as part of the Android build process.
:::*'''platforms''' -  
+
:::*'''platforms''' - contains the sources of the C runtime object files required by the Android NDK toolchains. Contains more information inside README.CRT.TXT
:::*'''samples''' -  
+
:::*'''samples''' - sample applications on using NDK
 
:::*'''sources''' -  
 
:::*'''sources''' -  
:::*'''tests''' -  
+
:::*'''tests''' - contain script to execute all the test cases inside NDK
 +
:::*'''tools''' - tool o compare headers between Bionic and NDK
 +
 
 +
::*'''perftests'''
 +
 
 
::*'''samples'''
 
::*'''samples'''
 
:::This directory contains Android application sample files. There are a lot of sample projects that can be used by developers.
 
:::This directory contains Android application sample files. There are a lot of sample projects that can be used by developers.
:::*'''AccelerometerPlay''' -  
+
:::*'''AccelerometerPlay''' - example of using the accelerometer to integrate the device's acceleration to a position using the Verlet method.
:::*'''ActionBarCompat''' -  
+
:::*'''ActionBarCompat''' - ActionBar sample
:::*'''Alarm''' -  
+
:::*'''Alarm''' - revised version of the AlarmService functionality included in the ApiDemos sample application
 
:::*'''AliasActivity''' -  
 
:::*'''AliasActivity''' -  
:::*'''AndroidBeamDemo''' -  
+
:::*'''AndroidBeamDemo''' - shows how to use the Android Beam feature introduced in API level 14. This application must be installed on two devices that have NFC capabilities, running Android 4.0 or later.
:::*'''ApiDemos''' -  
+
:::*'''ApiDemos''' - The API Demos application includes a variety of small applications  that illustrate the use of various Android APIs. It includes samples of: Notifications, Alarms, Progress Dialogs, etc
:::*'''BackupRestore''' -  
+
:::*'''AppNavigation''' - application navigation
:::*'''BasicGLSurfaceView''' -  
+
:::*'''BackupRestore''' - Backup/Restore application illustrates a few different approaches that an application developer can take when integrating with the Android Backup Manager
:::*'''BluetoothChat''' -  
+
:::*'''BasicGLSurfaceView''' - basic OpenGL surface view sample
:::*'''BluetoothHDP''' -  
+
:::*'''BluetoothChat''' - chat app using bluetooth
:::*'''BrowserPlugin''' -  
+
:::*'''BluetoothHDP''' - sample application that demonstrates how to communicate with a Bluetooth Health Device Profile (HDP) device
 +
:::*'''BluetoothLeGatt''' -  
 +
:::*'''browseable''' -  
 
:::*'''BusinessCard''' -  
 
:::*'''BusinessCard''' -  
 
:::*'''Compass''' -  
 
:::*'''Compass''' -  
 
:::*'''ContactManager''' -  
 
:::*'''ContactManager''' -  
 +
:::*'''ControllerSample''' -
 
:::*'''CrossCompatibility''' -  
 
:::*'''CrossCompatibility''' -  
 
:::*'''CubeLiveWallpaper''' -  
 
:::*'''CubeLiveWallpaper''' -  
 +
:::*'''devbytes''' -
 
:::*'''FixedGridLayout''' -  
 
:::*'''FixedGridLayout''' -  
:::*'''GlobalTime''' -
 
 
:::*'''HeavyWeight''' -  
 
:::*'''HeavyWeight''' -  
 
:::*'''HelloActivity''' -  
 
:::*'''HelloActivity''' -  
 +
:::*'''HelloEffects''' -
 
:::*'''Home''' -  
 
:::*'''Home''' -  
 
:::*'''HoneycombGallery''' -  
 
:::*'''HoneycombGallery''' -  
 
:::*'''JetBoy''' -  
 
:::*'''JetBoy''' -  
 +
:::*'''KeyChainDemo''' -
 
:::*'''LunarLander''' -  
 
:::*'''LunarLander''' -  
:::*'''MailSync''' -
 
 
:::*'''MultiResolution''' -  
 
:::*'''MultiResolution''' -  
 
:::*'''MySampleRss''' -  
 
:::*'''MySampleRss''' -  
:::*'''NFCDemo''' -
 
 
:::*'''NotePad''' -  
 
:::*'''NotePad''' -  
 
:::*'''Obb''' -  
 
:::*'''Obb''' -  
 +
:::*'''OpenGL''' -
 
:::*'''RandomMusicPlayer''' -  
 
:::*'''RandomMusicPlayer''' -  
 
:::*'''RenderScript''' -  
 
:::*'''RenderScript''' -  
Line 288: Line 342:
 
:::*'''StackWidget''' -  
 
:::*'''StackWidget''' -  
 
:::*'''Support4Demos''' -  
 
:::*'''Support4Demos''' -  
 +
:::*'''Support7Demos''' -
 
:::*'''Support13Demos''' -  
 
:::*'''Support13Demos''' -  
 +
:::*'''SupportAppNavigation''' -
 
:::*'''TicTacToeLib''' -  
 
:::*'''TicTacToeLib''' -  
 
:::*'''TicTacToeMain''' -  
 
:::*'''TicTacToeMain''' -  
Line 294: Line 350:
 
:::*'''training''' -  
 
:::*'''training''' -  
 
:::*'''TtsEngine''' -  
 
:::*'''TtsEngine''' -  
 +
:::*'''UiAutomator''' -
 
:::*'''USB''' -  
 
:::*'''USB''' -  
 +
:::*'''Vault''' -
 
:::*'''VoicemailProviderDemo''' -  
 
:::*'''VoicemailProviderDemo''' -  
 
:::*'''VoiceRecognitionService''' -  
 
:::*'''VoiceRecognitionService''' -  
 
:::*'''WeatherListWidget''' -  
 
:::*'''WeatherListWidget''' -  
 
:::*'''WiFiDirectDemo''' -  
 
:::*'''WiFiDirectDemo''' -  
 +
:::*'''WiFiDirectServiceDiscovery''' -
 
:::*'''Wiktionary''' -  
 
:::*'''Wiktionary''' -  
 
:::*'''WiktionarySimple''' -  
 
:::*'''WiktionarySimple''' -  
Line 306: Line 365:
 
:::Some Google App Engine specific scripts.
 
:::Some Google App Engine specific scripts.
 
:::*'''app_engine_server''' -  
 
:::*'''app_engine_server''' -  
 +
:::*'''gdb''' -
  
 
::*'''sdk'''
 
::*'''sdk'''
:::This directory contains .properties file related to SDK, can’t figure out what exactly it is used for as there aren’t that much information inside.
+
:::This directory contains .properties file related to SDK, can’t figure out what exactly it is used for as there aren’t that much information inside.
  
 
::*'''sdk_overlay'''
 
::*'''sdk_overlay'''
Line 314: Line 374:
 
:::*'''frameworks''' -  
 
:::*'''frameworks''' -  
 
:::*'''packages''' -  
 
:::*'''packages''' -  
 +
 +
::*'''sys-img'''
  
 
::*'''testrunner'''
 
::*'''testrunner'''
 
:::Utility to run the test cases based on Python.
 
:::Utility to run the test cases based on Python.
 +
:::*'''coverage''' -
 
:::*'''test_defs''' -  
 
:::*'''test_defs''' -  
 
:::*'''tests''' -  
 
:::*'''tests''' -  
 +
 
::*'''tools'''
 
::*'''tools'''
:::*'''a3dconvert''' -
 
 
:::*'''apkcheck''' - This directory contains Android APK Checker utitlity.This compares the set of classes, fields, and methods used by an Android application against the published API.  It identifies and reports the use of any unpublished members or methods.
 
:::*'''apkcheck''' - This directory contains Android APK Checker utitlity.This compares the set of classes, fields, and methods used by an Android application against the published API.  It identifies and reports the use of any unpublished members or methods.
 
:::*'''axl''' - TCP and HTTP tests, the testcase is written in Python.
 
:::*'''axl''' - TCP and HTTP tests, the testcase is written in Python.
Line 327: Line 390:
 
:::*'''etc1tool''' -
 
:::*'''etc1tool''' -
 
:::*'''findunused''' -
 
:::*'''findunused''' -
:::*'''glesv2debugger''' - Debugger for debugging GLES2
 
 
:::*'''hosttestlib''' -
 
:::*'''hosttestlib''' -
 
:::*'''idegen''' - automatically generates Android IDE configurations for IntelliJ IDEA and Eclipse. Your IDE should be able to compile everything in a reasonable amount of time with no errors.
 
:::*'''idegen''' - automatically generates Android IDE configurations for IntelliJ IDEA and Eclipse. Your IDE should be able to compile everything in a reasonable amount of time with no errors.
:::*'''jdwpspy'''
 
 
:::*'''labpretest''' - The labpretest.sh script is designed to emulate a typical automated test lab session.  It puts a device into bootloader mode, reboots into bootloader mode, determines device type, erases user cache, flashes a generic userdata image, updates the bootloader image, updates the radio image, updates the system image and reboots, sets up for a monkey run and finally runs a random monkey test. It will repeat this based on an optional parameter(-i) or default to 100 times. It will detect if it is in a low battery situation and wait for it to charge again.
 
:::*'''labpretest''' - The labpretest.sh script is designed to emulate a typical automated test lab session.  It puts a device into bootloader mode, reboots into bootloader mode, determines device type, erases user cache, flashes a generic userdata image, updates the bootloader image, updates the radio image, updates the system image and reboots, sets up for a monkey run and finally runs a random monkey test. It will repeat this based on an optional parameter(-i) or default to 100 times. It will detect if it is in a low battery situation and wait for it to charge again.
 
:::*'''line_endings''' -
 
:::*'''line_endings''' -
 
:::*'''mkstubs''' - is small tool that takes a given JAR and filters all the private stuff we don't want to expose, e.g.: remove all private members, only include a subset of classes, exclude specific classes, fields or methods.
 
:::*'''mkstubs''' - is small tool that takes a given JAR and filters all the private stuff we don't want to expose, e.g.: remove all private members, only include a subset of classes, exclude specific classes, fields or methods.
 +
:::*'''recovery_l10n''' -
 
:::*'''templates''' - This directory contains Android source code templates for building Android application.
 
:::*'''templates''' - This directory contains Android source code templates for building Android application.
 
:::*'''yuv420sp2rgb''' -
 
:::*'''yuv420sp2rgb''' -
 +
  
 
::*'''tutorials'''
 
::*'''tutorials'''
 
:::This directory contain a Notepad tutorial application development tutorial.
 
:::This directory contain a Notepad tutorial application development tutorial.
 
:::*'''NotepadCodeLab''' -
 
:::*'''NotepadCodeLab''' -
 +
:::*'''MoarRam''' -
 +
:::*'''ReverseDebug''' -
  
8. device
+
9. device
  
 
::*'''asus'''
 
::*'''asus'''
Line 350: Line 415:
  
 
::*'''generic'''
 
::*'''generic'''
:::This directory contains the generic device configuration that is called ‘goldfish’. This is the device classification used when building the emulator.
+
:::This directory contains the generic device configuration that is called ‘goldfish’. This is the device classification used when building the emulator.
  
 
::*'''google'''
 
::*'''google'''
Line 364: Line 429:
 
:::This directory contains Samsung specific configuration  
 
:::This directory contains Samsung specific configuration  
  
::*'''samsung_slsi'''
 
:::This directory contains Arndale development board
 
 
::*'''ti'''
 
:::This directory contains TI Pandaboard configuration for build process.
 
  
9. docs
+
10. docs
 
::*'''source.android.com'''
 
::*'''source.android.com'''
 
:::Contains tutorials, references, and miscellaneous information relating to the Android Open Source Project (AOSP). The current iteration of this site is fully static HTML (notably lacking in javascript and doxygen content), and is and/or was maintained by skyler (illustrious intern under Dan Morrill and assistant to the almighty JBQ).
 
:::Contains tutorials, references, and miscellaneous information relating to the Android Open Source Project (AOSP). The current iteration of this site is fully static HTML (notably lacking in javascript and doxygen content), and is and/or was maintained by skyler (illustrious intern under Dan Morrill and assistant to the almighty JBQ).
  
10. external
+
11. external
 
::*'''aac'''
 
::*'''aac'''
  
Line 425: Line 485:
 
::*'''bzip2'''
 
::*'''bzip2'''
 
:::This directory contains bzip-1.0.6 from http://www.bzip.org/. According to the RADME.android file no changes were made  
 
:::This directory contains bzip-1.0.6 from http://www.bzip.org/. According to the RADME.android file no changes were made  
 +
 +
::*'''ceres-solver'''
  
 
::*'''checkpolicy'''
 
::*'''checkpolicy'''
Line 430: Line 492:
 
::*'''chromium'''
 
::*'''chromium'''
 
:::This directory contains the Chromium project.
 
:::This directory contains the Chromium project.
 +
 +
::*'''chromium-libpac'''
 +
 +
::*'''chromium_org'''
  
 
::*'''chromium-trace'''
 
::*'''chromium-trace'''
 
::*'''cibu-fonts'''
 
  
 
::*'''clang'''
 
::*'''clang'''
Line 439: Line 503:
  
 
::*'''compiler-rt'''
 
::*'''compiler-rt'''
 
::*'''dbus'''
 
:::This directory contains D-Bus project. D-Bus is a simple system for interprocess communication and coordination.
 
  
 
::*'''dexmaker'''
 
::*'''dexmaker'''
Line 450: Line 511:
 
::*'''dnsmasq'''
 
::*'''dnsmasq'''
 
:::This directory contains the Dnsmasq project - a lightweight, easy to configure DNS forwarder and DHCP server - http://thekelleys.org.uk/dnsmasq/doc.html.  
 
:::This directory contains the Dnsmasq project - a lightweight, easy to configure DNS forwarder and DHCP server - http://thekelleys.org.uk/dnsmasq/doc.html.  
 +
 +
::*'''droiddriver'''
  
 
::*'''doclava'''
 
::*'''doclava'''
Line 479: Line 542:
  
 
::*'''esd'''
 
::*'''esd'''
 +
 
::*'''expat'''
 
::*'''expat'''
 
:::This directory contains Expat, a C library for parsing XML, written by James Clark. Expat is a stream-oriented XML parser.   
 
:::This directory contains Expat, a C library for parsing XML, written by James Clark. Expat is a stream-oriented XML parser.   
 
::*'''expat'''
 
  
 
::*'''eyes-free'''
 
::*'''eyes-free'''
Line 518: Line 580:
 
::*'''guava'''
 
::*'''guava'''
 
:::Guava-libraries are a grab bag of utility libraries published by Google as open source, including among other things the Google collections libraries.  
 
:::Guava-libraries are a grab bag of utility libraries published by Google as open source, including among other things the Google collections libraries.  
 
::*'''guava'''
 
  
 
::*'''hamcrest'''
 
::*'''hamcrest'''
Line 542: Line 602:
 
::*'''iptables'''
 
::*'''iptables'''
 
:::This directory contains iptables project, it is a user space application program that allows a system administrator to configure the tables provided by the Linux kernel firewall
 
:::This directory contains iptables project, it is a user space application program that allows a system administrator to configure the tables provided by the Linux kernel firewall
 +
 +
::*'''iputils'''
  
 
::*'''jack'''
 
::*'''jack'''
Line 556: Line 618:
 
::*'''jhead'''
 
::*'''jhead'''
 
:::This directory contains the jhead project. jhead is an Exif Jpeg header manipulation tool. Project website http://www.sentex.net/~mwandel/jhead/
 
:::This directory contains the jhead project. jhead is an Exif Jpeg header manipulation tool. Project website http://www.sentex.net/~mwandel/jhead/
 
::*'''jpeg'''
 
:::This directory contains project for JPEG image compression and decompression.
 
  
 
::*'''jmdns'''
 
::*'''jmdns'''
  
 
::*'''jmonkeyengine'''
 
::*'''jmonkeyengine'''
 +
 +
::*'''jpeg'''
 +
:::This directory contains project for JPEG image compression and decompression.
  
 
::*'''jsilver'''
 
::*'''jsilver'''
Line 570: Line 632:
 
:::This directory contains the JSR 305 specification implementation. JSR 305 is an  Annotations for Software Defect Detection in Java. Project website http://code.google.com/p/jsr-305/
 
:::This directory contains the JSR 305 specification implementation. JSR 305 is an  Annotations for Software Defect Detection in Java. Project website http://code.google.com/p/jsr-305/
  
::*'''kernel-headers'''
 
  
 
::*'''junit'''
 
::*'''junit'''
Line 584: Line 645:
  
 
::*'''libgsm'''
 
::*'''libgsm'''
:::This directory contains GSM 06.10 13 kbit/s RPT/LTP implementation. According to the README: ......we are publishing an implementation of the European GSM 06.10 provisional standard for full-rate speech transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse excitation/long term prediction) coding at 13 kbit/s”
+
:::This directory contains GSM 06.10 13 kbit/s RPT/LTP implementation. According to the README: “......we are publishing an implementation of the European GSM 06.10 provisional standard for full-rate speech transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse excitation/long term prediction) coding at 13 kbit/
  
 
::*'''liblzf'''
 
::*'''liblzf'''
Line 617: Line 678:
  
 
::*'''libusb'''
 
::*'''libusb'''
 
::*'''libusb_aah'''
 
  
 
::*'''libusb-compat'''
 
::*'''libusb-compat'''
Line 639: Line 698:
  
 
::*'''llvm'''
 
::*'''llvm'''
:::This directory contains the LLVM project. LLVM project is a Low Level Virtual Machine, a toolkit for the construction of highly optimized compilers,optimizers, and runtime environments. There is an interesting read inside the README.android file that shows some of the issues on the reason why Google can’t push to llvm.org upstream and also some indication on how to sync to upstream.
+
:::This directory contains the LLVM project. LLVM project is a Low Level Virtual Machine, a toolkit for the construction of highly optimized compilers,optimizers, and runtime environments. There is an interesting read inside the README.android file that shows some of the issues on the reason why Google can’t push to llvm.org upstream and also some indication on how to sync to upstream.
 +
 
 +
::*'''lzma'''
  
::*'''lohit-fonts'''
+
::*'''marisa-trie'''
:::This directory contains open source font project called Lohit, it is for Telugu language. The project is hosted in https://fedorahosted.org/lohit/
 
  
 
::*'''markdown'''
 
::*'''markdown'''
Line 669: Line 729:
 
::*'''netcat'''
 
::*'''netcat'''
 
:::From README file:
 
:::From README file:
:::“Netcat is a simple Unix utility which reads and writes data across network connections, using TCP or UDP protocol. It is designed to be a reliable "back-end" tool that can be used directly or easily driven by other programs and scripts.
+
:::“Netcat is a simple Unix utility which reads and writes data across network connections, using TCP or UDP protocol. It is designed to be a reliable "back-end" tool that can be used directly or easily driven by other programs and scripts. “
  
 
::*'''netperf'''
 
::*'''netperf'''
:::This directory contains Hewlett Packard netperf tool. According to the project page http://www.netperf.org/netperf/ - “Netperf is a benchmark that can be use to measure various aspect of networking performance.
+
:::This directory contains Hewlett Packard netperf tool. According to the project page http://www.netperf.org/netperf/ - “Netperf is a benchmark that can be use to measure various aspect of networking performance.”
  
 
::*'''neven'''
 
::*'''neven'''
:::There isn’t much information can be found inside this directory about the project. Reading through the source code and also the filenames it looks like a face recognition library.
+
:::There isn’t much information can be found inside this directory about the project. Reading through the source code and also the filenames it looks like a face recognition library.
  
 
::*'''nist-pkits'''
 
::*'''nist-pkits'''
Line 681: Line 741:
 
::*'''nist-sip'''
 
::*'''nist-sip'''
 
:::This directory contains code for VOIP implementation
 
:::This directory contains code for VOIP implementation
 +
 +
::*'''noto-fonts'''
  
 
::*'''oauth'''
 
::*'''oauth'''
 
:::This directory contains code for the oauth authentication project code.
 
:::This directory contains code for the oauth authentication project code.
 +
 +
::*'''objenesis'''
 +
 +
::*'''okhttp'''
  
 
::*'''opencv'''
 
::*'''opencv'''
Line 697: Line 763:
 
::*'''oprofile'''
 
::*'''oprofile'''
 
:::According to the README file  
 
:::According to the README file  
:::“This is an alpha release version of oprofile, a transparent low-overhead system-wide profiler.
+
:::“This is an alpha release version of oprofile, a transparent low-overhead system-wide profiler.“
 
 
::*'''ping'''
 
:::This directory contains code for the ping command
 
  
::*'''ping6'''
+
::*'''pixman'''
:::This directory contains code for the ping command for IPv6
 
  
 
::*'''ppp'''
 
::*'''ppp'''
Line 719: Line 781:
 
::*'''qemu-pc-bios'''
 
::*'''qemu-pc-bios'''
 
:::This project has the source code to build two binaries: bios.bin and vgabios-cirrus.bin, which are required for x86 emulation in the Android emulator: platform/external/qemu.
 
:::This project has the source code to build two binaries: bios.bin and vgabios-cirrus.bin, which are required for x86 emulation in the Android emulator: platform/external/qemu.
 
::*'''quake'''
 
:::This directory contains source for the Quaker games. The Quake games in this directory is optimized to run on Android
 
  
 
::*'''regex-re2'''
 
::*'''regex-re2'''
Line 729: Line 788:
 
::*'''safe-iop'''
 
::*'''safe-iop'''
 
:::This directory contains source code for the safe-iop project ( http://code.google.com/p/safe-iop/ ). This library provides a collection of (macro-based) functions for performing safe integer operations across platform and architecture with a straightforward API.
 
:::This directory contains source code for the safe-iop project ( http://code.google.com/p/safe-iop/ ). This library provides a collection of (macro-based) functions for performing safe integer operations across platform and architecture with a straightforward API.
 +
 +
::*'''scrypt'''
  
 
::*'''sepolicy'''
 
::*'''sepolicy'''
 +
 +
::*'''sfntly'''
 +
 +
::*'''sil-fonts'''
  
 
::*'''skia'''
 
::*'''skia'''
 
:::Skia ( http://code.google.com/p/skia/ ) is a complete 2D graphic library for drawing Text, Geometries, and Images. Features include: 3x3 matrices w/ perspective, antialiasing, transparency, filters, shaders, xfermodes, maskfilters, patheffects.
 
:::Skia ( http://code.google.com/p/skia/ ) is a complete 2D graphic library for drawing Text, Geometries, and Images. Features include: 3x3 matrices w/ perspective, antialiasing, transparency, filters, shaders, xfermodes, maskfilters, patheffects.
 +
 +
::*'''smack'''
  
 
::*'''smali'''
 
::*'''smali'''
Line 768: Line 835:
 
:::From the documentation
 
:::From the documentation
  
:::SVOX Pico system is a software solution aimed at enabling Text-to-Speech (TTS) functionalities in low CPU/memory platforms. The Pico core system will be deployed as a set of libraries accessible through an API available to application developers. While benefitting from SVOX knowhow and ‘lessons learned’, SVOX Pico is an entirely new TTS system designed from scratch and coded in native ANSI-C. This document describes the Pico core system in terms of the underlying design principles, its architecture and main components, and some guidelines for developers who would like to extend Pico’s functionality.
+
:::SVOX Pico system is a software solution aimed at enabling Text-to-Speech (TTS) functionalities in low CPU/memory platforms. The Pico core system will be deployed as a set of libraries accessible through an API available to application developers. While benefitting from SVOX knowhow and ‘lessons learned’, SVOX Pico is an entirely new TTS system designed from scratch and coded in native ANSI-C. This document describes the Pico core system in terms of the underlying design principles, its architecture and main components, and some guidelines for developers who would like to extend Pico’s functionality.
  
 
:::http://www.svox.com/ (website redirected to Nuance Professional Services website)  
 
:::http://www.svox.com/ (website redirected to Nuance Professional Services website)  
Line 789: Line 856:
 
:::*If it's not absolutely needed, don't add it to the API
 
:::*If it's not absolutely needed, don't add it to the API
 
:::*Avoid supporting complex and unnecessary operations that could be dealt with at a higher level
 
:::*Avoid supporting complex and unnecessary operations that could be dealt with at a higher level
 +
 +
::*'''tinycompress'''
  
 
::*'''tinyxml'''
 
::*'''tinyxml'''
Line 824: Line 893:
  
 
:::WebRTC is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple Javascript APIs. Our mission: To enable rich, high quality, RTC applications to be developed in the browser via simple Javascript APIs and HTML5.
 
:::WebRTC is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple Javascript APIs. Our mission: To enable rich, high quality, RTC applications to be developed in the browser via simple Javascript APIs and HTML5.
 
::*'''wpa_supplicant_6'''
 
:::Looking at the files this folder contains similar project to wpa_supplicant except it could be that the version is older. One thing is obvious there is an extra project included in this folder as per the README file, the project is hostapd 0.6.x
 
  
 
::*'''wpa_supplicant_8'''
 
::*'''wpa_supplicant_8'''
Line 832: Line 898:
  
 
::*'''xmlwriter'''
 
::*'''xmlwriter'''
:::Inside this folder there is only 1 file XMLWriter.java and the author’s website is http://jheer.org
+
:::Inside this folder there is only 1 file XMLWriter.java and the author’s website is http://jheer.org
  
 
::*'''xmp_toolkit'''
 
::*'''xmp_toolkit'''
Line 847: Line 913:
  
 
:::A Massively Spiffy Yet Delicately Unobtrusive Compression Library
 
:::A Massively Spiffy Yet Delicately Unobtrusive Compression Library
11. frameworks
+
12. frameworks
 +
::*'''av'''
 +
:::*'''camera''' -
 +
:::*'''cmds''' -
 +
:::*'''drm''' -
 +
:::*'''include''' -
 +
:::*'''libvideoeditor''' -
 +
:::*'''media''' -
 +
:::*'''services''' -
 +
:::*'''tools''' -
 
::*'''base'''
 
::*'''base'''
 
:::*'''api''' - contains xml files with information about Java classes
 
:::*'''api''' - contains xml files with information about Java classes
:::*'''build''' - contains .mk (makefile) files with Dalvik heap information
 
 
:::*'''cmds''' - contains .mk (makefile) files with Dalvik heap information
 
:::*'''cmds''' - contains .mk (makefile) files with Dalvik heap information
 
::::*'''am''' - contains the am utility source
 
::::*'''am''' - contains the am utility source
Line 858: Line 932:
 
::::*'''bootanimation''' - contains the boot animation code that normally we see when starting up our phone
 
::::*'''bootanimation''' - contains the boot animation code that normally we see when starting up our phone
 
::::*'''bu''' - backup utility written in Java
 
::::*'''bu''' - backup utility written in Java
::::*'''bugreport''' - utility to dump information to a local socket called "dumpstate"
+
::::*'''content''' -  
::::*'''dumpstate''' - utility helper to dump information about the kernel and Android
 
::::*'''dumpsys''' - utility helper to dump all services that are currently managed in Android
 
 
::::*'''ime''' -  
 
::::*'''ime''' -  
 
::::*'''input''' - utility helper for sending key events to device  
 
::::*'''input''' - utility helper for sending key events to device  
::::*'''installd''' - utility helper for commands such as ping, etc
+
::::*'''interrupter''' -  
::::*'''ip-up-vpn''' - from the comment in the source code - The primary goal is to create a file with VPN parameters
 
::::*'''keystore''' - from the comment in the source code - The primary goal is to create a file with VPN parameters
 
 
::::*'''pm''' - package manager utility for Java classes
 
::::*'''pm''' - package manager utility for Java classes
::::*'''location''' - according to http://developer.android.com/reference/android/location/package-summary.html
+
::::*'''requestsync''' -  
:::::Contains classes that define Android location-based and related services.
 
::::*'''rawbu''' - data backup utility
 
 
::::*'''screencap''' - screen capture utility
 
::::*'''screencap''' - screen capture utility
::::*'''screenshot''' - similar to screencap
 
::::*'''sensorservice''' - main program for starting the sensors
 
::::*'''service''' - command line utility for accessing to services
 
::::*'''servicemanager''' - main service utility in Android
 
::::*'''stagefreight''' - Android multimedia framework
 
::::*'''surfaceflinger''' - main class to run the surfaceflinger service
 
 
::::*'''svc''' - Java based service command utility
 
::::*'''svc''' - Java based service command utility
::::*'''system_server''' - main entry of system server process.
+
::::*'''wm''' -  
 
:::*'''core''' - contains system Java API such as database, bluetooth, package manager, speech, etc. This directory contains both Java and C/C++ code for the API
 
:::*'''core''' - contains system Java API such as database, bluetooth, package manager, speech, etc. This directory contains both Java and C/C++ code for the API
 
::::*'''java''' - Java code containing system API
 
::::*'''java''' - Java code containing system API
Line 893: Line 955:
 
:::*'''drm''' - according to http://developer.android.com/reference/android/drm/package-summary.html
 
:::*'''drm''' - according to http://developer.android.com/reference/android/drm/package-summary.html
 
::::Provides classes for managing DRM content and determining the capabilities of DRM plugins (agents).  
 
::::Provides classes for managing DRM content and determining the capabilities of DRM plugins (agents).  
::::*'''common''' - DRM framwork common code
 
::::*'''drmserver''' - DRM server code
 
 
::::*'''java''' - programming interface for the DRM framework
 
::::*'''java''' - programming interface for the DRM framework
 
::::*'''jni''' - native interface for DRM framework
 
::::*'''jni''' - native interface for DRM framework
::::*'''libdrmframework''' -
 
 
:::*'''graphics''' - according to http://developer.android.com/reference/android/graphics/package-summary.html -  
 
:::*'''graphics''' - according to http://developer.android.com/reference/android/graphics/package-summary.html -  
 
::::provides low level graphics tools such as canvases, color filters, points, and rectangles that let you handle drawing to the screen directly.
 
::::provides low level graphics tools such as canvases, color filters, points, and rectangles that let you handle drawing to the screen directly.
:::*'''icu4j''' - comment from the source code "Ported with minor modifications from ICU4J 4.2's com.ibm.icu.text.ArabicShaping class"
+
::::*'''java''' -  
 +
::::*'''jni''' -
 +
::::*'''tests''' -
 
:::*'''include''' - include files for most of the internal services
 
:::*'''include''' - include files for most of the internal services
 
::::*'''android_runtime''' - header files for android runtime process  
 
::::*'''android_runtime''' - header files for android runtime process  
::::*'''binder''' - header files for binder device driver
+
::::*'''androidfw''' -  
::::*'''camera''' - camera specific header files
 
::::*'''cpustats''' - from README file "This is a static library of CPU usage statistics, originally written for audio but most are not actually specific to audio."
 
::::*'''diskusage''' - directory size utility headers
 
::::*'''drm''' - DRM framework header files
 
::::*'''gui''' - sensors header files
 
::::*'''media''' - media (sound and video) header files
 
::::*'''powermanager''' - power management header files
 
 
::::*'''private''' - from README "This folder contains private include files. These include files are part of the private implementation details of various framework components."
 
::::*'''private''' - from README "This folder contains private include files. These include files are part of the private implementation details of various framework components."
 
::::*'''storage''' - storage header files
 
::::*'''storage''' - storage header files
::::*'''surfaceflinger''' - surface flinger header files
+
 
::::*'''ui''' - UI specific header files such as - keyboard handling, graphic buffers, etc
+
:::*'''keystore''' - implementation of KeyStore (secured storage for key-value pairs).
::::*'''utils''' - various utilities header files - ashmem, file map, etc
+
::::*'''java''' -  
 +
::::*'''tests''' -  
 +
 
 
:::*'''libs''' - additional library available to be used by the internal services
 
:::*'''libs''' - additional library available to be used by the internal services
::::*'''binder''' - binder library
+
::::*'''androidfw''' -  
::::*'''camera'''  - camera library
 
::::*'''cpustats'''  - cpu statistics library
 
::::*'''diskusage''' - disk usage library
 
::::*'''gui''' - GUI library
 
 
::::*'''hwui''' - HW graphics library
 
::::*'''hwui''' - HW graphics library
::::*'''rs''' - Renderscript library
 
 
::::*'''storage''' - storage library
 
::::*'''storage''' - storage library
::::*'''surfaceflinger_client''' -
 
::::*'''ui''' - UI library (graphics buffer,frame buffer)
 
 
::::*'''usb''' -  wrapper class for the USB Manager to support USB accessories.
 
::::*'''usb''' -  wrapper class for the USB Manager to support USB accessories.
:::*'''keystore''' - implementation of KeyStore (secured storage for key-value pairs).
+
 
 +
:::*'''location''' -  
 +
::::*'''java''' - 
 +
::::*'''lib''' - 
 +
::::*'''tests''' -
 +
 
 
:::*'''media''' - media framework related API and libraries  
 
:::*'''media''' - media framework related API and libraries  
 
::::*'''java'''  
 
::::*'''java'''  
:::::*'''android/drm''' -
 
 
:::::*'''android/media''' - from package.html "Provides classes that manage various media interfaces in audio and video. The Media APIs are used to play and, in some cases, record media files. This includes audio (e.g., play MP3s or other music files, ringtones, game sound effects, or DTMF tones) and video (e.g., play a video streamed over the web or from local storage)."
 
:::::*'''android/media''' - from package.html "Provides classes that manage various media interfaces in audio and video. The Media APIs are used to play and, in some cases, record media files. This includes audio (e.g., play MP3s or other music files, ringtones, game sound effects, or DTMF tones) and video (e.g., play a video streamed over the web or from local storage)."
 
:::::*'''android/mtp''' - from package.html "Provides APIs that let you interact directly with connected cameras and other devices, using the PTP (Picture Transfer Protocol) subset of the MTP (Media Transfer Protocol) specification. Your application can receive notifications when devices are attached and removed, manage files and storage on those devices, and transfer files and metadata from the devices."
 
:::::*'''android/mtp''' - from package.html "Provides APIs that let you interact directly with connected cameras and other devices, using the PTP (Picture Transfer Protocol) subset of the MTP (Media Transfer Protocol) specification. Your application can receive notifications when devices are attached and removed, manage files and storage on those devices, and transfer files and metadata from the devices."
 
::::*'''jni''' - native layer interface for camera,audio,video, etc services (native layer for services in android/ folder)
 
::::*'''jni''' - native layer interface for camera,audio,video, etc services (native layer for services in android/ folder)
::::*'''libdrm''' - DRM core library
+
:::::*'''audioeffect''' -
::::*'''libeffects''' - Visualizer library
+
:::::*'''mediaeditor''' -
::::*'''libmedia''' - Adio media library
+
:::::*'''soundpool''' -  
::::*'''libmediaplayerservice''' - Media player library
+
::::*'''mca''' -  
::::*'''libstagefright''' - Stagefright library
+
:::::*'''effect''' -  
::::*'''mediaserver''' - Media server library
+
:::::*'''filterfw''' -  
::::*'''mtp''' - Media Transfer Protocol library
+
:::::*'''filterpacks''' -  
::::*'''tests''' - Test suites for all the different available libraries
+
:::::*'''samples''' -  
 +
:::::*'''tests''' -  
 +
::::*'''tests''' -  
 +
 
 
:::*'''native'''  
 
:::*'''native'''  
 
::::*'''android''' -
 
::::*'''android''' -
 
::::*'''graphics''' -
 
::::*'''graphics''' -
::::*'''include''' -
+
 
 
:::*'''nfc-extras''' - Provides additional methods for Card Emulation and management   
 
:::*'''nfc-extras''' - Provides additional methods for Card Emulation and management   
 +
::::*'''java''' -
 +
::::*'''extras''' -
 +
 
:::*'''obex''' - Bluetooth file transfer implementation
 
:::*'''obex''' - Bluetooth file transfer implementation
 
::*'''opengl''' - according to README
 
::*'''opengl''' - according to README
 
::::This directory contains OpenGL ES and EGL extension specifications that have been or are being defined for Android.
 
::::This directory contains OpenGL ES and EGL extension specifications that have been or are being defined for Android.
::::*'''include''' - different header files for OpenGL and EGS
 
 
::::*'''java''' - contains wrapper Java source
 
::::*'''java''' - contains wrapper Java source
::::*'''libagl''' - EGL library code
 
::::*'''libs''' - library source code for OpenGL and EGL
 
::::*'''specs''' - This directory contains OpenGL ES and EGL extension specifications that have been or are being defined for Android. 
 
::::*'''tests''' - contains test files
 
::::*'''tools''' - tools for generating OpenGL code
 
 
:::*'''packages''' - Contains built in application
 
:::*'''packages''' - Contains built in application
 
::::*'''BackupRestoreConfirmation''' - Backup/restore confirmation dialog
 
::::*'''BackupRestoreConfirmation''' - Backup/restore confirmation dialog
 
::::*'''DefaultContainerService''' -  Service copies a downloaded apk to a file passed in as a ParcelFileDescriptor
 
::::*'''DefaultContainerService''' -  Service copies a downloaded apk to a file passed in as a ParcelFileDescriptor
 +
::::*'''DocumentsUI''' - 
 +
::::*'''ExternalStorageProvider''' - 
 +
::::*'''FakeOemFeatures''' - 
 +
::::*'''FusedLocation''' - 
 +
::::*'''Keyguard''' - 
 +
::::*'''PrintSpooler''' - 
 +
::::*'''services''' - 
 +
::::*'''InputDevices''' - 
 
::::*'''SettingsProvider''' - Settings application provider
 
::::*'''SettingsProvider''' - Settings application provider
 
::::*'''SharedStorageBackup''' - external storage backup
 
::::*'''SharedStorageBackup''' - external storage backup
 +
::::*'''Shell''' -
 
::::*'''SystemUI''' - Internal System Settings UI
 
::::*'''SystemUI''' - Internal System Settings UI
 
::::*'''VpnDialogs''' - VPN dialog
 
::::*'''VpnDialogs''' - VPN dialog
 
::::*'''WAPPushManager''' -  from the source code "The WapPushManager service is implemented to process incoming WAP Push messages and to maintain the Receiver Application/Application ID mapping."
 
::::*'''WAPPushManager''' -  from the source code "The WapPushManager service is implemented to process incoming WAP Push messages and to maintain the Receiver Application/Application ID mapping."
 
:::*'''policy''' - implementation (Java) of some of the security that are build inside Android (password unlocker, lock pattern, etc)
 
:::*'''policy''' - implementation (Java) of some of the security that are build inside Android (password unlocker, lock pattern, etc)
 +
:::*'''samples''' -
 +
::::*'''training''' -
 
:::*'''sax''' - SAX implementation (Java)
 
:::*'''sax''' - SAX implementation (Java)
 
:::*'''services''' - Android internal service implementation eg:- power manager, sensor service, surface flinger, etc.
 
:::*'''services''' - Android internal service implementation eg:- power manager, sensor service, surface flinger, etc.
::::*'''audioflinger''' -
+
::::*'''common_time''' -
::::*'''camera''' -
 
 
::::*'''input''' -
 
::::*'''input''' -
 
::::*'''java''' -
 
::::*'''java''' -
 
::::*'''jni''' -
 
::::*'''jni''' -
::::*'''powermanager''' -
 
::::*'''sensorservice''' -
 
::::*'''surfaceflinger''' -
 
 
::::*'''tests''' -
 
::::*'''tests''' -
 
:::*'''telephony''' - telephony sample implementation including RIL (Radio Interface Layer).
 
:::*'''telephony''' - telephony sample implementation including RIL (Radio Interface Layer).
 
:::*'''test-runner''' - unit test mock for some of the internal API (Java)
 
:::*'''test-runner''' - unit test mock for some of the internal API (Java)
 +
::::*'''src''' -
 +
::::*'''tests''' -
 +
 
:::*'''tests''' - test cases for most of the internal services (Java)
 
:::*'''tests''' - test cases for most of the internal services (Java)
 +
::::*'''AccessoryDisplay''' -
 
::::*'''ActivityTests''' -
 
::::*'''ActivityTests''' -
 +
::::*'''AppLaunch''' -
 
::::*'''appwidgets''' -
 
::::*'''appwidgets''' -
 +
::::*'''Assistant''' -
 
::::*'''backup''' -
 
::::*'''backup''' -
 
::::*'''BandwidthTests''' -
 
::::*'''BandwidthTests''' -
Line 989: Line 1,055:
 
::::*'''BrowserPowerTest''' -
 
::::*'''BrowserPowerTest''' -
 
::::*'''BrowserTestPlugin''' -
 
::::*'''BrowserTestPlugin''' -
 +
::::*'''CanvasCompare''' -
 +
::::*'''Camera2Tests''' -
 +
::::*'''Compatibility''' -
 
::::*'''CoreTests''' -
 
::::*'''CoreTests''' -
 
::::*'''DataIdleTest''' -
 
::::*'''DataIdleTest''' -
 
::::*'''DpiTest''' -
 
::::*'''DpiTest''' -
::::*'''DumpRenderTree''' -
 
::::*'''DumpRenderTree2''' -
 
 
::::*'''FixVibrateSetting''' -
 
::::*'''FixVibrateSetting''' -
 
::::*'''FrameworkPerf''' -
 
::::*'''FrameworkPerf''' -
Line 1,004: Line 1,071:
 
::::*'''LotsOfApps''' -
 
::::*'''LotsOfApps''' -
 
::::*'''LowStorageTest''' -
 
::::*'''LowStorageTest''' -
 +
::::*'''MemoryUsage''' -
 
::::*'''permission''' -
 
::::*'''permission''' -
 
::::*'''RenderScriptTests''' -
 
::::*'''RenderScriptTests''' -
 +
::::*'''SerialChat''' -
 +
::::*'''SharedLibrary''' -
 
::::*'''SmokeTest''' -
 
::::*'''SmokeTest''' -
 +
::::*'''SmokeTestApps''' -
 
::::*'''SslLoad''' -
 
::::*'''SslLoad''' -
 
::::*'''StatusBar''' -
 
::::*'''StatusBar''' -
 
::::*'''TileBenchmark''' -
 
::::*'''TileBenchmark''' -
 +
::::*'''touchlag''' -
 +
::::*'''TransformTest''' -
 
::::*'''TransformTest''' -
 
::::*'''TransformTest''' -
 +
::::*'''TtsTests''' -
 +
::::*'''WebViewTests''' -
 
:::*'''tools''' - internal tools that are used by Android  
 
:::*'''tools''' - internal tools that are used by Android  
 
::::*'''aapt''' -
 
::::*'''aapt''' -
 
::::*'''aidl''' -
 
::::*'''aidl''' -
 
::::*'''layoutlib''' -
 
::::*'''layoutlib''' -
::::*'''localize''' -
 
::::*'''makekeycodes''' -
 
 
::::*'''obbtool''' -
 
::::*'''obbtool''' -
 
::::*'''orientationplot''' -
 
::::*'''orientationplot''' -
Line 1,022: Line 1,095:
 
::::*'''validatekeymaps''' -
 
::::*'''validatekeymaps''' -
 
::::*'''velocityplot''' -
 
::::*'''velocityplot''' -
:::*'''voip''' - according to http://developer.android.com/reference/android/net/rtp/package-summary.html
 
::::Provides APIs for RTP (Real-time Transport Protocol), allowing applications to manage on-demand or interactive data streaming. In particular, apps that provide VOIP, push-to-talk, conferencing, and audio streaming can use these APIs to initiate sessions and transmit or receive data streams over any available network.
 
 
:::*'''wifi''' - http://developer.android.com/reference/android/net/wifi/package-summary.html  
 
:::*'''wifi''' - http://developer.android.com/reference/android/net/wifi/package-summary.html  
 
::::Provides classes to manage Wi-Fi functionality on the device.
 
::::Provides classes to manage Wi-Fi functionality on the device.
 
::*'''compile'''
 
::*'''compile'''
::::the directory contains few sub-directory - libbcc (A Versatile Bitcode Execution Engine for Mobile Devices), linkloader (this is a ‘plugin’ for LLVM), slang (compiler for Renderscript language)
+
::::the directory contains few sub-directory - libbcc (A Versatile Bitcode Execution Engine for Mobile Devices), linkloader (this is a ‘plugin’ for LLVM), slang (compiler for Renderscript language)
 
:::*'''libbcc''' -  
 
:::*'''libbcc''' -  
:::*'''linkloader''' -  
+
:::*'''mclinker''' -  
 
:::*'''slang''' -  
 
:::*'''slang''' -  
 +
  
 
::*'''ex'''
 
::*'''ex'''
 
::::*'''carousel''' - UI carousel implementation that is used internally by Android
 
::::*'''carousel''' - UI carousel implementation that is used internally by Android
 +
::::*'''camera2''' -
 
::::*'''chips''' -  
 
::::*'''chips''' -  
 
::::*'''common''' - common class (Java) that are used internally by Android such as - contacts, widgets, io, etc
 
::::*'''common''' - common class (Java) that are used internally by Android such as - contacts, widgets, io, etc
 +
::::*'''photoviewer''' -
 
::::*'''variablespeed''' - media player specific classes  
 
::::*'''variablespeed''' - media player specific classes  
::*'''media'''
+
::::*'''widget''' -
::::video editor application
+
 
::::*'''libvideoeditor''' -  
+
::*'''mff'''
 +
::*'''ml'''
 +
::::*'''bordeaux''' -
 +
 
 +
::*'''native'''
 +
::::*'''build''' -
 +
::::*'''cmds''' -
 +
::::*'''data''' -
 +
::::*'''include''' -  
 +
::::*'''libs''' -
 +
::::*'''opengl''' -
 +
::::*'''services''' -
 +
 
 
::*'''opt'''
 
::*'''opt'''
 
::::*'''calendar''' - helper classes for Calendar app
 
::::*'''calendar''' - helper classes for Calendar app
 +
::::*'''carddav''' -
 +
::::*'''colorpicker''' -
 +
::::*'''datetimepicker''' -   
 
::::*'''emoji''' - emoticons helper function
 
::::*'''emoji''' - emoticons helper function
 
::::*'''inputmethodcommon''' - input functionality function helper  
 
::::*'''inputmethodcommon''' - input functionality function helper  
 
::::*'''mailcommon''' - subset of mail helper function
 
::::*'''mailcommon''' - subset of mail helper function
 +
::::*'''mms''' -
 +
::::*'''net''' - 
 +
::::*'''photoviewer''' -
 +
::::*'''telephony''' -
 +
::::*'''timezonepicker''' -
 
::::*'''vcard''' - vcard function helper
 
::::*'''vcard''' - vcard function helper
 +
 +
::*'''rs'''
 +
::::*'''cpp''' -
 +
::::*'''cpu_ref''' -
 +
::::*'''driver''' -
 +
::::*'''java''' -
 +
::::*'''scriptc''' -
 +
::::*'''server''' -
 +
::::*'''tests''' -
 +
 
::*'''support'''
 
::*'''support'''
 
::::support UI classes for different Android version
 
::::support UI classes for different Android version
12. hardware
+
::::*'''tests''' -
 +
::::*'''v4''' -
 +
::::*'''v7''' -
 +
::::*'''v8''' -
 +
::::*'''v13''' -
 +
 
 +
::*'''testing'''
 +
::::*'''androidtestlib''' -
 +
::::*'''app-tests''' -
 +
::::*'''uiautomator''' -
 +
::::*'''uiautomator_test_libraries''' -
 +
 
 +
::*'''uiautomator'''
 +
::::*'''api''' -
 +
::::*'''cmds''' -
 +
::::*'''core''' -
 +
::::*'''samples''' -
 +
::::*'''testrunner''' -
 +
::::*'''utils''' - 
 +
 
 +
 
 +
::*'''volley'''
 +
:::: Fast networking library for Android. A very good video to introduce and learn about the library https://www.youtube.com/watch?v=yhv8l9F44qo
 +
::::*'''src''' - source for the volley library
 +
::::*'''tests''' - test cases for volley
 +
 
 +
::*'''webview'''
 +
::::*'''chromium''' -
 +
 
 +
::*'''wilhelm'''
 +
::::*'''doc''' -
 +
::::*'''include''' -
 +
::::*'''src''' -
 +
::::*'''tests''' -
 +
::::*'''tools''' -
 +
 
 +
 
 +
14. hardware
 +
::*'''akm'''
 +
::::*'''AK8975_FS''' -
 
::*'''broadcom'''
 
::*'''broadcom'''
 
:::Broadcom wireless device drivers (binary format).
 
:::Broadcom wireless device drivers (binary format).
 +
::::*'''libbt''' -
 +
::::*'''wlan''' - 
 
::*'''invensense'''
 
::*'''invensense'''
 
:::Invsense Sensors source code
 
:::Invsense Sensors source code
 +
:::*'''libsensors''' -
 +
:::*'''libsensors_iio''' -
 +
:::*'''mlsdk''' -
 
::*'''libhardware'''
 
::*'''libhardware'''
 
:::*'''libsensors''' - MPL sensors family
 
:::*'''libsensors''' - MPL sensors family
Line 1,061: Line 1,209:
 
:::*'''modules''' - from README.android "Default (and possibly architecture dependents) HAL modules go here, libhardware.so eventually should contain *just* the HAL hub (hardware.c), everything in it should be rewritten as modules."
 
:::*'''modules''' - from README.android "Default (and possibly architecture dependents) HAL modules go here, libhardware.so eventually should contain *just* the HAL hub (hardware.c), everything in it should be rewritten as modules."
 
::::*'''audio''' - audio hardware HAL
 
::::*'''audio''' - audio hardware HAL
 +
::::*'''audio_remote_submix''' -
 
::::*'''gralloc''' - Graphics Memory Allocator Module  
 
::::*'''gralloc''' - Graphics Memory Allocator Module  
 
::::*'''hwcomposer''' - from README.android "Skeleton for the "hwcomposer" HAL module."
 
::::*'''hwcomposer''' - from README.android "Skeleton for the "hwcomposer" HAL module."
 +
::::*'''local_time''' -
 
::::*'''nfc''' - Default NFC HW HAL
 
::::*'''nfc''' - Default NFC HW HAL
 +
::::*'''nfc_nci''' -
 +
::::*'''power''' -
 +
::::*'''usbaudio''' -
 
:::*'''tests''' - test code to test the hardware modules
 
:::*'''tests''' - test code to test the hardware modules
 
::*'''libhardware_legacy'''
 
::*'''libhardware_legacy'''
Line 1,091: Line 1,244:
 
::*'''qcom'''
 
::*'''qcom'''
 
:::Qualcomm specific code for media and GPS
 
:::Qualcomm specific code for media and GPS
 +
:::*'''audio''' -
 +
:::*'''bt''' -
 +
:::*'''camera''' -
 +
:::*'''display''' -
 
:::*'''gps''' -  
 
:::*'''gps''' -  
 +
:::*'''keymaster'' -
 
:::*'''media''' -
 
:::*'''media''' -
 +
:::*'''msm8960''' -
 +
:::*'''power''' -
 +
:::*'''sensors''' -
 +
:::*'''wlan''' -
 
::*'''ril'''
 
::*'''ril'''
 
:::Radio Inteface Layer (RIL) interface and sample interface. RIL is the layer for radio based communication like the phone call
 
:::Radio Inteface Layer (RIL) interface and sample interface. RIL is the layer for radio based communication like the phone call
Line 1,100: Line 1,262:
 
:::*'''reference-ril''' - RIL reference implementation code
 
:::*'''reference-ril''' - RIL reference implementation code
 
:::*'''rild''' - RIL daemon  
 
:::*'''rild''' - RIL daemon  
 +
::*'''samsung_slsi'''
 +
:::*'''exynos5''' -
 
::*'''ti'''
 
::*'''ti'''
 
:::Texas Instruments OMAP3 and OMAP4 hardware source code - media framework, camera, security,etc
 
:::Texas Instruments OMAP3 and OMAP4 hardware source code - media framework, camera, security,etc
 
:::*'''omap3''' -
 
:::*'''omap3''' -
 
:::*'''omap4xxx''' -
 
:::*'''omap4xxx''' -
 +
:::*'''omap4-aah''' - left over code from Android At Home project
 +
:::*'''wlan''' -
 +
:::*'''wpan''' -
 +
  
13. libcore
+
15. libcore
 +
::*'''benchmarks'''
 +
::*'''crypto'''
 
::*'''dalvik'''
 
::*'''dalvik'''
 
:::VM runtime for Android
 
:::VM runtime for Android
 +
::*'''dex'''
 
::*'''dom'''
 
::*'''dom'''
 
:::Java test classes for DOM
 
:::Java test classes for DOM
 
::*'''expectations'''
 
::*'''expectations'''
 
:::Contains information about the test cases
 
:::Contains information about the test cases
 +
::*'''harmony-tests'''
 
::*'''include'''
 
::*'''include'''
 
:::Some C/C++ include files that used for Array and String handling
 
:::Some C/C++ include files that used for Array and String handling
 
::*'''json'''
 
::*'''json'''
 
:::JSON based Java implementation
 
:::JSON based Java implementation
::*'''junit'''
+
::*'''libdvm'''
:::JUnit source code
+
:::
 
::*'''luni'''
 
::*'''luni'''
 
:::Contains test source code for loading .jar and .dex files
 
:::Contains test source code for loading .jar and .dex files
Line 1,124: Line 1,296:
 
::*'''xml'''
 
::*'''xml'''
 
:::XML pull and push implementation
 
:::XML pull and push implementation
14. ndk
+
 
 +
16. libnativehelper
 +
::*'''include'''
 +
 
 +
17. ndk
 
::*'''build'''
 
::*'''build'''
 
:::Contains build scripts and helper files for building the NDK
 
:::Contains build scripts and helper files for building the NDK
Line 1,136: Line 1,312:
 
:::NDK source code and library source
 
:::NDK source code and library source
 
:::*'''android''' - contains code for cpufeatures and sources of the special libthread_db that will be statically linked against gdbserver binary
 
:::*'''android''' - contains code for cpufeatures and sources of the special libthread_db that will be statically linked against gdbserver binary
 +
:::*'''cpufeatures''' -
 
:::*'''cxx-stl'''
 
:::*'''cxx-stl'''
 
::::contains C++ standard template library source
 
::::contains C++ standard template library source
::::*'''gabi++''' -
 
::::*'''gnu-libstdc++''' - contains the headers and prebuilt binaries for the GNU libstdc++-v3 C++ Standard Template Library implementation.
 
::::*'''stlport''' - contains a port of STLport for Android, which provides a simple STL implementation.
 
::::*'''system''' -
 
 
:::*'''host-tools'''
 
:::*'''host-tools'''
 
::::contains varieties of tools for host machine (Linux)
 
::::contains varieties of tools for host machine (Linux)
Line 1,149: Line 1,322:
 
::::*'''sed-4.2.1''' - sed tool source code
 
::::*'''sed-4.2.1''' - sed tool source code
 
::::*'''toolbox''' - A brain-dead 'echo' toolbox program for Windows
 
::::*'''toolbox''' - A brain-dead 'echo' toolbox program for Windows
 +
:::*'''third_party'''
 
::*'''tests'''
 
::*'''tests'''
 
:::from README file "This directory contains scripts and sources to perform automated testing of the NDK. Before making a new NDK release, please run tests/run-tests.sh to ensure that everything is working properly."
 
:::from README file "This directory contains scripts and sources to perform automated testing of the NDK. Before making a new NDK release, please run tests/run-tests.sh to ensure that everything is working properly."
Line 1,158: Line 1,332:
 
:::Build file for building the toolchain both for x86 and ARM based platform
 
:::Build file for building the toolchain both for x86 and ARM based platform
 
:::*'''arm-linux-androideabi-4.4.3''' - prepare the NDK to build with the arm-eabi-4.4.0 toolchain  
 
:::*'''arm-linux-androideabi-4.4.3''' - prepare the NDK to build with the arm-eabi-4.4.0 toolchain  
 +
:::*'''arm-linux-androideabi-4.6''' -
 +
:::*'''arm-linux-androideabi-4.7''' -
 +
:::*'''arm-linux-androideabi-4.8''' -
 +
:::*'''arm-linux-androideabi-clang3.1''' -
 +
:::*'''arm-linux-androideabi-clang3.2''' -
 +
:::*'''llvm-3.1''' -
 +
:::*'''llvm-3.2''' -
 +
:::*'''mipsel-linux-android-4.4.3''' -
 +
:::*'''mipsel-linux-android-4.6''' -
 +
:::*'''mipsel-linux-android-4.7''' -
 +
:::*'''mipsel-linux-android-4.8''' -
 +
:::*'''mipsel-linux-android-clang3.1''' -
 +
:::*'''mipsel-linux-android-clang3.2''' -
 
:::*'''x86-4.4.3''' - prepare the NDK to build with the x86-4.4.3 toolchain
 
:::*'''x86-4.4.3''' - prepare the NDK to build with the x86-4.4.3 toolchain
 +
:::*'''x86-4.6''' -
 +
:::*'''x86-4.7''' -
 +
:::*'''x86-4.8''' -
 +
:::*'''x86-clang3.1''' -
 +
:::*'''x86-clang3.2''' -
  
15. packages
+
18. packages
 
::*'''apps'''
 
::*'''apps'''
 
:::Standard Android application that are available as part of the AOSP - Camera, SMS, Dialer, Launcher, etc
 
:::Standard Android application that are available as part of the AOSP - Camera, SMS, Dialer, Launcher, etc
Line 1,177: Line 1,369:
 
:::*'''Gallery''' - Gallery application
 
:::*'''Gallery''' - Gallery application
 
:::*'''Gallery2''' - Gallery 3D application
 
:::*'''Gallery2''' - Gallery 3D application
 +
:::*'''GoogleLoginService''' -
 +
:::*'''GoogleServiceFramework''' -
 
:::*'''HTMLViewer''' - Wraps a WebView widget within an Activity. When launched, it uses the URI from the intent as the URL to load into the WebView.  
 
:::*'''HTMLViewer''' - Wraps a WebView widget within an Activity. When launched, it uses the URI from the intent as the URL to load into the WebView.  
 
:::*'''KeyChain''' - Security key chain application
 
:::*'''KeyChain''' - Security key chain application
 
:::*'''Launcher2''' - Android main launcher
 
:::*'''Launcher2''' - Android main launcher
 +
:::*'''LegacyCamera''' -
 
:::*'''Mms''' - Mms application
 
:::*'''Mms''' - Mms application
 
:::*'''Music''' - Music player
 
:::*'''Music''' - Music player
 
:::*'''MusicFX''' - MusicMX Player
 
:::*'''MusicFX''' - MusicMX Player
 
:::*'''Nfc''' - NFC related application
 
:::*'''Nfc''' - NFC related application
 +
:::*'''OneTimeInitializer''' -
 
:::*'''PackageInstaller''' - Service available internally in Android. This activity is launched when a new application is installed via side loading  
 
:::*'''PackageInstaller''' - Service available internally in Android. This activity is launched when a new application is installed via side loading  
 
:::*'''Phone''' - Phone application
 
:::*'''Phone''' - Phone application
 +
:::*'''Phonesky''' -
 
:::*'''Protips''' - Widget appears on your home screen to provide helpful tips.  
 
:::*'''Protips''' - Widget appears on your home screen to provide helpful tips.  
 
:::*'''Provision''' - application that sets up provisioning.
 
:::*'''Provision''' - application that sets up provisioning.
 
:::*'''QuickSearchBox''' - Quick search box application
 
:::*'''QuickSearchBox''' - Quick search box application
 
:::*'''Settings''' - Settings application
 
:::*'''Settings''' - Settings application
 +
:::*'''SetupWizard''' -
 +
:::*'''SmartCardService''' -
 
:::*'''SoundRecorder''' - SoundRecorder application
 
:::*'''SoundRecorder''' - SoundRecorder application
 
:::*'''SpareParts''' - parts updater such as battery,3G, etc
 
:::*'''SpareParts''' - parts updater such as battery,3G, etc
Line 1,199: Line 1,398:
 
::*'''experimental'''
 
::*'''experimental'''
 
:::Experimental apps that are not part of the AOSP such as RPC, Bugreport, Security tool, etc
 
:::Experimental apps that are not part of the AOSP such as RPC, Bugreport, Security tool, etc
:::*'''AndroidVendorSecurityTool''' - An app developed for removing the recent DroidDream malware from infected devices. Currently on market and pushed directly to affected devices.
 
 
:::*'''BugReportSender''' - from README.txt "A utility (currently hosted on Bazaar) to share bugreports from the /sdcard to any recipient (usually via Gmail)"
 
:::*'''BugReportSender''' - from README.txt "A utility (currently hosted on Bazaar) to share bugreports from the /sdcard to any recipient (usually via Gmail)"
 +
:::*'''Bummer''' -
 
:::*'''CameraPreviewTest''' - from README.txt "A small test app to exercise the camera in various modes in much the same way that GTalk video chat does."
 
:::*'''CameraPreviewTest''' - from README.txt "A small test app to exercise the camera in various modes in much the same way that GTalk video chat does."
 
:::*'''DreamTheater''' - Sample application on using DreamTheater
 
:::*'''DreamTheater''' - Sample application on using DreamTheater
:::*'''droiddreamclean''' - utility to clean rogue application
 
 
:::*'''ExampleImsFramework''' - from README.txt "Demonstrates how to implement an IMS framework on top of Android."
 
:::*'''ExampleImsFramework''' - from README.txt "Demonstrates how to implement an IMS framework on top of Android."
 
:::*'''LoaderApp''' -
 
:::*'''LoaderApp''' -
 +
:::*'''NotificationLog''' -
 +
:::*'''NotificationShowcase''' -
 
:::*'''procstatlog''' - This program is as dumb as possible -- it reads a whole bunch of data from /proc and reports when it changes.  
 
:::*'''procstatlog''' - This program is as dumb as possible -- it reads a whole bunch of data from /proc and reports when it changes.  
 
:::*'''RpcPerformance''' - from README.txt "A small test utility to run certain low-level microbenchmarks (particularly related to IPC and RPC performance, such as no-op Binder calls and certain file I/O operations).
 
:::*'''RpcPerformance''' - from README.txt "A small test utility to run certain low-level microbenchmarks (particularly related to IPC and RPC performance, such as no-op Binder calls and certain file I/O operations).
 
:::*'''StrictModeTest''' - from README.txt "A small test utility to intentionally violate StrictMode in different ways, and let you try out the various penalties."
 
:::*'''StrictModeTest''' - from README.txt "A small test utility to intentionally violate StrictMode in different ways, and let you try out the various penalties."
:::*'''UiAutomation''' -
 
:::*'''UiAutomationDemo''' -
 
 
::*'''providers'''
 
::*'''providers'''
 
:::Contains content providers for the different data available in the framework
 
:::Contains content providers for the different data available in the framework
Line 1,218: Line 1,416:
 
:::*'''DownloadProvider''' - Download provider
 
:::*'''DownloadProvider''' - Download provider
 
:::*'''DrmProvider''' - DRM provider
 
:::*'''DrmProvider''' - DRM provider
:::*'''GoogleContactsProvider''' - Google contents provider
 
 
:::*'''MediaProvider''' - Media provider
 
:::*'''MediaProvider''' - Media provider
 +
:::*'''PartnerBookmarksProvider''' -
 
:::*'''TelephonyProvider''' - Telephones provider
 
:::*'''TelephonyProvider''' - Telephones provider
 
:::*'''UserDictionaryProvider''' - Dictionary provider
 
:::*'''UserDictionaryProvider''' - Dictionary provider
Line 1,228: Line 1,426:
 
:::*'''OpenWnn'''- from README.txt "OpenWnn is a IME(Input Method Editor) package which works on Android's IMF(Input Method Framework).  This version contains Japanese IME."
 
:::*'''OpenWnn'''- from README.txt "OpenWnn is a IME(Input Method Editor) package which works on Android's IMF(Input Method Framework).  This version contains Japanese IME."
 
:::*'''PinyinIME'''- another implementation of the input method components
 
:::*'''PinyinIME'''- another implementation of the input method components
 +
 +
::*'''screensavers'''
 +
:::*'''Basic''' -
 +
:::*'''PhotoTable''' -
 +
:::*'''WebView''' -
 +
 
::*'''wallpapers'''
 
::*'''wallpapers'''
 
:::Standard AOSP wallpaper
 
:::Standard AOSP wallpaper
Line 1,238: Line 1,442:
 
:::*'''NoiseField'''
 
:::*'''NoiseField'''
 
:::*'''PhaseBeam'''
 
:::*'''PhaseBeam'''
16. prebuilt
+
19. pdk
::*'''android-arm'''
+
::*'''apps'''
:::Contains prebuilt gdbserver and QEMU kernel
+
::*'''build'''
::*'''android-sh'''
+
 
::*'''android-x86'''
+
20. prebuilts
:::x86 based QEMU kernel for emulator
+
::*'''clang'''
::*'''common'''
+
:::*'''darwin-x86'''
:::Common Java open source project that are used during build process
+
:::*'''linux-x86'''
::*'''darwin-x86'''
+
 
::*'''darwin-x86_64'''
+
::*'''devtools'''
::*'''linux-x86'''
+
:::*'''adt'''
:::Contains GCC toolchains for compiling Android along with several open source projects
+
:::*'''notices'''
::*'''linux-x86_64'''
+
:::*'''repository'''
 +
:::*'''tools'''
 +
 
 +
::*'''eclipse'''
 +
:::*'''deltapack'''
 +
:::*'''platform'''
 +
 
 +
::*'''gcc'''
 +
:::*'''darwin-x86'''
 +
:::*'''linux-x86'''
 +
 
 +
::*'''misc'''
 +
:::*'''android-arm'''
 +
::::Contains prebuilt gdbserver and QEMU kernel
 +
:::*'''android-mips'''
 +
:::*'''android-x86'''
 +
::::x86 based QEMU kernel for emulator
 +
:::*'''common'''
 +
::::Common Java open source project that are used during build process
 +
:::*'''darwin-x86'''
 +
:::*'''linux-x86'''
 +
::::Contains GCC toolchains for compiling Android along with several open source projects
 +
:::*'''linux-x86_64'''
 +
:::*'''windows'''
 +
::::32bit Windows specific files and libraries
 
::*'''ndk'''
 
::*'''ndk'''
:::Android NDK
+
::*'''qemu-kernel'''
 +
:::*'''arm'''
 +
:::*'''mips'''
 +
:::*'''x86'''
 
::*'''sdk'''
 
::*'''sdk'''
:::Android SDK (.jar file) that normally used by Android apps
+
:::*'''current'''
::*'''windows'''
+
:::*'''renderscript'''
:::32bit Windows specific files and libraries
+
:::*'''tools'''
::*'''windows-x86_64'''
+
::*'''tools'''
:::64bit Windows specific ibraries
+
:::*'''common'''
17. sdk
+
:::*'''darwin-x86'''
 +
:::*'''darwin-x86_64'''
 +
:::*'''gcc-sdk'''
 +
:::*'''linux-x86'''
 +
:::*'''linux-x86_64'''
 +
:::*'''windows'''
 +
:::*'''windows-x86_64'''
 +
 
 +
 
 +
21. sdk
 
::This directory contains lots of apps that are not part of operating system. There are quite useful apps that developers can leverage on and can be enhanced further as part of the operating system.
 
::This directory contains lots of apps that are not part of operating system. There are quite useful apps that developers can leverage on and can be enhanced further as part of the operating system.
:::*'''androidprefs''' - Manages the location of the android files (including emulator files, ddms config, debug keystore)
+
:::*'''adtproductbuild''' -  
 
:::*'''annotations''' - Annotation used in SDK
 
:::*'''annotations''' - Annotation used in SDK
:::*'''anttasks''' - Ant tasks specific to build Android application
 
 
:::*'''apkbuilder''' - from readme.txt "The apkbuilder command line tool is deprecated, and is not maintained anymore. It is lacking recent build improvements such as support for Library Projects. Its source code has been moved into sdklib. It is recommended to directly use the com.android.sdklib.build.ApkBuilder class instead."
 
:::*'''apkbuilder''' - from readme.txt "The apkbuilder command line tool is deprecated, and is not maintained anymore. It is lacking recent build improvements such as support for Library Projects. Its source code has been moved into sdklib. It is recommended to directly use the com.android.sdklib.build.ApkBuilder class instead."
:::*'''archquery''' - from Main.java "Java command line tool to return the CPU architecture of the host java VM. The goal is to be able to launch SWT based applications (DDMS, Traceview, Android) on any type of OS."
+
:::*'''apps''' -  
:::*'''assetstudio''' - Android Assets Studio tool
 
 
:::*'''attribute_stats''' - from README.txt "This program gathers statistics about attribute usage in layout files."  
 
:::*'''attribute_stats''' - from README.txt "This program gathers statistics about attribute usage in layout files."  
 
:::*'''avdlauncher''' - from avdlauncher.c "The AVD Manager is for Windows only. This simple .exe will sit at the root of the Windows SDK and currently simply executes tools\android.bat.Eventually it should simply replace the batch file."
 
:::*'''avdlauncher''' - from avdlauncher.c "The AVD Manager is for Windows only. This simple .exe will sit at the root of the Windows SDK and currently simply executes tools\android.bat.Eventually it should simply replace the batch file."
 
:::*'''bash_completion''' - from README "This directory contains scripts that are intended to be used with Bourne Again SHell (bash)'s programmable completion."
 
:::*'''bash_completion''' - from README "This directory contains scripts that are intended to be used with Bourne Again SHell (bash)'s programmable completion."
 
:::*'''build''' - contains few scripts for SDK that are used during build process
 
:::*'''build''' - contains few scripts for SDK that are used during build process
:::*'''chimpchat''' - ChimpChat is a host-side library that provides an API for communication with an instance of Monkey on a device.
 
:::*'''common''' - from README.txt "contains resource configuration enums. It is used by various tools, but also by layoutlib.jar"
 
:::*'''ddms''' - contains the Dalvik Debug Monitor Server (DDMS) code
 
 
:::*'''docs''' - contains short documentation for building SDK, using cupcake SDK, etc
 
:::*'''docs''' - contains short documentation for building SDK, using cupcake SDK, etc
:::*'''draw9patch''' - graphical application called draw9patch
 
 
:::*'''dumpeventlog''' - utility to connect to a device using ddmlib and dumps its event log as long as the device is connected.
 
:::*'''dumpeventlog''' - utility to connect to a device using ddmlib and dumps its event log as long as the device is connected.
 
:::*'''eclipse''' - contains all the necessary files for Android Eclipse plugins  
 
:::*'''eclipse''' - contains all the necessary files for Android Eclipse plugins  
Line 1,281: Line 1,515:
 
:::*'''eventanalyzer''' - connects to a device using ddmlib and analyze its event log.
 
:::*'''eventanalyzer''' - connects to a device using ddmlib and analyze its event log.
 
:::*'''files''' - contains misc files, such as configuration for ANT build.xml, Windows batch file to find Java  
 
:::*'''files''' - contains misc files, such as configuration for ANT build.xml, Windows batch file to find Java  
 +
:::*'''find_java''' -
 +
:::*'''find_lock''' -
 
:::*'''hierarchyviewer''' - hierarchy viewer as part of the Eclipse plugin
 
:::*'''hierarchyviewer''' - hierarchy viewer as part of the Eclipse plugin
:::*'''hierarchyviewer2''' - hierarchy viewer as part of the Eclipse plugin
 
 
:::*'''icons''' - few Android related icons
 
:::*'''icons''' - few Android related icons
:::*'''ide_common''' - common classes for Eclipse IDE
+
:::*'''monitor''' -  
:::*'''layoutlib_api''' - from README.txt "LayoutLib API is a jar describing the API used to load and interact with layoutlib.jar It is to be packaged with clients accessing layoutlib.jar"
 
:::*'''layoutopt''' - a simple CLI front-end for the uix library, used to analyze and optimize Android layout files. uix library
 
:::*'''lint''' - Command line driver for the rules framework
 
:::*'''monkeyrunner''' - The monkeyrunner provides an API for writing programs that control an Android device or emulator from outside of Android code.
 
:::*'''ninepatch''' - full representation of a NinePatch
 
:::*'''rule_api''' - from README.txt "The Rule API is a library intended for view authors to add designtime support for their custom views in Android layout editors."
 
:::*'''screenshot''' - connects to a device to get the screen shot
 
 
:::*'''sdklauncher''' - Android SDK launcher
 
:::*'''sdklauncher''' - Android SDK launcher
:::*'''sdkmanager''' - Android SDK Manager utility
+
:::*'''settings''' -  
:::*'''sdkstats''' - sending SDK statistics utility
 
:::*'''swtmenubar''' - from README.txt "This project provides a platform-specific way to hook into the default OS menu bar."
 
 
:::*'''templates''' -  
 
:::*'''templates''' -  
 
:::*'''testapps''' - from README.txt "This repository contains test applications used by the SDK automated tests."
 
:::*'''testapps''' - from README.txt "This repository contains test applications used by the SDK automated tests."
:::*'''traceview''' - Traceview utility as part of the Eclipse Plugin
+
 
18. system
+
19. system
 
::*'''bluetooth'''
 
::*'''bluetooth'''
 
:::This directory contains source for bluetooth
 
:::This directory contains source for bluetooth
Line 1,315: Line 1,541:
 
:::*'''debuggerd''' - Crash dump on logcat generator. Good explanation about this tool (http://kobablog.wordpress.com/2011/05/12/debuggerd-of-android/)  
 
:::*'''debuggerd''' - Crash dump on logcat generator. Good explanation about this tool (http://kobablog.wordpress.com/2011/05/12/debuggerd-of-android/)  
 
:::*'''fastboot''' - Fastboot utility
 
:::*'''fastboot''' - Fastboot utility
 +
:::*'''fs_mgr''' -
 
:::*'''gpttool''' - Partition query tool
 
:::*'''gpttool''' - Partition query tool
 
:::*'''include''' - Folder and subfolders contains supporting header files. Most of the header files looks like can be found in NDK
 
:::*'''include''' - Folder and subfolders contains supporting header files. Most of the header files looks like can be found in NDK
::::*'''android''' - Support routines to send messages to the Android in-kernel log buffer, which can later be accessed through the 'logcat' utility.
+
:::*'''init''' -  
::::*'''arch''' - This directory contains subfolder for different architecture (ARM, x86, ..) but there is only 1 .h file inside them
+
:::*'''libcorkscrew''' -  
::::*'''ctest''' - Very simple unit testing framework.
 
::::*'''cutils''' - Contains header files for quite a number of utilities such as - getting CPU info, partition, etc
 
::::*'''diskconfig''' - Disk configuration partition
 
::::*'''mincrypt''' - SHA and RSA
 
::::*'''netutils''' - DHCP and IFC header files
 
::::*'''pixelfinger''' - OpenGL rendering
 
::::*'''private''' - Contains android_filesystem_config.h containing process information of Android's main application. Contain also OpenGL related information
 
::::*'''system''' - Camera, audio and windows header files
 
::::*'''sysutils''' - System utilities header files (such as ServiceManager, Socket,
 
::::*'''usbhost''' - USB header file containing USB function
 
::::*'''zipfile''' - Zip file related header file
 
:::*'''init''' - Contains init application source code
 
 
:::*'''libctest''' - C source to run test suites
 
:::*'''libctest''' - C source to run test suites
 
:::*'''libcutils''' - Contains utilities source code that are used internally by Android
 
:::*'''libcutils''' - Contains utilities source code that are used internally by Android
 
:::*'''libdiskconfig''' - Contains disk utilities related to partition, MBR  
 
:::*'''libdiskconfig''' - Contains disk utilities related to partition, MBR  
 +
:::*'''libion''' -
 
:::*'''liblinenoise''' - A small self-contained alternative to readline and libedit. Originally from https://github.com/antirez/linenoise
 
:::*'''liblinenoise''' - A small self-contained alternative to readline and libedit. Originally from https://github.com/antirez/linenoise
 
:::*'''liblog''' - Android and Kernel log library that are used internally by Android
 
:::*'''liblog''' - Android and Kernel log library that are used internally by Android
Line 1,340: Line 1,556:
 
:::*'''libnl_2''' - Netlink Protocol Format (RFC3549), this library is a clean room re-implementation of libnl 2.0
 
:::*'''libnl_2''' - Netlink Protocol Format (RFC3549), this library is a clean room re-implementation of libnl 2.0
 
:::*'''libpixelflinger''' - Library for PixelFinger.
 
:::*'''libpixelflinger''' - Library for PixelFinger.
 +
:::*'''libsparse''' -
 +
:::*'''libsuspend''' -
 +
:::*'''libsync''' -
 
:::*'''libsysutils''' - Library for system utilities.
 
:::*'''libsysutils''' - Library for system utilities.
 
:::*'''libusbhost''' - Contains USB related functions  
 
:::*'''libusbhost''' - Contains USB related functions  
Line 1,347: Line 1,566:
 
:::*'''mkbootimg''' - Application to make boot image file
 
:::*'''mkbootimg''' - Application to make boot image file
 
:::*'''netcfg''' - Network configuration application to enable or disable DHCP, etc
 
:::*'''netcfg''' - Network configuration application to enable or disable DHCP, etc
:::*'''nexus''' - Application to mock and test DHCP and network related functionality
 
 
:::*'''rootdir''' -  Contains .rc files for init
 
:::*'''rootdir''' -  Contains .rc files for init
 
:::*'''run-as''' - Contains run-as application
 
:::*'''run-as''' - Contains run-as application
Line 1,353: Line 1,571:
 
:::*'''sh''' - Contains sh application
 
:::*'''sh''' - Contains sh application
 
:::*'''toolbox''' - Contains small useful application that are part of the Android operating system
 
:::*'''toolbox''' - Contains small useful application that are part of the Android operating system
 +
 
::*'''extras'''
 
::*'''extras'''
 
:::Contains extra utility and application such as - timeinfo, fat utility, ext4 utility, etc
 
:::Contains extra utility and application such as - timeinfo, fat utility, ext4 utility, etc
 +
:::*'''atrace''' -
 
:::*'''bugmailer''' - utility to send bug report  
 
:::*'''bugmailer''' - utility to send bug report  
 +
:::*'''cpustats''' -
 
:::*'''ext4_utils''' - folder contains ext4 utilities  
 
:::*'''ext4_utils''' - folder contains ext4 utilities  
 
:::*'''fatblock''' - utility to move file or image to a block device
 
:::*'''fatblock''' - utility to move file or image to a block device
 
:::*'''latencytop''' - latency top utility
 
:::*'''latencytop''' - latency top utility
 +
:::*'''libc_test''' -
 
:::*'''libpagemap''' - page map libraries
 
:::*'''libpagemap''' - page map libraries
 
:::*'''librank''' - process libaries viewing utility
 
:::*'''librank''' - process libaries viewing utility
Line 1,375: Line 1,597:
 
::::*'''cpueater''' - CPU eating test
 
::::*'''cpueater''' - CPU eating test
 
::::*'''directiotest''' - direct IO test
 
::::*'''directiotest''' - direct IO test
 +
::::*'''ext4''' -
 
::::*'''framebuffer''' - framebuffer test
 
::::*'''framebuffer''' - framebuffer test
 
::::*'''fstest''' - file system test  
 
::::*'''fstest''' - file system test  
Line 1,392: Line 1,615:
 
:::*'''audio_effects''' - header files for audio effects such as bass, equalizer, etc
 
:::*'''audio_effects''' - header files for audio effects such as bass, equalizer, etc
 
:::*'''audio_utils''' - echo reference audio module
 
:::*'''audio_utils''' - echo reference audio module
:::*'''mca''' - mobile filter framework source files for SDK
+
:::*'''camera''' -  
:::*'''wilhelm''' - OpenSL ES framework
 
 
::*'''netd'''
 
::*'''netd'''
 
:::Networking daemon and framework such as PPP, DNS Listener.
 
:::Networking daemon and framework such as PPP, DNS Listener.
 +
::*'''security'''
 +
:::*'''keystore''' -
 +
:::*'''keystore-engine''' -
 +
:::*'''softkeymaster''' -
 
::*'''vold'''
 
::*'''vold'''
 
:::Volume Daemon is a program that can automatically mount your CD-Roms, USB-Memory Sticks, iPods and other removable Media.
 
:::Volume Daemon is a program that can automatically mount your CD-Roms, USB-Memory Sticks, iPods and other removable Media.
 +
 +
22. tools
 +
::*'''docs'''
 +
::*'''external'''
 +
::*'''hooks'''
 +
::*'''subcmds'''
 +
::*'''tests'''
 +
 +
23. vendors
 +
::This directory contains vendors specific libraries. Most of the proprietary binary libraries from non-open source projects are stored here when building AOSP
 +
::*'''qcom'''
 +
 +
[[Category:Android]]

Revision as of 04:49, 7 September 2014

This document outlines Android source code in 'master' branch from https://android.googlesource.com/ This page is a WIP page which means information will change constantly as it is based on a moving code

1. abi

  • cpp
The content of this directory is not clear what it is about as it contains several C++ files.

2. art

  • build
  • compiler
  • dalvikvm
  • dex2oat
  • disassembler
  • oatdump
  • patchoat
  • runtime
  • sigchainlib
  • test
  • tools

3. bionic

Bionic is mainly a port of the BSD C library to our Linux kernel with the following additions/changes:
- no support for locales
- no support for wide chars (i.e. multi-byte characters)
- its own smallish implementation of pthreads based on Linux futexes
- support for x86, ARM and ARM thumb CPU instruction sets and kernel interfaces
  • libc
This directory contains the different architecture that is supported to use bionic, namely - ARM (under the arch-arm/) and x86 (under the arch-x86/ directory). In order to understand in detail on how to add functions or port it to different architecture you want to read the file OVERVIEW.TXT under the docs/ folder
  • bionic -
  • arch-arm
This directory contains bionic libc libraries for ARM processor class
  • cortex-a8 -
  • bionic - sources needed to link and load bionic and it includes the functions
  • cortex-a9 - contains optimized assembler code for A9 processor- memcpy, memset and strcmp
  • cortex-a15 - contains optimized assembler code for A15 processor- memcpy, memset and strcmp
  • generic - contains assembler code for generic ARM processor - memcpy, memset and strcmp
  • include - contains header files
  • krait - contains optimized assembler code for krait processor - memcpy, memset and strcmp
  • syscalls - system calls assembler code (autogenerated files)
  • arch-mips
This directory contains bionic libc libraries for MIPS processor class
  • bionic - sources needed to link and load bionic and it includes the functions
  • include - contains header files
  • string - contains string related functions
  • syscalls - system calls assembler code (autogenerated files)
  • arch-x86
This directory contains bionic libc libraries for x86 processor class
  • bionic - sources needed to link and load bionic and it includes the functions
  • include - contains header files
  • string - contains string related functions
  • syscalls - system calls assembler code (autogenerated files)
  • bionic - contains all the functions available in libc
  • include - contains header files
  • kernel
This directory contains 'cleaned' kernel related headers and also tools to 'clean up' normal plain vanilla Linux headers
  • arm-arm - 'clean' ARM Linux headers
  • arm-mips - 'clean' MIPS Linux headers
  • arm-x86 - 'clean' x86 Linux headers
  • common - 'clean' non-architecture specific Linux headers
  • tools - contain scripts for generating clean headers (instructions outlined inside README.TXT file)
  • netbsd - functions available from NetBSD
  • private - private or non-standard header files specific for Android needs
  • stdio - functions for standard I/O
  • stdlib - functions for standard library functions - exit, tolower, etc
  • string - functions for standard string functions
  • tools - Python scripts containing helper function and syscalls generation
  • tzcode - functions for timezone functions
  • unistd - functions for universal standard functions
  • upstream-dlmalloc - from README.txt "This directory contains malloc/free routines implemented by Doug Lea (aka dlmalloc). You should not edit these files directly. Make fixesupstream and then pull down the new version of the file."
  • upstream-freebsd - from README.txt "This directory contains upstream FreeBSD source."
  • upstream-netbsd - from README.txt "This directory contains upstream NetBSD source."
  • wchar - string function (not sure what is this for ?)
  • zoneinfo - timezone host data
  • libdl
This directory what looks like a ‘stub’ program that are being used during linking process. The main function of the program is to open a library and read the symbol. The file that contains the main functionality is dlfcn.c under the /bionic/linker/ directory
  • libm
Contains Math library. Several architecture are supported inside this directory - ARM, i386, i387, MIPS
  • upstream-freebsd - math library from FreeBSD
  • libstdc++
  • linker - contains linker code that is used during kernel bootup
  • tests - contains test cases for testing the different functions available such as - math, pthread, regex,etc
This directory contains utility that is used during linking process. The tool is called Android Dynamic Linker what is does is it assign fix addresses to the library to reduce the size of the library and also increases the loading speed. .

4. bootable

  • bootloader/legacy
This directory is empty
  • diskintaller/editdisklbl - tool to test existing partition with the specified configuration in a file
  • recovery
This directory contains code for creating recovery program. The code inside shows the different things that needs to be implemented. This can be used as a boilerplate to create your own custom recoveries like the ClockworkMod.
  • applypatch - Applies binary patches to files
  • edify - Contains code that parse update scripts. The language is call ‘edify’ (this is used in conjuction with the updater sub-project)
  • etc - contains sample update script (the file is called update-script)
  • fonts -
  • minadbd - this contains a stripped down version of 'adbd' daemon for adb connection
  • minelf - contains source library that is used by the updater sub-project
  • minui - contains graphical library to be used by the recovery project.The library are mostly utilized for displaying information
  • minzip - library utilized in the recovery project+
  • mtdutils - library utilized for reading & writing to the Flash memory
  • res - contains images that are used as background in the recovery project
  • testdata - test .zip files for testing the update process
  • test
  • tools - library that contains misc function that are used by the recovery project. Some interesting function that allow checking of “unclean” reboot.
  • updater - This contains the executable to run the update script

5. build

The main entry point of the build system resides here - envsetup.sh, if you follow the instruction in source.android.com you will see that the first step before you do anything to build Android is to use the command source build/envsetup.sh
The script will check few things to make sure all the needed application available in the local machine. It also setup the devices that can be built, which is extracted from the directory device
  • core
This directory contains the heart of the build system, it consists of a number of files with the .mk extension (Makefile). The entry point of the build is the main.mk file
  • combo - this directory contains makefile that setup the host for things like - compiler, compiler settings. Architecture specific compiler settings are set here.
  • arch -
  • include - architecture specific header file is inside here. The hearder file is included in ALL Android code.
  • tasks - makefiles that contains helper functions
  • clang
  • libs
This directory contain a program which is written to replace the "cp" command to be used in Android. Not sure what is the rationale behind the use of this program.
  • target
  • board - this directory contains configuration for the target device that you are planning to build for. Looking at the content of this directory it looks like it is being used for emulators. The files inside this directory looks similar with the device directory where it contains .mk file for board specifics.
  • product - contains makefiles for the apps that need to be build
  • security - contains generated keys that are used in normal build process, own keys can be generated using the 'make_key' application
  • tools
This directory contains a number of tools that can be used as part of the build process. [need to investigate later whether the tools inside this directory is used as part of the build process - document tools that are used in the build process].
acp - "cp" version from Google
apicheck - script to run apicheck application
atree - this project is a program for file listing or something like the ‘ls’ command. (inside out/host/linux-86/bin)
check_prereq - (inside out/target/product/<device>/system/bin)
droiddoc - contains document templates that are used to generate documentation using Javadoc
fs_config - this project is part of the host tools (inside out/host/linux-86/bin)
fs_get_stats - contain source for a utility to retrieve file stats
releasetools - this project contains python scripts that can be used to sign your .apk, create an OTA file and other release related tasks
rgb2565 - this project is to convert image to a 565raw format (inside out/host/linux-86/bin)
signapk - this project is to sign your .apk file, the project is written in Java code (inside out/host/linux-86/framework)
signtos
zipalign - according to the README file “The purpose of zipalign is to ensure that all uncompressed data starts with a particular alignment relative to the start of the file. This allows those ::::::::portions to be accessed directly with mmap() even if they contain binary data with alignment restrictions.” (inside out/host/linux-86/bin)

6. cts

This directory contains compatibility test suite (http://source.android.com/compatibility/cts-intro.html). The test coverage are broken down into different folders to cover different parts of Android.
  • apps
This directory contains applications test suites. The test cases are written in Java and it test different device functionality from application layer such as - USB, sensors, camera, bluetooth, etc
  • cts-usb-accessory - USB accessories mode test case
  • CtsVerifier -
  • build - contains makefiles to generate and package the test cases
  • development
  • ide/eclipse - contains .sh file to generate the CTS classpath file for Eclipse
  • hostsidetests
  • aadb -
  • appsecurity - application security test cases
  • holo
  • monkey - monkey test cases
  • sample
  • usb -
  • libs
  • commonutil
  • deviceutil
  • json - JSON library
  • runner - contain makefile to run the core tests which resides inside the tests/core/runner
  • testserver - http test server
  • vogar-expect - according to the README file classes were extracted from the http://code.google.com/p/vogar/ project. Looking at the description of the project it is a command line test utility for Java
  • wrappedgtest -
  • suite
  • audio_quality -
  • pts -
  • tests
This directory contains Java test cases testing different kind of things, mostly on features that are available from Java application.
  • acceleration -
  • accessibility -
  • assets -
  • core -
  • deviceadmin -
  • expectations -
  • jni -
  • plans -
  • ProcessTest -
  • res -
  • sample
  • SignatureTest -
  • systemAppTest -
  • src -
  • tests -
  • uiautomator -
  • vm-tests-tf -


  • tools
This directory contains different kind of tools that are available for you to use. The tools are not used in the build process.
  • cfassembler - class to generate .class files that are somehow damaged in order to test the dalvik vm verifier.
  • cts-api-coverage - Tool that generates a report of what Android framework methods are being called from a given set of APKS
  • cts-holo-generation
  • cts-java-scanner - searches a source directory for native gTests and outputs a list of test classes and methods.
  • cts-java-scanner-doclet -
  • cts-native-scanner - scanner of C++ gTest source files
  • cts-reference-app-lib - Base Class that provides common functionality for all Reference Application Tests
  • cts-xml-generator - class that outputs a test package xml
  • dasm - .d file disassembler and assembler
  • device-setup - Collect device information on target device
  • dex-tools - contains the source code and tests for a dex file parser. This folder contains a .project file, it can be imported directly into eclipse as a java project.
  • signature-tools - This project contains the source code and tests for API signature comparison tools. The project is in Java
  • tradefed-host - CTS Trade Federation, cts-tradefed for short, is the next generation test harness for CTS. cts-tradefed is built on top of the Android Trade Federation test harness.
  • utils -
  • vm-tests-tf - Similar to vm-tests except there are few difference files.

7. dalvik


  • dexdump
The "dexdump" tool is intended to mimic "objdump".
  • dexgen
Home of dexgen, the dex code generator project. It provides API for creating dex classes in runtime which is needed e.g. for class mocking. This solution is based on the dx tool and uses its classes extensively.
  • dexlist
List all methods in all concrete classes in one or more DEX files.
  • docs
Dalvik documentation
  • dx
Home of Dalvik eXchange, the thing that takes in class files and reformulates them for consumption in the VM. It also does a few other things; use "dx --help" to see a modicum of self-documentation.
  • hit
This directory contains program to read HPROF file specific to Android. HPROF is a profiler tool in Android. The application in this directory can be run to read a sample .hprof file in the samples directory.
  • libdex
This directory contains .dex file related tools.
  • opcode-gen
This directory contains sets of defined opcodes and instruction formats for Dalvik.
  • tools
This directory contains Dalvik related tools
  • vm

8. developers

  • 'build -
  • 'demos -
  • 'docs -
  • 'samples -

9. development

  • apps
This directory contains application that are not part of the deployed app in the OS. There are some useful application such as widget builder, etc
  • BluetoothDebug - Bluetooth debugging app
  • BuildWidget - Define a simple widget that shows the Wiktionary "Word of the day."
  • CustomLocale - Change locale app that can be automatically called for testing purpose --> adb shell am broadcast -a com.android.intent.action.SET_LOCALE --es com.android.intent.extra.LOCALE en_US
  • Development - Development system app
  • DevelopmentSettings - Development settings system app
  • Fallback - fall back activity that registers itself for common intents which may possibly not otherwise be handled.
  • GestureBuilder - tool to create Gesture
  • launchperf - launch performance application
  • NinePatchLab -
  • OBJViewer - gles and raw file viewer
  • SdkSetup - Entry point for SDK SetupWizard.
  • SettingInjectorSample -
  • WidgetPreview - widget preview application
  • build
  • tools
This directory contains a number of tools that are used as part of the build process
  • cmds
This directory contains the monkey tool that allows you to inject key events into an app.
  • docs
This directory contains copyright templates
  • host
This directory contains Windows binary files for USB.
  • windows - contains USB drivers for Windows
  • ide
This directory contains IDE specific information/configuration. Eclipse, EMacs, IntelliJ and XCode are the IDEs supported.
  • eclipse - formatter for eclipse
  • emacs - plugin configuration for emacs for Android development
  • intellij - Definition for IntelliJ configuration
  • xcode - xcode configuration (not very familiar on what kind of configuration is this as never used xcode before)
  • libraries
From the README.txt - Stereo Camera Libraries for Android. This SDK component contains static libraries for computing the depth map of a pair of stereo images. To use the libraries, simply copy them as static libraries into your project.
  • stereocamera -
  • ndk
This directory contains NDK (Native Development Kit) for Android. This particular directory is not build as part of the Android build process.
  • platforms - contains the sources of the C runtime object files required by the Android NDK toolchains. Contains more information inside README.CRT.TXT
  • samples - sample applications on using NDK
  • sources -
  • tests - contain script to execute all the test cases inside NDK
  • tools - tool o compare headers between Bionic and NDK
  • perftests
  • samples
This directory contains Android application sample files. There are a lot of sample projects that can be used by developers.
  • AccelerometerPlay - example of using the accelerometer to integrate the device's acceleration to a position using the Verlet method.
  • ActionBarCompat - ActionBar sample
  • Alarm - revised version of the AlarmService functionality included in the ApiDemos sample application
  • AliasActivity -
  • AndroidBeamDemo - shows how to use the Android Beam feature introduced in API level 14. This application must be installed on two devices that have NFC capabilities, running Android 4.0 or later.
  • ApiDemos - The API Demos application includes a variety of small applications that illustrate the use of various Android APIs. It includes samples of: Notifications, Alarms, Progress Dialogs, etc
  • AppNavigation - application navigation
  • BackupRestore - Backup/Restore application illustrates a few different approaches that an application developer can take when integrating with the Android Backup Manager
  • BasicGLSurfaceView - basic OpenGL surface view sample
  • BluetoothChat - chat app using bluetooth
  • BluetoothHDP - sample application that demonstrates how to communicate with a Bluetooth Health Device Profile (HDP) device
  • BluetoothLeGatt -
  • browseable -
  • BusinessCard -
  • Compass -
  • ContactManager -
  • ControllerSample -
  • CrossCompatibility -
  • CubeLiveWallpaper -
  • devbytes -
  • FixedGridLayout -
  • HeavyWeight -
  • HelloActivity -
  • HelloEffects -
  • Home -
  • HoneycombGallery -
  • JetBoy -
  • KeyChainDemo -
  • LunarLander -
  • MultiResolution -
  • MySampleRss -
  • NotePad -
  • Obb -
  • OpenGL -
  • RandomMusicPlayer -
  • RenderScript -
  • RSSReader -
  • SampleSyncAdapter -
  • SearchableDictionary -
  • SimpleJNI -
  • SipDemo -
  • SkeletonApp -
  • Snake -
  • SoftKeyboard -
  • SpellChecker -
  • Spinner -
  • SpinnerTest -
  • StackWidget -
  • Support4Demos -
  • Support7Demos -
  • Support13Demos -
  • SupportAppNavigation -
  • TicTacToeLib -
  • TicTacToeMain -
  • ToyVpn -
  • training -
  • TtsEngine -
  • UiAutomator -
  • USB -
  • Vault -
  • VoicemailProviderDemo -
  • VoiceRecognitionService -
  • WeatherListWidget -
  • WiFiDirectDemo -
  • WiFiDirectServiceDiscovery -
  • Wiktionary -
  • WiktionarySimple -
  • XmlAdapters -
  • scripts
Some Google App Engine specific scripts.
  • app_engine_server -
  • gdb -
  • sdk
This directory contains .properties file related to SDK, can’t figure out what exactly it is used for as there aren’t that much information inside.
  • sdk_overlay
Overlay resource files that are used for different device
  • frameworks -
  • packages -
  • sys-img
  • testrunner
Utility to run the test cases based on Python.
  • coverage -
  • test_defs -
  • tests -
  • tools
  • apkcheck - This directory contains Android APK Checker utitlity.This compares the set of classes, fields, and methods used by an Android application against the published API. It identifies and reports the use of any unpublished members or methods.
  • axl - TCP and HTTP tests, the testcase is written in Python.
  • elftree -
  • emulator -
  • etc1tool -
  • findunused -
  • hosttestlib -
  • idegen - automatically generates Android IDE configurations for IntelliJ IDEA and Eclipse. Your IDE should be able to compile everything in a reasonable amount of time with no errors.
  • labpretest - The labpretest.sh script is designed to emulate a typical automated test lab session. It puts a device into bootloader mode, reboots into bootloader mode, determines device type, erases user cache, flashes a generic userdata image, updates the bootloader image, updates the radio image, updates the system image and reboots, sets up for a monkey run and finally runs a random monkey test. It will repeat this based on an optional parameter(-i) or default to 100 times. It will detect if it is in a low battery situation and wait for it to charge again.
  • line_endings -
  • mkstubs - is small tool that takes a given JAR and filters all the private stuff we don't want to expose, e.g.: remove all private members, only include a subset of classes, exclude specific classes, fields or methods.
  • recovery_l10n -
  • templates - This directory contains Android source code templates for building Android application.
  • yuv420sp2rgb -


  • tutorials
This directory contain a Notepad tutorial application development tutorial.
  • NotepadCodeLab -
  • MoarRam -
  • ReverseDebug -

9. device

  • asus
This directory contains device information for Nexus 7 devices.
  • common
This directory contains gps information and also a script that allows you to extract proprietary binary files from your phone to be part of the build process.
  • generic
This directory contains the generic device configuration that is called ‘goldfish’. This is the device classification used when building the emulator.
  • google
This directory contains the Android Accessories Kit code. It contains a demokit Android app that allows you to control the ADK board. The ADK firmware can be check out here http://code.google.com/p/microbridge/. There is a good article about this http://romfont.com/2011/05/12/google%E2%80%99s-open-accessory-development-kit-on-standard-arduino-hardware/
  • lge
This directory contains device information for LG devices.
  • sample
This directory contains a full example of writing your own Android platform shared library, without changing the Android framework. It also shows how to write JNI code for incorporating native code into the library, and a client application that uses the library. This example is ONLY for people working with the open source platform to create a system image that will be delivered on a device which will include a custom library as shown here. It can not be used to create a third party shared library, which is not currently supported in Android.
  • samsung
This directory contains Samsung specific configuration


10. docs

  • source.android.com
Contains tutorials, references, and miscellaneous information relating to the Android Open Source Project (AOSP). The current iteration of this site is fully static HTML (notably lacking in javascript and doxygen content), and is and/or was maintained by skyler (illustrious intern under Dan Morrill and assistant to the almighty JBQ).

11. external

  • aac
  • android-clat
  • android-mock
Android Mock is a wrapper for EasyMock (2.4) which allows for real Class mocking on an Android (Dalvik) VM. All methods on Android Mock are syntactically equivalent to EasyMock method calls, and will delegate calls to EasyMock, while performing the required transformations to avoid Dalvik VM troubles.
  • ant-glob
  • antlr
From the project website http://www.antlr.org/
ANTLR, ANother Tool for Language Recognition, is a language tool that provides a framework for constructing recognizers, interpreters, compilers, and translators from grammatical descriptions containing actions in a variety of target languages.
  • apache-harmony
Apache Harmony software is a modular Java runtime with class libraries and associated tools.
  • apache-http
HTTP API for Java from Apache
  • apache-qp
  • apache-xml
From project website http://xml.apache.org/xalan-j/
  • arduino
  • astl
ASTL (Android STL) is a slimmed-down version of the regular C++ STL.
  • bison
This directory contains the Bison parser generator.
  • blktrace
This directory contains Block IO Tracing. blktrace was integrated into the mainline kernel between 2.6.16 and 2.6.17-rc1. The website http://brick.kernel.dk/snaps/
  • bluetooth
This directory contains project for Bluetooth communication
  • bluez - Bluetooth protocol stack for Linux
  • glib - GLib is the low-level core library that forms the basis for projects such as GTK+ and GNOME. It provides data structure handling for C, portability wrappers, and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system.
  • hcidump - Bluetooth analyzer project
  • bouncycastle
This directory contains ported version of Bouncycastle.org encryption project. The document in patches/README outlined the changes made to use it in Android
  • bsdiff
This directory contains bsdiff and bspatch project. These are tools for building and applying patches to binary files. The project can be found in http://www.daemonology.net/bsdiff/.
  • bzip2
This directory contains bzip-1.0.6 from http://www.bzip.org/. According to the RADME.android file no changes were made
  • ceres-solver
  • checkpolicy
  • chromium
This directory contains the Chromium project.
  • chromium-libpac
  • chromium_org
  • chromium-trace
  • clang
This directory contains Clang project. This is a compiler front-end for the C family of languages (C, C++, Objective-C, and Objective-C++) which is built as part of the LLVM compiler infrastructure project.
  • compiler-rt
  • dexmaker
  • dhcpcd
This is a DHCP client daemon project.
  • dnsmasq
This directory contains the Dnsmasq project - a lightweight, easy to configure DNS forwarder and DHCP server - http://thekelleys.org.uk/dnsmasq/doc.html.
  • droiddriver
  • doclava
This directory contains the Doclava project - a custom Javadoc doclet used to generate documentation. Project page for this http://code.google.com/p/doclava/
  • dropbear
This directory contains Dropbear, a smallish SSH 2 server and client.
  • e2fsprogs
Is a set of utilities for maintaining the ext2, ext3 and ext4 file systems.
  • easymock
This directory contains easymoch project - a Java library that provides an easy way to use Mock Objects in unit testing with JUnit and TestNG. Project page - http://sourceforge.net/projects/easymock/
  • eclipse-basebuilder
  • eclipse-windowbuilder
  • eigen
  • elfutils
This directory contains varieties of tools and libraries that are related to ELF file.
  • embunit
This directory contains embunit - a unit testing framework for Embedded C System. Project page - http://sourceforge.net/projects/embunit/
  • emma
This directory contains .....
  • esd
  • expat
This directory contains Expat, a C library for parsing XML, written by James Clark. Expat is a stream-oriented XML parser.
  • eyes-free
  • fdlibm
This directory contains FDLIBM (Freely Distributable LIBM). It is a C math library for machines that support IEEE 754 floating-point arithmetic. In this release, only double precision is supported.
  • flac
This directory contains the source for FLAC project - Free Lossless Audio Codec - http://libzplay.sourceforge.net/FLAC.html.
  • freetype'
This directory contains code for Freetype project http://freetype.sourceforge.net/. FreeType 2 is a software font engine that is designed to be small, efficient, highly customizable, and portable while capable of producing high-quality output (glyph images).
  • fsck_msdos
This directory contains MS-DOS file system check code.
  • ganymed-ssh2
  • gcc-demangle
  • genext2fs
genext2fs generates an ext2 filesystem as a normal (non-root) user. It does not require you to mount the image file to copy files on it, nor does it require that you become the superuser to make device nodes.
  • giflib
This contains the GIF library
  • google-diff-match-patch
  • grub
This is GNU GRUB, the GRand Unified Bootloader. GRUB is intended to provide important bootloader features that are missing from typical personal computer BIOSes
  • gtest
Google's framework for writing C++ tests on a variety of platforms (Linux, Mac OS X, Windows, Windows CE, Symbian, and etc).
  • guava
Guava-libraries are a grab bag of utility libraries published by Google as open source, including among other things the Google collections libraries.
  • hamcrest
HarfBuzz, an OpenType Layout engine library.
  • harfbuzz
  • harfbuzz_ng
  • hyphenation
Hyphen - hyphenation library to use converted TeX hyphenation patterns
  • icu4c
ICU is a mature, widely used set of C/C++ and Java libraries providing Unicode and Globalization support for software applications - http://site.icu-project.org/
  • iproute2
This directory contains iproute2, it is a collection of utilities for controlling TCP / IP networking and traffic control in Linux http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2
  • ipsec-tools
This directory contains IPsec-Tools project, it is a port of KAME's IPsec utilities to the Linux-2.6 IPsec implementation. Project website http://ipsec-tools.sourceforge.net/
  • iptables
This directory contains iptables project, it is a user space application program that allows a system administrator to configure the tables provided by the Linux kernel firewall
  • iputils
  • jack
  • javasqlite
This directory contains the Java JDBC wrapper project for SQLLite.
  • javasisst
This directory contains Javassist project. Javassist (JAVA programming ASSISTant) makes Java bytecode manipulation simple. It is a class library for editing bytecodes in Java; it enables Java programs to define a new class at runtime and to modify a class file when the JVM loads it.
  • jdiff
This directory contains JDiff Doclet project. The JDiff doclet is used to generate a report describing the difference between two public Java APIs. Project page http://sourceforge.net/projects/javadiff
  • jhead
This directory contains the jhead project. jhead is an Exif Jpeg header manipulation tool. Project website http://www.sentex.net/~mwandel/jhead/
  • jmdns
  • jmonkeyengine
  • jpeg
This directory contains project for JPEG image compression and decompression.
  • jsilver
This directory contains Java wrapper project for the ClearSilver project - http://www.clearsilver.net/. ClearSilver is a fast, powerful, and language-neutral HTML template system.
  • jsr305
This directory contains the JSR 305 specification implementation. JSR 305 is an Annotations for Software Defect Detection in Java. Project website http://code.google.com/p/jsr-305/


  • junit
This directory contains JUnit project. This project is a Java testing framework, project website http://www.junit.org
  • kernel-headers
This directory contains header files for the Linux Kernel.
  • libcap-ng
  • libffi
This directory contains libffi project. The libffi library provides a portable, high level programming interface to various calling conventions. This allows a programmer to call any function specified by a call interface description at run time. Project website http://sourceware.org/libffi/
  • libgsm
This directory contains GSM 06.10 13 kbit/s RPT/LTP implementation. According to the README: “......we are publishing an implementation of the European GSM 06.10 provisional standard for full-rate speech transcoding, prI-ETS 300 036, which uses RPE/LTP (residual pulse excitation/long term prediction) coding at 13 kbit/s”
  • liblzf
This directory contains liblzf project. This project is an extremely fast compression algorithm. Project website http://software.schmorp.de/pkg/liblzf
  • libmtp
  • libnfc-nci
  • libnfc-nxp
This directory contains NFC library from NXP Semiconductors.
  • libnl-headers
This directory contains network related library. [ Not sure what this project do ?? ]
  • libogg
  • libpcap
This directory contains source code for libpcap, a system-independent interface for user-level packet capture. libpcap provides a portable framework for low-level network monitoring. Applications include network statistics collection, security monitoring, network debugging,etc. Project website http://www.tcpdump.org
  • libphonenumber
This directory contains Google's phone number handling library. Project website http://code.google.com/p/libphonenumber/
  • libpng
This directory contains library source code for manipulating .png file format.
  • libppp
  • libselinux
  • libsepol
  • libusb
  • libusb-compat
  • libvorbis
  • libvpx
  • libxml2
This directory contains source library for manipulating XML.
  • libxslt
This directory contains source code for XSLT toolkit. This project is part of the XML toolkit from the GNOME project. Project website http://xmlsoft.org/XSLT/
  • libyuv
  • linux-tools-perf
  • littlemock
  • llvm
This directory contains the LLVM project. LLVM project is a Low Level Virtual Machine, a toolkit for the construction of highly optimized compilers,optimizers, and runtime environments. There is an interesting read inside the README.android file that shows some of the issues on the reason why Google can’t push to llvm.org upstream and also some indication on how to sync to upstream.
  • lzma
  • marisa-trie
  • markdown
This directory contains the Markdown project. Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML). Project page https://github.com/trentm/python-markdown2
  • mdnsresponder
  • mesa3d
This directory contains Mesa 3D project. Mesa is an open-source implementation of the OpenGL specification - a system for rendering interactive 3D graphics. Project website http://www.mesa3d.org/
  • mksh
This directory contains the minimum implemention of the mkshrc application for Android.
  • mockito
  • mockwebserver
This directory contains a library for testing HTTP and HTTPS clients. Project page http://code.google.com/p/mockwebserver/
  • mp4parser
  • mtpd
This directory contains  ????
  • naver-fonts
  • netcat
From README file:
“Netcat is a simple Unix utility which reads and writes data across network connections, using TCP or UDP protocol. It is designed to be a reliable "back-end" tool that can be used directly or easily driven by other programs and scripts. “
  • netperf
This directory contains Hewlett Packard netperf tool. According to the project page http://www.netperf.org/netperf/ - “Netperf is a benchmark that can be use to measure various aspect of networking performance.”
  • neven
There isn’t much information can be found inside this directory about the project. Reading through the source code and also the filenames it looks like a face recognition library.
  • nist-pkits
  • nist-sip
This directory contains code for VOIP implementation
  • noto-fonts
  • oauth
This directory contains code for the oauth authentication project code.
  • objenesis
  • okhttp
  • opencv
This directory contains an optimized port of OpenCV for Android
  • openfst
  • openssh
  • openssl
This directory contains OpenSSL project code for Android. The readme.android file contains information on how to port the latest version of OpenSSL
  • oprofile
According to the README file
“This is an alpha release version of oprofile, a transparent low-overhead system-wide profiler.“
  • pixman
  • ppp
This directory contains code for the ppp protocol
  • proguard
This directory contains ProGuard code. ProGuard is a Java class file shrinker, optimizer, obfuscator, and preverifier
  • protobuf
This directory contains Protobuf code. Protobuf is a Google's data interchange format project. Link to the project page - http://code.google.com/apis/protocolbuffers/
  • qemu
This directory contains the QEMU project ( http://wiki.qemu.org/Main_Page ).
  • qemu-pc-bios
This project has the source code to build two binaries: bios.bin and vgabios-cirrus.bin, which are required for x86 emulation in the Android emulator: platform/external/qemu.
  • regex-re2
  • replicaisland
  • safe-iop
This directory contains source code for the safe-iop project ( http://code.google.com/p/safe-iop/ ). This library provides a collection of (macro-based) functions for performing safe integer operations across platform and architecture with a straightforward API.
  • scrypt
  • sepolicy
  • sfntly
  • sil-fonts
  • skia
Skia ( http://code.google.com/p/skia/ ) is a complete 2D graphic library for drawing Text, Geometries, and Images. Features include: 3x3 matrices w/ perspective, antialiasing, transparency, filters, shaders, xfermodes, maskfilters, patheffects.
  • smack
  • smali
  • sonivox
Sonivox is an embedded audio synthesis project, it contains source code as well binary files for the music. There is quite a lot of documentation inside the /docs folder
  • speex
Project website http://www.speex.org/ according to their website
Speex is an Open Source/Free Software patent-free audio compression format designed for speech. The Speex Project aims to lower the barrier of entry for voice applications by providing a free alternative to expensive proprietary speech codecs. Moreover, Speex is well-adapted to Internet applications and provides useful features that are not present in most other codecs. Finally, Speex is part of the GNU Project and is available under the revised BSD license.
  • sqlite
Project website http://www.sqlite.org/ according to their website
SQLite is a software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain
  • srec
SREC embedded speech recognition engine. There is a doc/ folder containing few .pdf documentation. On reading the documentation the library is from a company NUANCE PROFESSIONAL SERVICES
  • srtp
Provides an implementation of the Secure Real-time Transport Protocol (SRTP), the Universal Security Transform (UST), and a supporting cryptographic kernel. From the documentation it shows that this project was from Cisco
  • stlport
STLport is a full ANSI C++ Standard library. Project website
https://sourceforge.net/project/showfiles.php?group_id=146814
  • strace
Strace 4.0, a system call tracer for SunOS 4.x, Linux, System V release 4, Solaris 2.x and Irix 5.x. Project website - http://www.liacs.nl/~wichert/strace/
  • stressapptest
  • svox
From the documentation
SVOX Pico system is a software solution aimed at enabling Text-to-Speech (TTS) functionalities in low CPU/memory platforms. The Pico core system will be deployed as a set of libraries accessible through an API available to application developers. While benefitting from SVOX knowhow and ‘lessons learned’, SVOX Pico is an entirely new TTS system designed from scratch and coded in native ANSI-C. This document describes the Pico core system in terms of the underlying design principles, its architecture and main components, and some guidelines for developers who would like to extend Pico’s functionality.
http://www.svox.com/ (website redirected to Nuance Professional Services website)
  • tagsoup
Project website http://home.ccil.org/~cowan/XML/tagsoup/, from the website
This is the home page of TagSoup, a SAX-compliant parser written in Java that, instead of parsing well-formed or valid XML, parses HTML as it is found in the wild: poor, nasty and brutish, though quite often far from short. TagSoup is designed for people who have to process this stuff using some semblance of a rational application design. By providing a SAX interface, it allows standard XML tools to be applied to even the worst HTML. TagSoup also includes a command-line processor that reads HTML files and can generate either clean HTML or well-formed XML that is a close approximation to XHTML.
  • tcpdump
From the README file
This directory contains source code for tcpdump, a tool for network monitoring and data acquisition. This software was originally developed by the Network Research Group at the Lawrence Berkeley National Laboratory. The original distribution is available via anonymous ftp to ftp.ee.lbl.gov, in tcpdump.tar.Z. More recent development is performed at tcpdump.org, http://www.tcpdump.org/
  • tinyalsa
From the README file
A small library to interface with ALSA in the Linux kernel. The aims are:
  • Provide a basic pcm and mixer API
  • If it's not absolutely needed, don't add it to the API
  • Avoid supporting complex and unnecessary operations that could be dealt with at a higher level
  • tinycompress
  • tinyxml
From readme.txt file
In brief, TinyXml parses an XML document, and builds from that a Document Object Model (DOM) that can be read, modified, and saved.
  • tinyxml2
  • tremolo
From http://wss.co.uk/pinknoise/tremolo/
Tremolo is an ARM optimised version of the Tremor lib from xiph.org. For those that don't know, the Tremor lib is an integer only library for doing Ogg Vorbis decompression.
  • v8
Javascript engine from Google
  • valgrind
Project website http://www.valgrind.org,from the documentation:
The Valgrind tool suite provides a number of debugging and profiling tools that help you make your programs faster and more correct. The most popular of these tools is called Memcheck. It can detect many memory-related errors that are common in C and C++ programs and that can lead to crashes and unpredictable behaviour
  • webkit
Project website http://www.webkit.org from the website:
WebKit is an open source web browser engine. WebKit is also the name of the Mac OS X system framework version of the engine that's used by Safari, Dashboard, Mail, and many other OS X applications. WebKit's HTML and JavaScript code began as a branch of the KHTML and KJS libraries from KDE.
  • webp
Project website - http://code.google.com/speed/webp, according to README file:
WEBP decoder: libwebpdecode.so is a simple library for decoding WEBP image files.
  • webrtc
Project website - http://www.webrtc.org/, from the website
WebRTC is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple Javascript APIs. Our mission: To enable rich, high quality, RTC applications to be developed in the browser via simple Javascript APIs and HTML5.
  • wpa_supplicant_8
Similar to wpa_supplicant_6 but the version for hostapd is also older (??)
  • xmlwriter
Inside this folder there is only 1 file XMLWriter.java and the author’s website is http://jheer.org
  • xmp_toolkit
  • yaffs2
Project website - http://www.yaffs.net, from the website
YAFFS (Yet Another Flash File System) is now in its second generation and provides a fast robust file system for NAND and NOR Flash. It is widely used with Linux and RTOSs, in consumer devices.
  • zlib
Project website - http://zlib.net/, from the website
  • zxing
A Massively Spiffy Yet Delicately Unobtrusive Compression Library

12. frameworks

  • av
  • camera -
  • cmds -
  • drm -
  • include -
  • libvideoeditor -
  • media -
  • services -
  • tools -
  • base
  • api - contains xml files with information about Java classes
  • cmds - contains .mk (makefile) files with Dalvik heap information
  • am - contains the am utility source
  • app_process - application for launch Dalvik app
  • backup - reading the source it looks like a backup utility (?)
  • bmgr - Backup Manager java application
  • bootanimation - contains the boot animation code that normally we see when starting up our phone
  • bu - backup utility written in Java
  • content -
  • ime -
  • input - utility helper for sending key events to device
  • interrupter -
  • pm - package manager utility for Java classes
  • requestsync -
  • screencap - screen capture utility
  • svc - Java based service command utility
  • wm -
  • core - contains system Java API such as database, bluetooth, package manager, speech, etc. This directory contains both Java and C/C++ code for the API
  • java - Java code containing system API
  • jni - JNI code for the system API
  • res- Resource files for system API
  • tests- Java unit test for system API
  • data - contains resources for internal application such as - fonts, sounds, videos, etc
  • etc- permission files for hardware specific resources
  • fonts- fonts file
  • keyboards- keyboard and USB based device keyboard mapping files
  • sounds- sound files
  • videos- video files
Provides classes for managing DRM content and determining the capabilities of DRM plugins (agents).
  • java - programming interface for the DRM framework
  • jni - native interface for DRM framework
provides low level graphics tools such as canvases, color filters, points, and rectangles that let you handle drawing to the screen directly.
  • java -
  • jni -
  • tests -
  • include - include files for most of the internal services
  • android_runtime - header files for android runtime process
  • androidfw -
  • private - from README "This folder contains private include files. These include files are part of the private implementation details of various framework components."
  • storage - storage header files
  • keystore - implementation of KeyStore (secured storage for key-value pairs).
  • java -
  • tests -
  • libs - additional library available to be used by the internal services
  • androidfw -
  • hwui - HW graphics library
  • storage - storage library
  • usb - wrapper class for the USB Manager to support USB accessories.
  • location -
  • java -
  • lib -
  • tests -
  • media - media framework related API and libraries
  • java
  • android/media - from package.html "Provides classes that manage various media interfaces in audio and video. The Media APIs are used to play and, in some cases, record media files. This includes audio (e.g., play MP3s or other music files, ringtones, game sound effects, or DTMF tones) and video (e.g., play a video streamed over the web or from local storage)."
  • android/mtp - from package.html "Provides APIs that let you interact directly with connected cameras and other devices, using the PTP (Picture Transfer Protocol) subset of the MTP (Media Transfer Protocol) specification. Your application can receive notifications when devices are attached and removed, manage files and storage on those devices, and transfer files and metadata from the devices."
  • jni - native layer interface for camera,audio,video, etc services (native layer for services in android/ folder)
  • audioeffect -
  • mediaeditor -
  • soundpool -
  • mca -
  • effect -
  • filterfw -
  • filterpacks -
  • samples -
  • tests -
  • tests -
  • native
  • android -
  • graphics -
  • nfc-extras - Provides additional methods for Card Emulation and management
  • java -
  • extras -
  • obex - Bluetooth file transfer implementation
  • opengl - according to README
This directory contains OpenGL ES and EGL extension specifications that have been or are being defined for Android.
  • java - contains wrapper Java source
  • packages - Contains built in application
  • BackupRestoreConfirmation - Backup/restore confirmation dialog
  • DefaultContainerService - Service copies a downloaded apk to a file passed in as a ParcelFileDescriptor
  • DocumentsUI -
  • ExternalStorageProvider -
  • FakeOemFeatures -
  • FusedLocation -
  • Keyguard -
  • PrintSpooler -
  • services -
  • InputDevices -
  • SettingsProvider - Settings application provider
  • SharedStorageBackup - external storage backup
  • Shell -
  • SystemUI - Internal System Settings UI
  • VpnDialogs - VPN dialog
  • WAPPushManager - from the source code "The WapPushManager service is implemented to process incoming WAP Push messages and to maintain the Receiver Application/Application ID mapping."
  • policy - implementation (Java) of some of the security that are build inside Android (password unlocker, lock pattern, etc)
  • samples -
  • training -
  • sax - SAX implementation (Java)
  • services - Android internal service implementation eg:- power manager, sensor service, surface flinger, etc.
  • common_time -
  • input -
  • java -
  • jni -
  • tests -
  • telephony - telephony sample implementation including RIL (Radio Interface Layer).
  • test-runner - unit test mock for some of the internal API (Java)
  • src -
  • tests -
  • tests - test cases for most of the internal services (Java)
  • AccessoryDisplay -
  • ActivityTests -
  • AppLaunch -
  • appwidgets -
  • Assistant -
  • backup -
  • BandwidthTests -
  • BatteryWaster -
  • BiDiTests -
  • BrowserPowerTest -
  • BrowserTestPlugin -
  • CanvasCompare -
  • Camera2Tests -
  • Compatibility -
  • CoreTests -
  • DataIdleTest -
  • DpiTest -
  • FixVibrateSetting -
  • FrameworkPerf -
  • GridLayoutTest -
  • HugeBackup -
  • HwAccelerationTest -
  • ImfTest -
  • LargeAssetTest -
  • LocationTracker -
  • LotsOfApps -
  • LowStorageTest -
  • MemoryUsage -
  • permission -
  • RenderScriptTests -
  • SerialChat -
  • SharedLibrary -
  • SmokeTest -
  • SmokeTestApps -
  • SslLoad -
  • StatusBar -
  • TileBenchmark -
  • touchlag -
  • TransformTest -
  • TransformTest -
  • TtsTests -
  • WebViewTests -
  • tools - internal tools that are used by Android
  • aapt -
  • aidl -
  • layoutlib -
  • obbtool -
  • orientationplot -
  • preload -
  • validatekeymaps -
  • velocityplot -
Provides classes to manage Wi-Fi functionality on the device.
  • compile
the directory contains few sub-directory - libbcc (A Versatile Bitcode Execution Engine for Mobile Devices), linkloader (this is a ‘plugin’ for LLVM), slang (compiler for Renderscript language)
  • libbcc -
  • mclinker -
  • slang -


  • ex
  • carousel - UI carousel implementation that is used internally by Android
  • camera2 -
  • chips -
  • common - common class (Java) that are used internally by Android such as - contacts, widgets, io, etc
  • photoviewer -
  • variablespeed - media player specific classes
  • widget -
  • mff
  • ml
  • bordeaux -
  • native
  • build -
  • cmds -
  • data -
  • include -
  • libs -
  • opengl -
  • services -
  • opt
  • calendar - helper classes for Calendar app
  • carddav -
  • colorpicker -
  • datetimepicker -
  • emoji - emoticons helper function
  • inputmethodcommon - input functionality function helper
  • mailcommon - subset of mail helper function
  • mms -
  • net -
  • photoviewer -
  • telephony -
  • timezonepicker -
  • vcard - vcard function helper
  • rs
  • cpp -
  • cpu_ref -
  • driver -
  • java -
  • scriptc -
  • server -
  • tests -
  • support
support UI classes for different Android version
  • tests -
  • v4 -
  • v7 -
  • v8 -
  • v13 -
  • testing
  • androidtestlib -
  • app-tests -
  • uiautomator -
  • uiautomator_test_libraries -
  • uiautomator
  • api -
  • cmds -
  • core -
  • samples -
  • testrunner -
  • utils -


  • volley
Fast networking library for Android. A very good video to introduce and learn about the library https://www.youtube.com/watch?v=yhv8l9F44qo
  • src - source for the volley library
  • tests - test cases for volley
  • webview
  • chromium -
  • wilhelm
  • doc -
  • include -
  • src -
  • tests -
  • tools -


14. hardware

  • akm
  • AK8975_FS -
  • broadcom
Broadcom wireless device drivers (binary format).
  • libbt -
  • wlan -
  • invensense
Invsense Sensors source code
  • libsensors -
  • libsensors_iio -
  • mlsdk -
  • libhardware
  • libsensors - MPL sensors family
  • mlsdk - ML Inverse family SDK
  • libhardware
contain Android HAL library function, the following blog post explain nicely about HAL http://sujaiantony.wordpress.com/2012/06/25/an-android-101-hardware-and-hal/
  • include - include files for Android HAL for different devices
  • modules - from README.android "Default (and possibly architecture dependents) HAL modules go here, libhardware.so eventually should contain *just* the HAL hub (hardware.c), everything in it should be rewritten as modules."
  • audio - audio hardware HAL
  • audio_remote_submix -
  • gralloc - Graphics Memory Allocator Module
  • hwcomposer - from README.android "Skeleton for the "hwcomposer" HAL module."
  • local_time -
  • nfc - Default NFC HW HAL
  • nfc_nci -
  • power -
  • usbaudio -
  • tests - test code to test the hardware modules
  • libhardware_legacy
legacy hardware HAL implementation
  • audio -
  • include -
  • power -
  • qemu -
  • qemu_tracing -
  • uevent -
  • vibrator -
  • wifi -
  • msm7k -
Qualcomm MSM7000 hardware source code
  • boot - contains library map location
  • dspcrashd - daemon to monitor /dev/dsp_debug
  • libaudio - audio library
  • libaudio-qdsp5v2 -
  • libaudio-qsd8k -
  • libcamera -
  • libcopybit -
  • libgralloc -
  • libgralloc-qsd8k -
  • liblights -
  • librpc -
  • libstagefrighthw -
  • qcom
Qualcomm specific code for media and GPS
  • audio -
  • bt -
  • camera -
  • display -
  • gps -
  • 'keymaster -
  • media -
  • msm8960 -
  • power -
  • sensors -
  • wlan -
  • ril
Radio Inteface Layer (RIL) interface and sample interface. RIL is the layer for radio based communication like the phone call
  • include - RIL include files
  • libril - library used for RIL
  • mock-ril - Mock up RIL
  • reference-ril - RIL reference implementation code
  • rild - RIL daemon
  • samsung_slsi
  • exynos5 -
  • ti
Texas Instruments OMAP3 and OMAP4 hardware source code - media framework, camera, security,etc
  • omap3 -
  • omap4xxx -
  • omap4-aah - left over code from Android At Home project
  • wlan -
  • wpan -


15. libcore

  • benchmarks
  • crypto
  • dalvik
VM runtime for Android
  • dex
  • dom
Java test classes for DOM
  • expectations
Contains information about the test cases
  • harmony-tests
  • include
Some C/C++ include files that used for Array and String handling
  • json
JSON based Java implementation
  • libdvm
  • luni
Contains test source code for loading .jar and .dex files
  • support
Contains support class file for testing Dalvik
  • xml
XML pull and push implementation

16. libnativehelper

  • include

17. ndk

  • build
Contains build scripts and helper files for building the NDK
  • awk - a number of awk scripts that helps to extract information from an application's manifest - i.e. AndroidManifest.xml
  • core - makefile that are used to build the NDK
  • gmsl - GNU Make Standard Library
  • tools - from DEV-SCRIPTS-USAGE.TXT "directory contains a number of shell scripts, which we will call the "dev-scripts", that are only used to develop the NDK itself, i.e. they are un-needed when using ndk-build to build applicative native code."
  • docs
Contains NDK related documentation
  • sources
NDK source code and library source
  • android - contains code for cpufeatures and sources of the special libthread_db that will be statically linked against gdbserver binary
  • cpufeatures -
  • cxx-stl
contains C++ standard template library source
  • host-tools
contains varieties of tools for host machine (Linux)
  • make-3.81 - make build source
  • nawk-20071023 - awk source code
  • ndk-stack - tool that allows you to filter stack traces as they
  • sed-4.2.1 - sed tool source code
  • toolbox - A brain-dead 'echo' toolbox program for Windows
  • third_party
  • tests
from README file "This directory contains scripts and sources to perform automated testing of the NDK. Before making a new NDK release, please run tests/run-tests.sh to ensure that everything is working properly."
  • awk - contains test files for testing awk scripts
  • build - contains scripts for NDK test cases
  • device - contains test cases for NDK - such as cpu features, libraries
  • standalone - standalone simple test cases
  • toolchains
Build file for building the toolchain both for x86 and ARM based platform
  • arm-linux-androideabi-4.4.3 - prepare the NDK to build with the arm-eabi-4.4.0 toolchain
  • arm-linux-androideabi-4.6 -
  • arm-linux-androideabi-4.7 -
  • arm-linux-androideabi-4.8 -
  • arm-linux-androideabi-clang3.1 -
  • arm-linux-androideabi-clang3.2 -
  • llvm-3.1 -
  • llvm-3.2 -
  • mipsel-linux-android-4.4.3 -
  • mipsel-linux-android-4.6 -
  • mipsel-linux-android-4.7 -
  • mipsel-linux-android-4.8 -
  • mipsel-linux-android-clang3.1 -
  • mipsel-linux-android-clang3.2 -
  • x86-4.4.3 - prepare the NDK to build with the x86-4.4.3 toolchain
  • x86-4.6 -
  • x86-4.7 -
  • x86-4.8 -
  • x86-clang3.1 -
  • x86-clang3.2 -

18. packages

  • apps
Standard Android application that are available as part of the AOSP - Camera, SMS, Dialer, Launcher, etc
  • BasicSmsReceiver - Very basic SMS application
  • Bluetooth - Bluetooth application
  • Browser - Browser application
  • Calculator - Calculator application
  • Calendar - Calendar application
  • Camera - Camera application
  • CellBroadcastReceiver - 2 main services . CellBroadcastConfigService --> This service manages enabling and disabling ranges of message identifiers that the radio should listen for. It operates independently of the other services and runs at boot time and after exiting airplane mode and CellBroadcastAlertService - This service manages enabling and disabling ranges of message identifiers that the radio should listen for. It operates independently of the other services and runs at boot time and after exiting airplane mode.
  • CertInstaller - The main class for installing certificates to the system keystore. It reacts to the INSTALL_ACTION intent
  • Contacts - Contacts application
  • DeskClock - DeskClock application
  • Email - Email application
  • Exchange - Exchange application
  • Gallery - Gallery application
  • Gallery2 - Gallery 3D application
  • GoogleLoginService -
  • GoogleServiceFramework -
  • HTMLViewer - Wraps a WebView widget within an Activity. When launched, it uses the URI from the intent as the URL to load into the WebView.
  • KeyChain - Security key chain application
  • Launcher2 - Android main launcher
  • LegacyCamera -
  • Mms - Mms application
  • Music - Music player
  • MusicFX - MusicMX Player
  • Nfc - NFC related application
  • OneTimeInitializer -
  • PackageInstaller - Service available internally in Android. This activity is launched when a new application is installed via side loading
  • Phone - Phone application
  • Phonesky -
  • Protips - Widget appears on your home screen to provide helpful tips.
  • Provision - application that sets up provisioning.
  • QuickSearchBox - Quick search box application
  • Settings - Settings application
  • SetupWizard -
  • SmartCardService -
  • SoundRecorder - SoundRecorder application
  • SpareParts - parts updater such as battery,3G, etc
  • SpeechRecorder - SpeechRecorder application
  • Stk - SIM Toolkit application
  • Tag - An Activity which handles a broadcast of a new tag that the device just discovered.
  • VideoEditor - Video editor application
  • VoiceDialer - Voice dialer application
  • experimental
Experimental apps that are not part of the AOSP such as RPC, Bugreport, Security tool, etc
  • BugReportSender - from README.txt "A utility (currently hosted on Bazaar) to share bugreports from the /sdcard to any recipient (usually via Gmail)"
  • Bummer -
  • CameraPreviewTest - from README.txt "A small test app to exercise the camera in various modes in much the same way that GTalk video chat does."
  • DreamTheater - Sample application on using DreamTheater
  • ExampleImsFramework - from README.txt "Demonstrates how to implement an IMS framework on top of Android."
  • LoaderApp -
  • NotificationLog -
  • NotificationShowcase -
  • procstatlog - This program is as dumb as possible -- it reads a whole bunch of data from /proc and reports when it changes.
  • RpcPerformance - from README.txt "A small test utility to run certain low-level microbenchmarks (particularly related to IPC and RPC performance, such as no-op Binder calls and certain file I/O operations).
  • StrictModeTest - from README.txt "A small test utility to intentionally violate StrictMode in different ways, and let you try out the various penalties."
  • providers
Contains content providers for the different data available in the framework
  • ApplicationsProvider - Fetches the list of applications installed on the phone to provide search suggestions.
  • CalendarProvider - Calendar provider
  • ContactsProvider - Contacts provider
  • DownloadProvider - Download provider
  • DrmProvider - DRM provider
  • MediaProvider - Media provider
  • PartnerBookmarksProvider -
  • TelephonyProvider - Telephones provider
  • UserDictionaryProvider - Dictionary provider
  • inputmethods
Contains implementation (part of the framework) specifically for writing input method components.
  • LatinIME-
  • OpenWnn- from README.txt "OpenWnn is a IME(Input Method Editor) package which works on Android's IMF(Input Method Framework). This version contains Japanese IME."
  • PinyinIME- another implementation of the input method components
  • screensavers
  • Basic -
  • PhotoTable -
  • WebView -
  • wallpapers
Standard AOSP wallpaper
  • Basic
  • Galaxy4
  • HoloSpiral
  • LivePicker
  • MagicSmoke
  • MusicVisualization
  • NoiseField
  • PhaseBeam

19. pdk

  • apps
  • build

20. prebuilts

  • clang
  • darwin-x86
  • linux-x86
  • devtools
  • adt
  • notices
  • repository
  • tools
  • eclipse
  • deltapack
  • platform
  • gcc
  • darwin-x86
  • linux-x86
  • misc
  • android-arm
Contains prebuilt gdbserver and QEMU kernel
  • android-mips
  • android-x86
x86 based QEMU kernel for emulator
  • common
Common Java open source project that are used during build process
  • darwin-x86
  • linux-x86
Contains GCC toolchains for compiling Android along with several open source projects
  • linux-x86_64
  • windows
32bit Windows specific files and libraries
  • ndk
  • qemu-kernel
  • arm
  • mips
  • x86
  • sdk
  • current
  • renderscript
  • tools
  • tools
  • common
  • darwin-x86
  • darwin-x86_64
  • gcc-sdk
  • linux-x86
  • linux-x86_64
  • windows
  • windows-x86_64


21. sdk

This directory contains lots of apps that are not part of operating system. There are quite useful apps that developers can leverage on and can be enhanced further as part of the operating system.
  • adtproductbuild -
  • annotations - Annotation used in SDK
  • apkbuilder - from readme.txt "The apkbuilder command line tool is deprecated, and is not maintained anymore. It is lacking recent build improvements such as support for Library Projects. Its source code has been moved into sdklib. It is recommended to directly use the com.android.sdklib.build.ApkBuilder class instead."
  • apps -
  • attribute_stats - from README.txt "This program gathers statistics about attribute usage in layout files."
  • avdlauncher - from avdlauncher.c "The AVD Manager is for Windows only. This simple .exe will sit at the root of the Windows SDK and currently simply executes tools\android.bat.Eventually it should simply replace the batch file."
  • bash_completion - from README "This directory contains scripts that are intended to be used with Bourne Again SHell (bash)'s programmable completion."
  • build - contains few scripts for SDK that are used during build process
  • docs - contains short documentation for building SDK, using cupcake SDK, etc
  • dumpeventlog - utility to connect to a device using ddmlib and dumps its event log as long as the device is connected.
  • eclipse - contains all the necessary files for Android Eclipse plugins
  • emulator - contains Android emulator files - gps, sensors, etc
  • eventanalyzer - connects to a device using ddmlib and analyze its event log.
  • files - contains misc files, such as configuration for ANT build.xml, Windows batch file to find Java
  • find_java -
  • find_lock -
  • hierarchyviewer - hierarchy viewer as part of the Eclipse plugin
  • icons - few Android related icons
  • monitor -
  • sdklauncher - Android SDK launcher
  • settings -
  • templates -
  • testapps - from README.txt "This repository contains test applications used by the SDK automated tests."

19. system

  • bluetooth
This directory contains source for bluetooth
  • bluedroid -
  • bluez-clean-headers - Contains header files that was generated automatically. Contains information necessary for userspace to call into the kernel available to Android. It contains only constants, structures, and macros generated
  • brcm_patchram_plus - Downloads a patchram files in the HCD format to Broadcom Bluetooth based silicon and combo chips and other utility functions.
  • brfpatch - Generates bluetooth firmware
  • data - Bluetooth configuration files
  • tools - Contains few test code to test different Bluetooth communication.
  • core
This directory contains number of utilities that are used by Android for maintenance and also during startups such as - adb, mkbootimg, run-as, fastboot, etc.
  • adb - Android Debug Bridge utility
  • charger - Battery charger
  • cpio - Archiving tool. Refer to buffer-format.txt from the linux kernel docs for explanation of the file format
  • debuggerd - Crash dump on logcat generator. Good explanation about this tool (http://kobablog.wordpress.com/2011/05/12/debuggerd-of-android/)
  • fastboot - Fastboot utility
  • fs_mgr -
  • gpttool - Partition query tool
  • include - Folder and subfolders contains supporting header files. Most of the header files looks like can be found in NDK
  • init -
  • libcorkscrew -
  • libctest - C source to run test suites
  • libcutils - Contains utilities source code that are used internally by Android
  • libdiskconfig - Contains disk utilities related to partition, MBR
  • libion -
  • liblinenoise - A small self-contained alternative to readline and libedit. Originally from https://github.com/antirez/linenoise
  • liblog - Android and Kernel log library that are used internally by Android
  • libmincrypt - SHA and RSA code implementation
  • libnetutils - DHCP implementation code
  • libnl_2 - Netlink Protocol Format (RFC3549), this library is a clean room re-implementation of libnl 2.0
  • libpixelflinger - Library for PixelFinger.
  • libsparse -
  • libsuspend -
  • libsync -
  • libsysutils - Library for system utilities.
  • libusbhost - Contains USB related functions
  • libzipfile - Contains zip related functions
  • logcat - Contains logcat related functions
  • logwrapper - Log application that forks and executes application and redirecting stdout and stderr to the Android logging system
  • mkbootimg - Application to make boot image file
  • netcfg - Network configuration application to enable or disable DHCP, etc
  • rootdir - Contains .rc files for init
  • run-as - Contains run-as application
  • sdcard - Contains sdcard application, it is a program that uses FUSE to emulate FAT-on-sdcard style
  • sh - Contains sh application
  • toolbox - Contains small useful application that are part of the Android operating system
  • extras
Contains extra utility and application such as - timeinfo, fat utility, ext4 utility, etc
  • atrace -
  • bugmailer - utility to send bug report
  • cpustats -
  • ext4_utils - folder contains ext4 utilities
  • fatblock - utility to move file or image to a block device
  • latencytop - latency top utility
  • libc_test -
  • libpagemap - page map libraries
  • librank - process libaries viewing utility
  • libublock - device block utility
  • micro_bench - micro benchmark utility to measure time for certain operation
  • procmem - utility to show process memory
  • procrank - process rank utility
  • sane_schedstat - schedule statistics utility
  • showmap - show memory map for a particular process
  • showslab - Kernel slab allocator statistics utility
  • sound - Utility to play.wav file
  • su - su utility
  • tests - contains test cases
  • binder - contains test cases
  • bionic - This directory contains a set of tests for Android's Bionic C library.
  • cpueater - CPU eating test
  • directiotest - direct IO test
  • ext4 -
  • framebuffer - framebuffer test
  • fstest - file system test
  • icachetest - cache test case
  • include - contain header file for test utilities
  • iptables - qtaguid socket test
  • lib - contain implementation code for test utilities
  • memtest - memory test
  • pftest - memory pagefile test
  • schedtest - scheduling test case
  • sdcard - SD card test case
  • timetest - time test case
  • wifi - WiFi load, scan, associate, unload stress test
  • timeinfo - time info
  • media
Audio related samples and utilties
  • audio_effects - header files for audio effects such as bass, equalizer, etc
  • audio_utils - echo reference audio module
  • camera -
  • netd
Networking daemon and framework such as PPP, DNS Listener.
  • security
  • keystore -
  • keystore-engine -
  • softkeymaster -
  • vold
Volume Daemon is a program that can automatically mount your CD-Roms, USB-Memory Sticks, iPods and other removable Media.

22. tools

  • docs
  • external
  • hooks
  • subcmds
  • tests

23. vendors

This directory contains vendors specific libraries. Most of the proprietary binary libraries from non-open source projects are stored here when building AOSP
  • qcom