A minimal pure-black screensaver for Android TV.
Most Android TV screensavers (Aerial Views, Colors, Backdrop) involve video pipelines or color mode switching. On devices like the NVIDIA Shield, waking from these screensavers triggers a SurfaceFlinger compositor reinit or HDR↔SDR handshake, causing a 1–2 second delay.
BlackDream is a dead-simple DreamService that renders a pure black FrameLayout. No video, no color switching, no overhead. Wake is near-instant.
On OLED TVs, a pure black screensaver turns pixels fully off — lower power draw than any other screensaver and ideal for minimizing wear without having to power off.
Download BlackDream.apk from Releases and sideload via ADB:
adb install BlackDream.apkadb shell settings put secure screensaver_components com.blackdream/.BlackDream
adb shell settings put secure screensaver_default_component com.blackdream/.BlackDream
adb shell settings put secure screensaver_enabled 1Set your preferred idle timeout (milliseconds):
# 5 minutes
adb shell settings put system screen_off_timeout 300000No Android Studio required. Just javac, dx, aapt, zipalign, and apksigner from the Android SDK build tools.
ANDROID_JAR=/path/to/android-23/android.jar
DX=/path/to/build-tools/dx
AAPT=/path/to/build-tools/aapt
ZIPALIGN=/path/to/build-tools/zipalign
APKSIGNER=/path/to/build-tools/apksigner
# Compile
javac -source 8 -target 8 -bootclasspath $ANDROID_JAR \
-d obj src/com/blackdream/BlackDream.java
# DEX
$DX --dex --output=bin/classes.dex obj/
# Package
$AAPT package -f -F bin/blackdream.unaligned.apk \
-M AndroidManifest.xml -I $ANDROID_JAR
cd bin && zip -j blackdream.unaligned.apk classes.dex && cd ..
# Align + sign
$ZIPALIGN -f 4 bin/blackdream.unaligned.apk bin/blackdream.aligned.apk
$APKSIGNER sign --ks your.keystore \
--out bin/BlackDream.apk bin/blackdream.aligned.apk- Android TV 5.0+ (API 21+)
- Tested on NVIDIA Shield 9.2.4 (Android 11)
MIT