# varunbala2237/gametuner architecture

> Architecture diagram of the GitHub repository varunbala2237/gametuner, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-25). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/varunbala2237/gametuner
- Repository: https://github.com/varunbala2237/gametuner

## Overview

Game Tuner is an Android device-tuning app: users select an installed game, adjust device settings, and can launch the selected game. The UI also exposes a quick-apply switch and logs. Documented tuning stages cover resolution/DPI, background-app limits, memory cleaning, and forced GPU rendering; the tree identifies separate apply modules for these operations. The sampled code shows app startup, game selection, preferences, logs, and Shizuku command execution, but not the settings implementations or their precise dispatch wiring, so those links are omitted.

Main entry points: [`app/src/main/java/com/android/app/gametuner/ui/GameTunerApp.kt`](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/GameTunerApp.kt) (Game tuner UI), [`app/src/main/java/com/android/app/gametuner/ui/components/fragments/DeviceFragment.kt`](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/fragments/DeviceFragment.kt) (Device settings UI), [`app/src/main/java/com/android/app/gametuner/global/GlobalLogManager.kt`](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/global/GlobalLogManager.kt) (Log manager), [`app/src/main/java/com/android/app/gametuner/services/MemoryCleanerService.kt`](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/services/MemoryCleanerService.kt) (Memory cleaner service)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_ui["App interface"]
  node_activity["Main activity<br/>[MainActivity.kt]"]
  node_app_ui["Game tuner UI<br/>[GameTunerApp.kt]"]
  node_device_ui["Device settings UI<br/>[DeviceFragment.kt]"]
  node_settings_switch["Quick apply switch"]
  node_logs_ui["Logs view<br/>[LogFragment.kt]"]
  node_display_ui["Resolution controls"]
  node_background_ui["Background limit controls"]
  node_cleaner_ui["Memory cleaner controls"]
  node_gpu_ui["GPU rendering controls"]
end

subgraph group_settings["Device tuning"]
  node_display_apply["Apply resolution<br/>[ApplyResolution.kt]"]
  node_background_apply["Apply background limit"]
  node_cleaner_apply["Apply memory cleaner"]
  node_gpu_apply["Apply GPU rendering"]
  node_service["Memory cleaner service"]
end

subgraph group_state["App state"]
  node_storage["Preference storage<br/>[StateStorage.kt]"]
  node_logs["Log manager"]
  node_live_state["Live settings state"]
  node_preferences[("Shared preferences")]
end

subgraph group_privileged["Privileged operations"]
  node_shizuku_helper["Shizuku command helper<br/>[ShizukuHelper.kt]"]
end

node_user(("User"))
node_shizuku{{"Shizuku service"}}
node_android{{"Android system"}}

node_user -->|"opens"| node_activity
node_activity -->|"hosts"| node_app_ui
node_activity -->|"checks access"| node_shizuku
node_app_ui -->|"lists games"| node_android
node_app_ui -->|"loads and saves"| node_storage
node_storage -->|"reads and writes"| node_preferences
node_app_ui -->|"updates selection"| node_live_state
node_app_ui -->|"records events"| node_logs
node_app_ui -->|"shows switch"| node_settings_switch
node_app_ui -->|"shows settings"| node_device_ui
node_device_ui -->|"shows controls"| node_display_ui
node_device_ui -->|"shows controls"| node_background_ui
node_device_ui -->|"shows controls"| node_cleaner_ui
node_device_ui -->|"shows controls"| node_gpu_ui
node_app_ui -->|"shows logs"| node_logs_ui
node_logs_ui -->|"reads and clears"| node_logs
node_service -->|"executes commands"| node_shizuku_helper
node_service -->|"saves cleaner state"| node_storage
node_service -->|"records events"| node_logs
node_shizuku_helper -->|"runs shell command"| node_shizuku
node_shizuku_helper -->|"records output"| node_logs

click node_activity "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/MainActivity.kt"
click node_app_ui "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/GameTunerApp.kt"
click node_device_ui "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/fragments/DeviceFragment.kt"
click node_settings_switch "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/ApplySettingsSection.kt"
click node_logs_ui "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/fragments/LogFragment.kt"
click node_display_ui "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/fragments/sections/DisplaySettingsSection.kt"
click node_background_ui "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/fragments/sections/BackgroundAppLimitSection.kt"
click node_cleaner_ui "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/fragments/sections/MemoryCleanerSection.kt"
click node_gpu_ui "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/fragments/sections/ForceRenderingSection.kt"
click node_display_apply "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/settings/ApplyResolution.kt"
click node_background_apply "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/settings/ApplyBackgroundAppLimit.kt"
click node_cleaner_apply "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/settings/ApplyMemoryCleaner.kt"
click node_gpu_apply "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/settings/ApplyForceGpuRendering.kt"
click node_service "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/services/MemoryCleanerService.kt"
click node_storage "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/StateStorage.kt"
click node_logs "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/global/GlobalLogManager.kt"
click node_live_state "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/global/GlobalDataManager.kt"
click node_shizuku_helper "https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/shizuku/ShizukuHelper.kt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_activity,node_app_ui,node_device_ui,node_settings_switch,node_logs_ui,node_display_ui,node_background_ui,node_cleaner_ui,node_gpu_ui,node_user toneBlue
class node_display_apply,node_background_apply,node_cleaner_apply,node_gpu_apply,node_service toneAmber
class node_storage,node_logs,node_live_state,node_preferences toneMint
class node_shizuku_helper toneRose
class node_shizuku,node_android toneIndigo
```

## Components

### App interface

- [Main activity](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/MainActivity.kt): `app/src/main/java/com/android/app/gametuner/MainActivity.kt`
- [Game tuner UI](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/GameTunerApp.kt): `app/src/main/java/com/android/app/gametuner/ui/GameTunerApp.kt`
- [Device settings UI](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/fragments/DeviceFragment.kt): `app/src/main/java/com/android/app/gametuner/ui/components/fragments/DeviceFragment.kt`
- [Quick apply switch](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/ApplySettingsSection.kt): `app/src/main/java/com/android/app/gametuner/ui/components/ApplySettingsSection.kt`
- [Logs view](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/fragments/LogFragment.kt): `app/src/main/java/com/android/app/gametuner/ui/components/fragments/LogFragment.kt`
- [Resolution controls](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/fragments/sections/DisplaySettingsSection.kt): `app/src/main/java/com/android/app/gametuner/ui/components/fragments/sections/DisplaySettingsSection.kt`
- [Background limit controls](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/fragments/sections/BackgroundAppLimitSection.kt): `app/src/main/java/com/android/app/gametuner/ui/components/fragments/sections/BackgroundAppLimitSection.kt`
- [Memory cleaner controls](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/fragments/sections/MemoryCleanerSection.kt): `app/src/main/java/com/android/app/gametuner/ui/components/fragments/sections/MemoryCleanerSection.kt`
- [GPU rendering controls](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/ui/components/fragments/sections/ForceRenderingSection.kt): `app/src/main/java/com/android/app/gametuner/ui/components/fragments/sections/ForceRenderingSection.kt`

### Device tuning

- [Apply resolution](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/settings/ApplyResolution.kt): `app/src/main/java/com/android/app/gametuner/settings/ApplyResolution.kt`
- [Apply background limit](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/settings/ApplyBackgroundAppLimit.kt): `app/src/main/java/com/android/app/gametuner/settings/ApplyBackgroundAppLimit.kt`
- [Apply memory cleaner](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/settings/ApplyMemoryCleaner.kt): `app/src/main/java/com/android/app/gametuner/settings/ApplyMemoryCleaner.kt`
- [Apply GPU rendering](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/settings/ApplyForceGpuRendering.kt): `app/src/main/java/com/android/app/gametuner/settings/ApplyForceGpuRendering.kt`
- [Memory cleaner service](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/services/MemoryCleanerService.kt): `app/src/main/java/com/android/app/gametuner/services/MemoryCleanerService.kt`

### App state

- [Preference storage](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/StateStorage.kt): `app/src/main/java/com/android/app/gametuner/StateStorage.kt`
- [Log manager](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/global/GlobalLogManager.kt): `app/src/main/java/com/android/app/gametuner/global/GlobalLogManager.kt`
- [Live settings state](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/global/GlobalDataManager.kt): `app/src/main/java/com/android/app/gametuner/global/GlobalDataManager.kt`
- **Shared preferences**

### Privileged operations

- [Shizuku command helper](https://github.com/varunbala2237/gametuner/blob/master/app/src/main/java/com/android/app/gametuner/shizuku/ShizukuHelper.kt): `app/src/main/java/com/android/app/gametuner/shizuku/ShizukuHelper.kt`

### Other components

- **User**
- **Shizuku service**
- **Android system**

## Connections

- User → Main activity: opens
- Main activity → Game tuner UI: hosts
- Main activity → Shizuku service: checks access
- Game tuner UI → Android system: lists games
- Game tuner UI → Preference storage: loads and saves
- Preference storage → Shared preferences: reads and writes
- Game tuner UI → Live settings state: updates selection
- Game tuner UI → Log manager: records events
- Game tuner UI → Quick apply switch: shows switch
- Game tuner UI → Device settings UI: shows settings
- Device settings UI → Resolution controls: shows controls
- Device settings UI → Background limit controls: shows controls
- Device settings UI → Memory cleaner controls: shows controls
- Device settings UI → GPU rendering controls: shows controls
- Game tuner UI → Logs view: shows logs
- Logs view → Log manager: reads and clears
- Memory cleaner service → Shizuku command helper: executes commands
- Memory cleaner service → Preference storage: saves cleaner state
- Memory cleaner service → Log manager: records events
- Shizuku command helper → Shizuku service: runs shell command
- Shizuku command helper → Log manager: records output
