Game Booster v1
A native Android app that monitors your phone's CPU, RAM, and temperature in real time and helps you get better performance while gaming Its built entirely with Kotlin and Jetpack Compose.
What It Does
- Live Monitoring : tracks CPU usage, RAM, and device temperature every second by reading directly from Android's built-in system data
- One-Tap Boost : kills background processes and clears accessible cache to free up memory instantly
- Turbo Profiles : preset and custom profiles that adjust resolution scaling and FPS caps for different gaming scenarios
- AI Suggestions : heuristic-based engine that reads your current device stats and tells you what to do to improve performance
- Cache Cleaner : scans and removes junk cache files across the device
- Bug Reporting : anonymous in-app bug reports sent directly to Firebase, no account or email needed
Author
Tanuj GitHub: @IrrelevantOnGit
Bug Tracker
Bugs can be reported in two ways:
- In-app : open the app → Settings → Report a Bug. Reports are sent anonymously to Firebase Crashlytics and show up in the Firebase Console under Non-fatals, tagged as
user_bug_report. - GitHub Issues — github.com/IrrelevantOnGit/Game-Booster-v1/issues
When reporting a bug please include your device model, Android version, and steps to reproduce the issue.
Known Issues
| # | Issue | Workaround |
|---|---|---|
| 1 | Resolution and FPS sliders are display-only on most devices without extra setup | Run the ADB command in the setup section below or install the Shizuku app |
| 2 | CPU readings show 0% briefly on first launch until two readings have been taken | Wait 2–3 seconds — the app needs two snapshots to calculate a percentage |
| 3 | Cache scan shows an estimated size, not an exact byte count | Exact cross-app cache access requires root or Shizuku |
| 4 | Floating overlay (Draw Over Apps) not available on some heavily customised Android skins | Grant the permission manually in your phone's app settings |
| 5 | TFLite model slot is empty — AI suggestions currently use the heuristic fallback engine | Drop a trained .tflite model into app/src/main/assets/ml/ to enable the full model |
Tech Stack
| Layer | Technology |
|---|---|
| Language | Kotlin 1.9 |
| UI | Jetpack Compose + Material 3 |
| Architecture | MVVM + Clean Architecture |
| Dependency Injection | Hilt |
| Async | Kotlin Coroutines + Flow |
| Local Storage | DataStore Preferences |
| Crash Reporting | Firebase Crashlytics |
| Analytics | Firebase Analytics |
| Ads | Google AdMob |
| Subscriptions | RevenueCat |
| Elevated Permissions | Shizuku |
Prerequisites
Before building, make sure you have the following installed:
- Android Studio Hedgehog or newer — download here
- JDK 17 — Android Studio ships one, but you can also grab it from adoptium.net
- Android SDK with API 26 (minimum) and API 34 (target) installed via the SDK Manager in Android Studio
Build Instructions
1. Clone the repo
git clone https://github.com/IrrelevantOnGit/Game-Booster-v1.git
cd GameBooster
2. Add your Firebase config file
- Go to console.firebase.google.com
- Create a project and add an Android app with package name
com.gamebooster - Download
google-services.jsonand place it at:
app/google-services.json
3. Add your API keys
Open app/build.gradle and replace the placeholder values:
// RevenueCat
buildConfigField "String", "REVENUECAT_KEY", '"your_revenuecat_key_here"'
// AdMob App ID
manifestPlaceholders = [admobAppId: "ca-app-pub-XXXXXXXXXXXXXXXX~XXXXXXXXXX"]
Also replace the banner ad unit ID in HomeScreen.kt:
AdBannerView(adUnitId = "ca-app-pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX")
4. Add fonts (or skip with system fonts)
The app uses Orbitron and Rajdhani from Google Fonts. Download both from fonts.google.com and place the .ttf files in:
app/src/main/res/font/
Required files:
orbitron_regular.ttf
orbitron_bold.ttf
orbitron_extrabold.ttf
rajdhani_regular.ttf
rajdhani_medium.ttf
rajdhani_semibold.ttf
rajdhani_bold.ttf
To skip fonts entirely, open ui/theme/Typography.kt and change every fontFamily = Orbitron and fontFamily = Rajdhani to fontFamily = FontFamily.Default. The app builds and runs fine with system fonts.
5. Open in Android Studio and sync
File → Open → select the GameBooster folder → OK
File → Sync Project with Gradle Files
Wait for the sync to finish. The first sync downloads around 500MB of dependencies.
6. Build the APK
# Debug build
./gradlew assembleDebug
# Release build (requires a signing config — see note below)
./gradlew assembleRelease
Note on release builds: You need a keystore file to sign a release APK. Create one via
Build → Generate Signed Bundle/APKin Android Studio and add your signing config toapp/build.gradle. Keep your keystore file safe — you can never change it once you publish to the Play Store.
Run Instructions
On a physical device (recommended)
- Enable Developer Options on your phone: Settings → About Phone → tap Build Number 7 times
- Enable USB Debugging in Developer Options
- Connect your phone via USB and accept the debugging prompt on your phone
- In Android Studio, select your device from the dropdown next to the Run button
- Press Run ▶ or
Shift + F10
On an emulator
- Open the AVD Manager in Android Studio:
Tools → Device Manager - Create a virtual device with API 26 or higher
- Start the emulator
- Select it in the dropdown and press Run
Note: CPU and temperature readings are simulated on emulators. Use a physical device for accurate monitoring data.
Unlock full Turbo features via ADB (optional)
Run this once with your phone connected to enable resolution and FPS control without root:
adb shell pm grant com.gamebooster android.permission.WRITE_SECURE_SETTINGS
This persists until the app is uninstalled.
Running Tests
Unit tests (no device needed)
./gradlew test
These cover the core domain logic:
DeviceStatsmodel calculations (RAM percentage, free memory)- AI heuristic thresholds (CPU, RAM, temperature, battery triggers)
ConsentStatedefault and full-consent states
Instrumented tests (requires device or emulator)
./gradlew connectedAndroidTest
Run a specific test class
./gradlew test --tests "com.gamebooster.GameBoosterUnitTests"
View test results
After running, open the HTML report at:
app/build/reports/tests/testDebugUnitTest/index.html
Developer Mode
The app includes a built-in developer panel that is only visible in debug builds. Access it via:
Settings → Developer Mode
From there you can:
- Force Pro or Free mode without purchasing
- Mock high CPU, RAM, temperature, and low battery to test warning states
- Simulate Shizuku being active to test the Turbo sliders
- Trigger a test crash to verify Firebase Crashlytics is working
- Reset onboarding and consent screens to test first-launch flows
This panel is completely hidden in release builds — BuildConfig.DEVELOPER_MODE is set to false at compile time.
Project Structure
GameBooster/
├── app/src/main/java/com/gamebooster/
│ ├── domain/ # Pure Kotlin business logic, no Android imports
│ │ ├── model/ # Data classes
│ │ └── usecase/ # One use case per action
│ ├── data/ # Android system access and external SDKs
│ │ ├── repository/ # Single source of truth for each data type
│ │ ├── datasource/ # CpuDataSource, ShizukuHelper, TFLiteAnalyzer
│ │ └── service/ # Foreground monitoring service
│ └── ui/ # Compose screens and ViewModels
│ ├── screens/ # One file per screen
│ ├── viewmodel/ # One ViewModel per screen
│ ├── components/ # Shared reusable Composables
│ └── theme/ # Colors, typography, dark gaming theme
└── app/src/test/ # Unit tests and QA checklist
License
This project is for personal and portfolio use.
Log in or sign up for Devpost to join the conversation.