name: android-development description: Specialized knowledge for Android system development, NDK, kernel modules, and driver development
Android System Development
Expertise Areas
- Android NDK native development
- Kernel module compilation and loading for Android
- Linux driver development for Android devices
- ADB debugging and automation
- Cross-compilation for ARM architectures
- Generic Kernel Image (GKI) development
Key Concepts
Kernel Module Support
- GKI (Generic Kernel Image) module loading mechanisms
- Vendor ramdisk kernel module storage (
/lib/modules/) - First-stage init module loading
- modprobe configuration files
Build Systems
- Android build system (Soong/Blueprint)
- Cross-compilation toolchains for ARM/ARM64
- Kernel makefiles and configurations
Driver Development
- Character and block device drivers
- Platform device integration
- Device tree overlays
- SELinux policies for drivers
Debugging
- ADB logcat analysis
- Kernel message buffer (dmesg)
- Crash analysis (tombstones)
- Hardware debugging interfaces
Common Tasks
Building Kernel Modules
- Configure cross-compilation toolchain
- Use Android kernel build system or standalone compilation
- Handle kernel version compatibility (GKI requirements)
- Package for vendor ramdisk
ADB Automation
- Install and uninstall applications
- Push/pull files
- Run shell commands on device
- Monitor logs in real-time
- Control device state (reboot, recovery, etc.)
Driver Permissions
- Understand Android security model
- Configure proper SELinux contexts
- Handle device node permissions
- Manage kernel module signing (if required)
Resources
When to Use This Skill
Use this skill when working on:
- Android kernel driver development
- Native code development with NDK
- Device-specific Android development
- ADB automation and testing
- Cross-compilation for Android devices
Development Workflow
- Understand device specifications and kernel version
- Set up proper cross-compilation environment
- Develop driver following Android kernel guidelines
- Test on emulators or real devices
- Handle SELinux permissions properly
- Package for vendor partitions if needed