Camerax
Provide technical guidance for Android camera development with CameraX.
Install
npx skills add android/skills --skill camerax -g -a claude-code -y- Repository
- android/skills10.2k
- Category
- Data and ML
- Updated
- 6d ago
- License
- Complete terms in LICENSE.txt
- Context cost
- Lightabout 1,448 tokens
- Runs scripts
- No, instructions only
What it does
Provide technical guidance for Android camera development with CameraX. Use when implementing camera features, handling asynchronous recording lifecycles, wiring low-level hardware interop using CameraX, or integrating ML Kit or Media3 effects.
This skill provides procedural guidance and standard patterns for building
camera applications on Android, with a focus on CameraX, including its
Camera2Interop utilities, and Media3 integrations.
Core workflows
Handling immutable API patterns
Various Android camera and media APIs, especially CameraX VideoCapture, use a
fluent, immutable builder-like pattern where methods return a new instance.
Failing to reassign these results in settings, such as audio, being ignored.
Pattern: Reassignment is required
// WRONG
run {
val pending = recorder.prepareRecording(context, opts)
pending.withAudioEnabled() // This returns a new instance which is ignored
val active = pending.start(exec, listener)
}
// CORRECT
run {
val pending = recorder.prepareRecording(context, opts)
.withAudioEnabled() // Chaining works
val active = pending.start(exec, listener)
}
// ALSO CORRECT
run {
var pending = recorder.prepareRecording(context, opts)
pending = pending.withAudioEnabled() // Reassignment
val active = pending.start(exec, listener)
}
<br />
See immutability for a list of affected classes.
Migrating to CameraX
When migrating legacy camera codebases to the CameraX Jetpack library:
- Camera1 to CameraX : For migrating legacy
android.hardware.Cameraimplementations, surface handling, and manual lifecycles, see the Camera1 migration guide. - Camera2 to CameraX : For migrating more recent but verbose
android.hardware.camera2implementations, session state callbacks, and interop patterns, see the Camera2 migration guide.
Comprehensive feature blueprinting
For multi-step features that involve multiple files and hardware-level wiring, follow the Structural Blueprinting approach to avoid system timeouts. Such complex features include:
