Summary of both official Android documentation (https://source.android.com/ & https://developer.android.com/) for easily navigate and find resources.
- Contents
- Android Open Source Project
- Android for Developers
Accessible at https://source.android.com/
- Set up for Android Development
- Android Software Management
- Codenames, Tags, and Build Numbers
- Brand Guidelines
- Licenses
- Frequently asked questions
- Android 13 release notes
- Android 12 release notes
- Android 11 release notes
- Android 10 release notes
- Android 9 release notes
- Site updates
- Android developer codelab
- Android platform glossary
- Requirements
- Supporting Older Versions
- Establishing a build environment
- Soong Build System
- Building Android
- Android Debug Bridge (ADB)
- Flashing devices
- Android flash tool
- Building Kernels
- Implementing Java SDK Library
- Source Sync Issues
- Android Rust Introduction
- Android on Bazel
- Source Control Workflow
- Repo Command Reference
- Adding a New Device
- Understanding 64-bit Builds
- Using Reference Boards
- Generic system images
- Cuttlefish
- Cuttlefish Virtual Android Devices
- Use Cuttlefish to Launch an AOSP Build
- Cuttlefish: GPU Graphics Acceleration
- Cuttlefish: Restarting and Resetting
- Cuttlefish: Multi-tenancy
- Testing Connectivity of Multiple Devices
- Cuttlefish: WebRTC Streaming
- Cuttlefish Control Panel
- Cuttlefish: Running Stable CTS
- Using Android Emulator Virtual Devices
- Compiling with Jack for Android 6.0–8.1
- AndroidX and Jetpack
- Contributing
- Project Roles
- Code search
- Life of a patch
- Submitting patches
- Git source editor
- Viewing patches
- Android Continuous Integration
- Life of a bug
- Reporting bugs
- Coding with respect
- AOSP Java code style for contributors
- Authentication
- ...
- Encryption
- File-Based Encryption
- Full-Disk Encryption
- Metadata Encryption
- Enabling Adiantum
- Hardware-Wrapped Keys
- Security-Enhanced Linux in Android
- SELinux concepts
- Implementing SELinux
- Customizing SELinux
- Building SELinux Policy
- Policy Compatibility
- Validating SELinux
- Writing SELinux Policy
- Writing SELinux Policy
- ...
- Trusty TEE
- ...
- Verified Boot
- Device State
- Verifying Boot
- Boot Flow
- Implementing dm-verity
- Verifying system_other Partition
- Android Verified Boot
- Security Testing
- ...
- Hardware Abstraction Layer (HAL) overview
- HIDL Framework Backwards Compatibility Verification
- Dynamically Available HALs
- Archive
- Legacy HALs
- Kernel overview
- Stable Kernel Releases & Updates
- Android Common Kernels
- The Generic Kernel Image (GKI) project
- GKI development
- GKI Versioning
- GKI Release Builds
- Generic Kernel Image (GKI) Release Process
- Maintain a stable Kernel Module Interface (KMI)
- Android Kernel ABI Monitoring
- Modules
- Boot Time Optimization
- Debugging
- Develop Kernel Code for GKI
- Android Kernel File System Support
- Extending the Kernel with eBPF
- Using DebugFS in Android 12
- FIPS 140-3 certifiable GKI crypto module
- Android kernel frequently asked questions
- GKI 1.0
- Previous Kernels (<=4.19)
- Previous kernels (<=4.19)
- Linux-stable Merges
- Kernel Hardening
- Android Live-LocK Daemon (llkd)
- Kernel Configuration
- Interface Requirements
- Incremental File System
- Kernel Networking Unit Tests
- Modular Kernels
- Ion ABI Changes
- Modularizing ION Heaps for GKI
- Transitioning from ION to DMA-BUF Heaps
- Core Kernel Requirements
- EROFS
- HIDL
- Interfaces & Packages
- Interface Hashing
- Services & Data Transfer
- Fast Message Queue (FMQ)
- Using Binder IPC
- HIDL Memory Block
- Network Stack Configuration Tools
- Threading Models
- Converting HAL Modules
- Data Types
- Safe Union
- Versioning
- Code Style Guide
- Configuration overview
- Implementing System Properties as APIs
- Add System Properties
- Implementing Config File Schema API
- Archive
- Device tree overlays
- Implementing DTOs
- DTO Syntax
- Compiling & Verifying
- Using Multiple DTs
- DTB/DTBO Partitions
- Optimizing DTOs
- Vendor Native Development Kit (VNDK) overview
- Enabling the VNDK
- VNDK Build System Support
- VNDK Extensions
- VNDK Snapshot Design
- Generating VNDK Snapshots
- Generating Vendor Snapshots
- Linker Namespace
- Directories, Rules, and sepolicy
- Renderscript
- ABI Stability
- Prebuilt ABI Usages Checker
- Vendor Interface Object
- Manifests
- Compatibility Matrixes
- FCM Lifecycle
- Device Manifest Development
- Matching Rules
- Additional Resources
- AIDL Overview
- AIDL Language
- AIDL Backends
- Stable AIDL
- AIDL for HALs
- Running AIDL Services Dynamically
- Annotations in AIDL
- Fast Message Queue with AIDL
- AIDL Fuzzing
- Bootloader overview
- Canonical Boot Reason
- Boot Image Header
- Implementing Bootconfig in Android 12
- Recovery Images
- DTB Images
- Supporting OTA Updates
- Locking/Unlocking the Bootloader
- Version Information in AVB properties
- Moving Fastboot to Userspace
- Overview
- Partition Layout
- Vendor Boot Partitions
- Vendor/ODM DLKM Partition
- Android Shared System Image
- Ramdisk Partitions
- Generic Boot Partition
- ODM Partitions
- Product Partitions
- Implement a GKI module partition
- Enforcing Product Partition Interfaces
- Trusty OS (TOS) Partitions
- Audio
- ...
- Camera
- ...
- Connectivity
- Bluetooth and NFC
- Bluetooth
- Bluetooth Services
- Bluetooth Low Energy
- Hearing Aid Audio Support Using Bluetooth LE
- Bluetooth Low Energy Advertising
- Verifying and Debugging
- HCI Requirements
- Host Card Emulation of FeliCa
- NFC Off-Host Payment Synchronization
- Presence Calibration Requirements
- Secure NFC
- Quick Access Wallet
- Calling and Messaging
- 5G Non-Standalone (NSA)
- Implementing Block Phone Numbers
- Call Notifications
- Implementing Emergency Affordance
- Android Emergency Number Database
- Emergency Numbers and Emergency Calling
- Implementing IMS
- IMS Service Entitlement
- IMS Single Registration
- Phone Account Suggestion
- Implementing Real-Time Text
- Supporting Third-Party Calling Apps
- Visual Voicemail
- Carrier
- Time
- Ultra-wideband
- Wi-Fi
- Overview
- Wi-Fi HAL
- Wi-Fi Infrastructure Features
- Testing, Debugging, and Tuning Wi-Fi
- Carrier Wi-Fi
- MAC Randomization Behavior
- Implementing MAC Randomization
- Passpoint (Hotspot 2.0)
- Wi-Fi STA/AP concurrency
- Wi-Fi STA/STA Concurrency
- Trust on First Use (TOFU)
- Wi-Fi Aware
- Wi-Fi/Cellular Coex Channel Avoidance
- Wi-Fi Direct
- Wi-Fi Easy Connect
- Wi-Fi Hotspot (Soft AP)
- Wi-Fi AP/AP Concurrency
- Wi-Fi Low-Latency Mode
- Android Wi-Fi Network Selection
- Wi-Fi Preferred Network Offload Scanning
- Wi-Fi RTT (IEEE 802.11mc)
- WPA3 and Wi-Fi Enhanced Open
- ACTS Tests
- Companion Device Profiles
- Connectivity Diagnostics API
- Connectivity User Interface
- Network Selection
- Signal Strength Reporting
- Android data use
- ...
- Android display
- ...
- Graphics
- ...
- Input
- Key layout files
- Key character map files
- Input device configuration files
- Migration guide
- Keyboard devices
- Touch devices
- Getevent
- Validate keymaps tool
- Neural Networks API Drivers
- Burst Executions and Fast Message Queues
- Compilation Caching
- Control Flow
- Device Discovery and Assignment
- Memory Pool
- NNAPI Driver Implementation Best Practices
- Quality of Service
- Vendor Extensions
- Android Peripherals and Accessories
- Audio Accessories
- Custom Accessories
- Sensors
- Sensor stack
- Sensor types
- Interaction
- Head Tracker HID Protocol
- Power
- Modes
- Sensors HAL
- Media
- Media modules
- MediaProvider module
- Customizing media components
- Low latency decoding in MediaCode
- Media framework hardening
- SoC vendor dependencies for media resource manager
- OEM dependencies for media resource manager
- DRM
- Compatible media transcoding
- Exporting Video Encoding Statistics
- Android Performance Optimization
- APK Caching
- Cached Apps Freezer
- Optimizing Boot Times
- Health
- Cgroup Abstraction Layer
- Low Memory Killer Daemon
- Using Profile-Guided Optimization (PGO)
- Task Snapshots
- Compatibility WAL (Write-Ahead Logging) for Apps
- App Hibernation
- Performance Boost At Game Loading Time
- MM Events - Historical Memory Statistics
- Android Permissions
- Ambient Capabilities
- Background Location Access Reminder
- Contacts Provider and Affinities Information
- Discretionary Access Control (DAC)
- Immutable Device IDs
- Namespaces for Native Libraries
- Privileged Permission Allowlisting
- Preinstalled System Packages
- Privacy Indicator
- Restrict Opportunistic Locations
- Restricted Screen Reading
- Android Roles
- Runtime Permissions
- Tristate Location Permissions
- Implementing USB HAL
- Companion App Streaming
- Power Profiles for Android
- Power Management
- Thermal Mitigation
- Power Stats HAL
- App Power Management
- Platform Power Management
- Performance Management
- App background behavior trackers
- Supporting Batteryless Devices
- Measuring Component Power
- Measuring Device Power
- Measuring Power Values
- Routine Battery Saver
- TV Standby
- SystemSuspend service
- Android Settings Menu
- Android Settings Design Guidelines
- Patterns and Components
- nformation Architecture
- Personalized Settings
- Universal Search
- Storage
- Traditional Storage
- Adoptable Storage
- Scoped Storage
- FUSE Passthrough
- Device Configuration
- Configuration Examples
- Faster Storage Statistics
- SDCardFS Deprecation
- Test Development Workflow
- Simple Build Configuration
- Complex Test Configuration
- Instrumentation Tests
- GTest
- JAR (Java) Host Tests
- Test Mapping
- Running Tests (Atest)
- Android Test Station
- Getting Started
- Testing with TF
- Developing TF
- Architecture
- Debugging Native Android Platform Code
- Reading bug reports
- Understanding Logging
- Implementing Scoped Vendor Logging
- Diagnosing Native Crashes
- Evaluating Performance
- Feature Implementation
- Using Debuggers
- Debugging Native Memory Use
- Network Connectivity Tests
- Rescue Party
- Implementing storaged
- Using Strace
- OTA Updates
- APEX
- Building OTA Packages
- Signing Builds for Release
- Reducing OTA Size
- A/B System Updates
- Non-A/B System Updates
- Dynamic Partitions
- Virtual A/B
- Time Zone Rules
- User Data Checkpoint (UDC)
- Dynamic System Updates
- Resume-on-Reboot
- Android Upgrade Party for OS updates
- Modular System Components
- Modular System Components
- AdServices
- adbd
- AppSearch
- Android Runtime (ART)
- Bluetooth
- CellBroadcast
- Conscrypt
- Device Scheduling
- DNS Resolver
- DocumentsUI
- ExtServices
- IPsec/IKEv2 Library
- Media
- MediaProvider
- ModuleMetadata
- Network Stack
- NNAPI Runtime
- OnDevicePersonalization
- PermissionController
- SDK Extensions
- Statsd
- Tethering
- Time Zone Data
- UWB
- Wi-Fi
- Overview
- ...
- Android HAL Reference (legacy)
- Data Structures
- Data Structure Index
- Data Fields
- File List
- Globals
- Deprecated List
Accessible at <https://developer.android.com/
- Introduction
- ...
- Build your project
- ...
- ndk-build
- ...
- Android.mk
- ...
- Capture a system trace on the command line
- Capture a system trace on a device
- The Android Profiler
- Environment variables
- Inspect CPU activity with CPU Profiler
- Analyze with Profile GPU Rendering
- Inspect GPU rendering speed and overdraw
- Android Debug Bridge (adb)