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:

  1. 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.
  2. GitHub Issuesgithub.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.json and 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/APK in Android Studio and add your signing config to app/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)

  1. Enable Developer Options on your phone: Settings → About Phone → tap Build Number 7 times
  2. Enable USB Debugging in Developer Options
  3. Connect your phone via USB and accept the debugging prompt on your phone
  4. In Android Studio, select your device from the dropdown next to the Run button
  5. Press Run ▶ or Shift + F10

On an emulator

  1. Open the AVD Manager in Android Studio: Tools → Device Manager
  2. Create a virtual device with API 26 or higher
  3. Start the emulator
  4. 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:

  • DeviceStats model calculations (RAM percentage, free memory)
  • AI heuristic thresholds (CPU, RAM, temperature, battery triggers)
  • ConsentState default 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.

Built With

Share this project:

Updates