Benchmark is a comprehensive Android performance testing application that provides advanced CPU benchmarking, detailed metrics analysis, and performance history tracking. Built with modern Android development practices, it offers users insights into their device's true performance capabilities.
🌐 Website: benchmark.dotevolve.net
📱 Download: Google Play Store
- CPU Performance Testing - Comprehensive CPU benchmarks with detailed scoring
- Cryptographic Performance - AES, SHA-1, MD5, and RSA performance testing
- Advanced Metrics Analysis - In-depth performance metrics and system information
- Performance History - Track device performance over time with trend analysis
- Device Statistics - Complete hardware specifications and system details
- Real-time benchmark progress tracking
- Performance visualization and charting
- Historical data persistence with SQLite
- Firebase integration for analytics and crash reporting
- Google Ads integration with consent management
- Android TV/Leanback support
- Material Design 3 UI with Jetpack Compose
- Language: Java & Kotlin
- Min SDK: 23 (Android 6.0 Marshmallow)
- Target SDK: 36
- Build System: Gradle with Kotlin DSL
- UI Framework: Jetpack Compose + View Binding
- Architecture: MVVM with Repository Pattern
- Database: SQLite with custom helper
- Analytics: Firebase (Crashlytics, Performance, Analytics)
- Ads: Google Mobile Ads SDK
- Background Work: WorkManager
- Testing: JUnit, Espresso, Jacoco for coverage
- Firebase Crashlytics & NDK Crashlytics
- Firebase Performance Monitoring
- Firebase Analytics
- Firebase App Check with Play Integrity
- Firebase Cloud Messaging
app/src/main/java/net/dotevolve/benchmark/
├── ads/ # Google Ads integration
├── core/ # Core benchmarking engine
│ ├── BenchmarkEngine.java
│ ├── PerformanceMetrics.java
│ └── AdvancedMetrics.java
├── data/ # Data layer
│ ├── db/ # Database helpers
│ ├── model/ # Data models
│ └── repository/ # Repository pattern
├── services/ # Background services
├── ui/ # User interface
│ ├── MainActivity.java
│ ├── HistoryActivity.java
│ ├── ResultDetailActivity.java
│ └── adapters/
└── work/ # Background work managers
- Android Studio Arctic Fox or later
- JDK 17
- Android SDK 34+
- Firebase project setup (for full functionality)
-
Clone the repository
git clone https://github.com/dotevolve/benchmark.git cd benchmark -
Configure Firebase
- Create a Firebase project
- Add your
google-services.jsontoapp/directory - Configure Firebase services as needed
-
Configure Google Ads (Optional)
- Set up AdMob account
- Update ad unit IDs in
build.gradle.kts
-
Build the project
./gradlew assembleDebug
-
Run tests
./gradlew test ./gradlew connectedAndroidTest
./gradlew assembleDebug./gradlew assembleRelease./gradlew jacocoTestReportDebugThe app follows modern Android architecture patterns:
- MVVM Architecture - Clear separation of concerns
- Repository Pattern - Centralized data access
- Dependency Injection - Modular and testable code
- Single Activity Architecture - Navigation with fragments
- Reactive Programming - LiveData and observables
The benchmark engine performs several types of performance tests:
- CPU Intensive Operations - Mathematical computations and algorithms
- Cryptographic Operations - AES encryption, SHA hashing, MD5
- Memory Operations - Memory allocation and access patterns
- I/O Operations - File system and database operations
Starting with engine v2.0.0, every benchmark run is tagged with a semantic version so historical scores can be compared safely:
- MAJOR — Breaking changes to the suite (new core tests, scoring overhauls). Only compare scores that share the same major number.
- MINOR — Additive tweaks (e.g., extra workloads) that still allow comparison within the major line.
- PATCH — Bug fixes or optimizations that do not alter scoring math.
The active engine version is surfaced in every result card, detail view, local database row, and Firestore record, ensuring apples-to-apples comparisons across devices.
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Follow Android Kotlin/Java style guidelines
- Use meaningful variable and method names
- Add appropriate comments and documentation
- Ensure all tests pass before submitting
./gradlew testDebugUnitTest./gradlew connectedDebugAndroidTestThe project uses Jacoco for code coverage reporting. Generate reports with:
./gradlew jacocoTestReportDebug- Update version in
build.gradle.kts - Generate signed APK/AAB
- Upload to Google Play Console
- Update release notes
The companion website is deployed using Firebase Hosting:
firebase deploy- Privacy-First Design - Minimal data collection
- Local Data Storage - Performance data stored locally
- Transparent Privacy Policy - Clear data usage disclosure
- Security Best Practices - Secure coding and data handling
See our Privacy Policy for details.
This project is licensed under the MIT License - see the LICENSE file for details.
- Email: info@dotevolve.co.in
- Privacy: privacy@dotevolve.net
- Website: benchmark.dotevolve.net
- Android development community
- Firebase team for excellent tools
- Material Design team for design guidelines
- Open source contributors
Made with ❤️ by DotEvolve
© 2025 DotEvolve. All rights reserved.



