Skip to content

Vignesh-1221/coptimizer

Repository files navigation

Coptimizer - Agentic Context-Aware Android Optimizer

A sophisticated Android application that autonomously monitors device context and provides intelligent, ML-powered optimization recommendations. Built with modern Android development practices including Room database, WorkManager, autonomous agent system, and privacy-preserving on-device machine learning.

🌟 Key Features

🤖 Autonomous Agent System

  • Self-Planning Agent: Automatically plans and executes optimization tasks every 30 minutes
  • Human-in-the-Loop: Requests user approval only for sensitive actions
  • Complete Audit Trail: Full visibility into agent goals, tasks, and observations
  • Policy-Aware: Respects battery level, network state, and quiet hours
  • Tool-Based Architecture: Modular tools for insights, cleanup, and optimization

🧠 Privacy-Preserving Machine Learning

  • On-Device ML: Custom online learning models that adapt to your behavior
  • Continuous Learning: Models update every optimization cycle (15-30 minutes)
  • Personalized Optimization: Learns your brightness, battery, Wi-Fi, and performance preferences
  • Predictive Analytics: Predicts battery drain, optimal brightness, and performance issues
  • 100% Privacy: All data and ML processing happens on-device (no cloud dependency)

🔍 Intelligent Automation Detection

  • Conflict Detection: Identifies third-party automation apps that might conflict
  • Multi-Strategy Detection: Static analysis, dynamic monitoring, and known app detection
  • Impact Assessment: Estimates battery, data, and CPU impact of detected automations
  • Evidence Collection: Shows proof for each detection with confidence scores
  • User Controls: Whitelist, mark suspicious, and manage automation conflicts

📊 Comprehensive Analytics Dashboard

  • Real-Time Charts: Interactive visualizations using MPAndroidChart
  • Multi-Dimensional Monitoring: Battery, brightness, Wi-Fi, performance, and data usage
  • Historical Trends: Last 24 hours with predictive insights
  • Statistical Analysis: Averages, trends, and pattern recognition
  • Export Capability: Export data to CSV/JSON for analysis

⚙️ Optimization Features

  • Auto-Brightness Control: ML-powered brightness optimization
  • Wi-Fi Saver: Intelligent Wi-Fi management based on signal strength
  • Battery Optimizer: Proactive battery management with predictions
  • Data Saver: Personalized data usage optimization
  • Performance Mode: Thermal-aware performance optimization

📱 User-Defined Rules

  • Custom Automation Rules: Create time-based, battery-based, or condition-based rules
  • Rule Engine: Flexible trigger-action system
  • Enable/Disable: Full control over rule execution
  • Multiple Trigger Types: Time windows, battery thresholds, Wi-Fi state, screen off, charging state

🎯 Background Data Collection

  • Automatic Monitoring: Collects device context every 15 minutes
  • Comprehensive Data: Battery, brightness, Wi-Fi, CPU, memory, network, thermal state
  • Persistent Storage: Room database with 7-day retention (configurable)
  • Duplicate Prevention: One record per minute with unique constraints
  • Smart Cleanup: Automatically removes old data

🏗️ Architecture

Clean Architecture Components

  • UI Layer: Activities, Fragments, Adapters with ViewBinding and Material Design
  • ViewModels: MVVM pattern with LiveData/Flow for reactive UI updates
  • Repository: Data access orchestration layer
  • Database: Room database with 15 entities, 7 DAOs, reactive queries
  • Workers: ContextWorker, OptimizationWorker, AgentOrchestratorWorker
  • Agent System: Planner, Policy Engine, Tool Registry, Approval System
  • ML Engine: Online learning models, inference engine, predictive analytics
  • Analytics: Real-time system data collection with comprehensive metrics

Data Flow

Device Sensors → Data Collectors → Room Database → Repository → ViewModels → UI
                                    ↓
                            Agent System (Every 30 min)
                                    ↓
                        ML Models (Learn & Predict)
                                    ↓
                        Decision Engine → Optimization Executor

Agent System Flow

AgentOrchestratorWorker
  ├─> RuleBasedPlanner: Plans next tasks
  ├─> PolicyEngine: Checks conditions (battery, network, time)
  ├─> ToolRegistry: Executes tasks
  │   ├─> InsightTool: Analytical tasks
  │   ├─> CleanupTool: Data retention
  │   └─> OptimizerTool: Executes optimizations
  └─> AgentApprovalReceiver: Requests approval for sensitive actions

Key Technologies

  • Kotlin: Modern Android development language
  • Room: Local database with reactive queries (15 tables, version 10)
  • WorkManager: Reliable background task scheduling
  • Coroutines & Flow: Asynchronous programming and reactive streams
  • MPAndroidChart: Professional charting library
  • Material Design: Modern UI components
  • Custom ML: Online learning models (Linear/Logistic Regression)
  • Gson: JSON serialization for complex types

📱 App Screens

Main Dashboard

  • Automation List: Scrollable list of available optimizations
  • Real-Time Status: Active/inactive indicators for each automation
  • Navigation Drawer: Access to all app features
  • Quick Stats: Overview of device health and optimization status

Analytics Dashboard

  • Interactive Charts: Battery, brightness, Wi-Fi, performance, data usage trends
  • Historical Data: Last 24 hours with zoom and pan capabilities
  • Predictive Insights: ML-predicted future behavior
  • Statistical Cards: Averages, trends, and pattern summaries

Agent History

  • Goals & Tasks: View agent's planning and execution
  • Observations: See results of agent actions
  • Approval Queue: Pending actions requiring your approval
  • Live Updates: Real-time Flow-based updates

Automation Detection

  • Detected Automations: List of third-party automation apps
  • Evidence Viewer: See proof for each detection
  • Event Timeline: Track automation activity over time
  • User Controls: Whitelist, mark suspicious, add notes

Rules Management

  • Custom Rules: Create and manage automation rules
  • Rule Editor: Define triggers and actions
  • Enable/Disable: Control rule execution
  • Rule History: Track rule execution logs

Optimization History

  • Action Logs: Complete history of all optimizations
  • Success/Failure Stats: Track optimization effectiveness
  • Filter & Search: Find specific optimizations
  • Export: Download logs for analysis

🚀 Quick Start

Prerequisites

  • Android Studio Hedgehog or later
  • Minimum SDK: 26 (Android 8.0)
  • Target SDK: 34 (Android 14)
  • JDK 11 or later

Installation

  1. Clone the repository

    git clone https://github.com/yourusername/coptimizer.git
    cd coptimizer
  2. Open in Android Studio

    • File → Open → Select the coptimizer directory
  3. Sync Gradle files

    • Android Studio will automatically sync, or click "Sync Now"
  4. Build and run

    • Click Run (▶️) or press Shift+F10
    • Select a device/emulator (API 26+)

First Run

  1. Grant Permissions: The app will request necessary permissions

    • Usage Stats (for app monitoring)
    • Write Settings (for brightness control)
    • Notifications (for agent approvals)
    • Wi-Fi State (for network optimization)
  2. Wait for Learning: The ML models start with zero knowledge

    • Agent runs every 30 minutes automatically
    • Data collection starts every 15 minutes
    • Give it a few days to learn your patterns
  3. Review Agent Actions: Check Agent History to see what the agent plans

    • Approve or deny actions as needed
    • Agent learns from your feedback

Required Permissions

  • ACCESS_NETWORK_STATE: Monitor network connectivity
  • ACCESS_WIFI_STATE: Track Wi-Fi state
  • CHANGE_WIFI_STATE: Enable/disable Wi-Fi for optimization
  • WRITE_SETTINGS: Modify brightness and system settings
  • PACKAGE_USAGE_STATS: Monitor app usage patterns
  • FOREGROUND_SERVICE: Background data collection
  • RECEIVE_BOOT_COMPLETED: Restart monitoring after reboot
  • POST_NOTIFICATIONS: Agent approval notifications
  • REQUEST_IGNORE_BATTERY_OPTIMIZATIONS: Ensure reliable background work

📊 Data Collection

What We Monitor

  • Battery: Level, temperature, voltage, charging status, health
  • Brightness: Current level, auto-brightness status, screen-on time
  • Wi-Fi: Connected state, signal strength, link speed, data usage
  • Performance: CPU usage, memory usage, thermal state, app launch times
  • Data: Wi-Fi usage, mobile data usage, background/foreground split
  • Network: Type, signal strength, network switches
  • Context: Timestamp, automation type, app foreground time

Collection Frequency

  • Interval: Every 15 minutes (via ContextWorker)
  • High Frequency: Optional foreground service for detailed analysis
  • Persistence: 7 days of historical data (configurable)
  • Storage: Local Room database (SQLite)
  • Privacy: 100% on-device - no data leaves your device

ML Data Sources

  • Real-Time Data: System APIs (BatteryManager, Settings, WifiManager, etc.)
  • User Behavior: Brightness preferences, battery patterns, Wi-Fi usage
  • Historical Trends: 7-day context data for pattern recognition
  • Feedback Loop: User satisfaction ratings improve recommendations

🎯 Current Implementation Status

✅ Fully Implemented Features

  • ML Integration: Online learning models with predictive analytics
  • User Behavior Learning: Learns brightness, battery, Wi-Fi, and performance patterns
  • Predictive Recommendations: Predicts battery drain, optimal brightness, Wi-Fi state
  • Custom Automation Rules: User-defined rules with flexible triggers
  • Export Data: CSV/JSON export functionality
  • Agent System: Autonomous planning and execution
  • Automation Detection: Multi-strategy detection with evidence collection
  • Analytics Dashboard: Comprehensive real-time charts and insights

🔮 Future Enhancements

  • TensorFlow Lite: Could add more sophisticated ML models (currently uses lightweight online learning)
  • Cloud Sync: Optional encrypted cloud backup (would require user consent)
  • Federated Learning: Privacy-preserving multi-device learning
  • Advanced Agent: Reinforcement learning for agent optimization
  • Automation Marketplace: Community-shared automation patterns

🏛️ Project Structure

app/src/main/java/com/example/coptimizer/
├── MainActivity.kt                     # Dashboard with navigation drawer
├── DetailActivity.kt                   # Analytics dashboard with charts
├── CoptimizerApplication.kt           # Application initialization
├── Automation.kt                       # Automation domain model
├── ContextData.kt                      # Context data entity
├── adapter/                            # RecyclerView adapters
│   ├── AutomationAdapter.kt
│   ├── OptimizationLogAdapter.kt
│   └── DetectedAutomationsAdapter.kt
├── agent/                              # Autonomous agent system
│   ├── AgentModels.kt                  # Agent entities
│   ├── AgentDao.kt                     # Agent data access
│   ├── RuleBasedPlanner.kt             # Task planning
│   ├── PolicyEngine.kt                 # Policy enforcement
│   ├── Tooling.kt                      # Tool interfaces
│   ├── ToolsImpl.kt                    # Tool implementations
│   ├── AgentNotifier.kt                # Approval notifications
│   └── AgentApprovalReceiver.kt         # Approval handling
├── analytics/                          # Real-time data collection
│   ├── RealTimeSystemDataCollector.kt  # System API readers
│   ├── BatteryAnalytics.kt
│   ├── BrightnessAnalytics.kt
│   ├── WifiAnalytics.kt
│   ├── PerformanceAnalytics.kt
│   └── DataAnalytics.kt
├── automationdetector/                 # Automation detection system
│   ├── AutomationDetector.kt           # Detection engine
│   ├── DetectedAutomation.kt           # Detection entity
│   ├── AutomationDetectionDao.kt
│   └── AutomationsViewModel.kt
├── charts/                             # Chart management
│   └── AnalyticsChartManager.kt
├── database/                            # Room database
│   ├── AppDatabase.kt                  # Database definition (15 entities, v10)
│   ├── AutomationDao.kt
│   ├── ContextDataDao.kt
│   └── Converters.kt                   # Type converters
├── ml/                                 # Machine learning
│   ├── OnlineModels.kt                 # Online learning models
│   ├── MlInferenceEngine.kt            # ML inference & training
│   ├── UserBehaviorLearner.kt          # Behavior learning
│   ├── UserBehaviorEntities.kt         # Behavior entities
│   ├── UserBehaviorDao.kt              # Behavior data access
│   ├── PredictiveAnalytics.kt         # Predictive analytics
│   └── ContextAwareDecisionEngine.kt   # ML-assisted decisions
├── optimization/                       # Optimization system
│   ├── OptimizationAction.kt            # Action models
│   ├── OptimizationConfig.kt           # Configuration
│   ├── DecisionEngine.kt               # Decision making
│   ├── OptimizationExecutor.kt        # Action execution
│   ├── OptimizationManager.kt          # Coordination
│   ├── OptimizationLogger.kt          # Logging
│   └── OptimizationLogDao.kt            # Log data access
├── repository/                         # Data orchestration
│   └── AutomationRepository.kt
├── rules/                              # User-defined rules
│   ├── UserRule.kt                     # Rule entity
│   └── UserRuleDao.kt                  # Rule data access
├── service/                            # Foreground services
│   └── HighFrequencySamplingService.kt
├── utils/                              # Utilities
│   ├── DeviceContextUtils.kt           # Device sensors
│   ├── NetworkQualityUtils.kt
│   ├── ThermalMonitor.kt
│   ├── PermissionChecker.kt
│   ├── DataExporter.kt                 # CSV/JSON export
│   └── LogUtils.kt
├── viewmodel/                          # MVVM ViewModels
│   ├── MainViewModel.kt
│   ├── AnalyticsViewModel.kt
│   └── DetailViewModel.kt
└── worker/                             # Background workers
    ├── ContextWorker.kt                # Data collection (15 min)
    ├── OptimizationWorker.kt           # Optimization execution
    └── AgentOrchestratorWorker.kt      # Agent loop (30 min)

🧪 Testing

Unit Tests

  • ViewModel logic testing
  • Repository operations
  • Database operations

Integration Tests

  • End-to-end data flow
  • UI interactions
  • Background worker functionality

📈 Performance & Battery Impact

Optimization Features

  • Lazy Loading: Data loaded on-demand
  • Efficient Queries: Room database with indexes for fast queries
  • Background Processing: Non-blocking UI operations with coroutines
  • Memory Management: Automatic cleanup of old data
  • Duplicate Prevention: Unique constraints prevent redundant data
  • Flow-Based UI: Reactive updates only when data changes

Battery Impact

  • Minimal: 15-minute intervals for data collection
  • Smart Scheduling: WorkManager respects battery optimization
  • Efficient Storage: Room database compression
  • Policy-Aware: Agent respects battery level and charging state
  • Adaptive: High-frequency sampling only when dashboards are open

Estimated Impact

  • Background Collection: ~0.5% battery per day
  • Agent System: ~0.3% battery per day
  • ML Processing: Negligible (lightweight online learning)
  • Total: <1% battery impact for 15-30% battery savings

🔒 Privacy & Security

Privacy-First Design

  • 100% On-Device Processing: All ML and data processing happens locally
  • No Cloud Dependency: No data sent to external servers
  • Local Storage: Data stored in app's private directory
  • User Control: Export and delete data anytime
  • No Tracking: No behavioral analytics or tracking

Security Features

  • Type-Safe Queries: Room prevents SQL injection
  • Permission Gating: Proper permission checks before actions
  • Policy Enforcement: Agent respects user-defined policies
  • Audit Trail: Complete logging of all optimizations

🌟 Unique Features

What Makes Coptimizer Different

  1. Autonomous Agent System: First optimization app with self-planning agent
  2. Privacy-Preserving ML: On-device learning without cloud dependency
  3. Intelligent Conflict Detection: Identifies and manages conflicting automations
  4. Predictive Optimization: Acts before problems occur using ML predictions
  5. Complete Transparency: Full visibility into agent decisions and actions

Benefits Over Traditional Apps

  • Proactive vs Reactive: Acts automatically vs requiring user initiation
  • Personalized: Learns your behavior vs one-size-fits-all rules
  • Privacy-First: On-device vs cloud-dependent
  • Conflict-Aware: Detects conflicts vs blind optimization
  • Transparent: Full audit trail vs black-box decisions

Development Guidelines

  • Follow Kotlin coding standards
  • Use MVVM architecture pattern
  • Implement proper error handling
  • Add comprehensive documentation
  • Write unit tests for new features
  • Ensure privacy-preserving design

Code Style

  • Use meaningful variable names
  • Implement proper null safety
  • Follow Material Design guidelines
  • Use coroutines for async operations
  • Document complex algorithms

Built with ❤️ using modern Android development practices

Coptimizer - Empowering users with intelligent, privacy-preserving device optimization.

About

Agentic Context-Aware Android Optimizer - Autonomous agent system with privacy-preserving on-device ML for intelligent device optimization

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors