A high-performance, lightweight FPS monitoring tool for Android. This application provides real-time frame rate overlays inspired by Samsung Perf Z and MSI Afterburner Style (RTSS) telemetry, offering a clean monitoring experience for mobile gaming and performance testing.
Official Website & Showcase: https://rdevz-ph.github.io/FPS-Meter-Android/
Note
Here is a high-level overview of how the application operates:
- FPS Measurement Providers:
- Choreographer (Default): Uses Android's
ChoreographerAPI to receive frame callbacks, measuring elapsed time to calculate real-time frames per second (FPS). Frame time (MS) is derived directly from this rate. - SurfaceFlinger (Game FPS via Shizuku): Connects to Android's compositor via privileged Shizuku shell commands to measure real game frame presentation buffers from active
SurfaceViewbuffer queues.
- Choreographer (Default): Uses Android's
- Automatic Graphics API Detection: Automatically detects whether the foreground game is rendering with Vulkan or OpenGL ES (tested on games such as Genshin Impact and Wuthering Waves) using system GPU telemetry (
dumpsys gpuanddumpsys gfxinfo), adapting the measurement method accordingly. - Hardware & Battery Telemetry:
- Battery Temperature & Charge Level (
BAT): Uses a dynamicBroadcastReceiverforIntent.ACTION_BATTERY_CHANGEDto monitor real-time battery temperature and remaining charge percentage (BAT xx%) for fullscreen gaming. When both are enabled, they automatically merge into a unified indicator:BAT <temp> (<level>)(e.g.BAT 38°C (85%)). - SoC, CPU & GPU Temps (
SOC,CPU,GPU): Queries Android's Thermal HAL (dumpsys thermalservice) and Linux sysfs thermal zones (cpu-*-usr,gpuss-*-usr) via Shizuku privileged shell access to monitor accurate live silicon hotspot, individual CPU core, and GPU temperatures during gaming across Qualcomm Snapdragon and MediaTek platforms.
- Battery Temperature & Charge Level (
- Customizable Overlay Styles: Switch between the default compact pill and the multi-row MSI Afterburner Style (RTSS) telemetry layout featuring real-time processor model, clock frequencies, and color-coded hardware sensors.
- Adaptive Dynamic Layout: Automatically presents a clean single-line pill when 1 to 3 metrics are enabled, and organizes into a structured two-line layout (Line 1: Performance metrics, Line 2: Temperatures) when 4 or more metrics are active.
- Material 3 Navigation & Dedicated Screens: Modern navigation featuring Overlay settings, Games manager with 1-tap game launching, and dedicated FPS session History with per-app launcher icons.
- Universal Auto-Record & Per-Game Recording: Choose between universal automated session recording for all active games or per-app configuration, aggregating average, min, and max FPS and duration with zero sample-by-sample disk overhead.
- Floating Assistive Bubble & Quick Menu: Provides an optional draggable floating on-screen bubble (
FloatingToggleButton) that expands into a quick HUD menu to start/stop game FPS recording, toggle overlay visibility, and return to the app from inside any active game. - Quick Settings Panel Tile: Exposes an Android
TileService(FpsTileService) that allows 1-tap toggling of the FPS overlay directly from the notification pull-down shade without opening the main app. - Auto On/Off Game Detection: An optional
AccessibilityService(FpsAccessibilityService) monitors foreground window state changes to automatically activate the overlay when designated target games/apps launch and stop when exited. - Interaction & Dragging: Tracks touch gestures using an
OnTouchListenerto support real-time dragging. The updated layout coordinates are saved inSharedPreferenceson gesture completion to persist the custom location. - Shizuku Integration: Provides privileged shell operations to grant overlay permissions without manual settings navigation, and to sample SurfaceFlinger compositor buffers for actual game FPS.
Note
Important Notes:
- The F-Droid build is signed with F-Droid's official keys instead of mine. If you want to switch to the F-Droid build, you must first uninstall your existing version from GitHub.
- Updates on F-Droid usually take longer to publish because of their build queue. You do not need to switch if you prefer faster updates directly from GitHub releases.
Visit the Official Website & Showcase to explore interactive features, test screenshots, and view full release changelogs. You can also navigate directly to the Releases page to download the latest APK, install via F-Droid, join the Telegram Channel (@fpsmeterandroid) for instant release APK updates, or install and receive automated updates via ShizuStore. For troubleshooting installation issues (Google Play Protect) or Android 13+ permission restrictions, check out the Troubleshooting and Setup Guide.
| Meter & Telemetry | SurfaceFlinger & Shizuku | Games & Auto-Recording | Performance History Logs |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
| Auto-Record All Games Toggle | Confirmation Notice Dialog |
|---|---|
![]() |
![]() |
| Overlay Style Setting | MSI Afterburner Style (RTSS) Telemetry Overlay |
|---|---|
![]() |
![]() |
OpenGL ES [GL] |
Vulkan [VK] |
|---|---|
![]() |
![]() |
Tip
This app theme follows system colors (Material You Dynamic Color), so UI accents and theme colors will adapt to your device's active wallpaper and system palette.
- Android 8.0+ (API 26)
- Overlay Permission (SYSTEM_ALERT_WINDOW)
- Shizuku (optional, required for SurfaceFlinger real game FPS mode)
For details on known Android system behaviors and non-root hardware limitations, see Known Issues and Limitations.
Built by Romel (@rdevz-ph)
- Portfolio: https://romel-portfolio.vercel.app/
- GitHub: https://github.com/rdevz-ph
FPS Meter Android operates completely offline. It does not collect, monitor, or transmit any personal data. You can read the full policy at Privacy Policy.
Contributions are always welcome. Check out our Contributing Guide to get started.
If you are interested in translating FPS Meter to your language, take a look at our Translation Guide and Template.
This project is licensed under the MIT License.













