9.1 KiB
9.1 KiB
Top Command - Android Process Monitor
Una aplicación moderna de monitoreo de procesos para Android inspirada en el comando top de Linux. Proporciona información detallada sobre todos los procesos del sistema con una interfaz intuitiva desarrollada en Jetpack Compose.
📱 Características
🔍 Monitoreo en Tiempo Real
- Lista completa de procesos del sistema
- Actualización automática configurable (1-10 segundos)
- Información de CPU, memoria, estado y usuario para cada proceso
- Contadores de procesos y threads
🔐 Soporte para Root
- Sin Root: Ve procesos del usuario actual
- Con Root: Acceso completo a todos los procesos del sistema
- Detección automática de disponibilidad de root
- Interfaz segura para solicitar permisos de superusuario
📊 Información Detallada del Sistema
Al hacer clic en cualquier proceso se muestra:
- Información básica: PID, nombre, usuario, estado, prioridad
- Rendimiento: Uso de CPU y memoria con códigos de color
- Detalles avanzados: PID padre, tiempo de inicio, tiempo de CPU
- Memoria: Virtual, residente, compartida
- Archivos: Línea de comandos, archivos abiertos, directorio de trabajo
- Red: Conexiones TCP activas
- Sistema: Mapas de memoria, variables de entorno, límites
🎨 Diseño Atractivo
- Material 3 Design con tema inspirado en terminal
- Tema oscuro/claro adaptativo
- Colores contextuales para estados y métricas de rendimiento
- Animaciones fluidas y transiciones suaves
- Cards organizadas para fácil lectura
🔧 Funcionalidades Avanzadas
- Búsqueda en tiempo real por nombre, PID o usuario
- Ordenación múltiple por PID, nombre, CPU, memoria o usuario
- Filtrado inteligente con highlighting de resultados
- Configuración personalizable de intervalos de actualización
- Información del sistema (uptime, load average, memoria total)
🚀 Compilación y Instalación
Prerrequisitos
- Android Studio Hedgehog (2023.1.1) o superior
- JDK 11 o superior
- Android SDK con API level 24+ (Android 7.0)
- Gradle 8.13 o superior (incluido con el proyecto)
Clonar el Repositorio
git clone https://github.com/tuusuario/top-command-android.git
cd top-command-android
Compilar con Gradle
Desde la línea de comandos:
# Compilar versión debug
./gradlew assembleDebug
# Compilar versión release
./gradlew assembleRelease
# Limpiar y compilar
./gradlew clean assembleDebug
# Instalar directamente en dispositivo conectado
./gradlew installDebug
En Windows:
gradlew.bat assembleDebug
Compilar desde Android Studio
- Abre Android Studio
- Selecciona "Open an Existing Project"
- Navega y selecciona la carpeta del proyecto
- Espera a que Gradle sincronice las dependencias
- Ejecuta con Run 'app' o Ctrl+R
Generar APK
# APK debug (para desarrollo)
./gradlew assembleDebug
# Output: app/build/outputs/apk/debug/app-debug.apk
# APK release (para distribución)
./gradlew assembleRelease
# Output: app/build/outputs/apk/release/app-release.apk
Generar Bundle de Android (AAB)
# Bundle para Google Play Store
./gradlew bundleRelease
# Output: app/build/outputs/bundle/release/app-release.aab
📋 Requisitos del Sistema
Para Compilación
- SO: Windows 10+, macOS 10.14+, o Linux
- RAM: Mínimo 8GB recomendado
- Espacio: 4GB libres para Android Studio + SDK
Para la Aplicación
- Android: 7.0 (API 24) o superior
- Arquitectura: ARM64, ARM32, x86, x86_64
- Permisos: No requiere permisos especiales
- Root (opcional): Para acceso completo a procesos del sistema
🛠️ Estructura del Proyecto
app/src/main/java/com/manalejandro/topcommand/
├── model/
│ ├── ProcessInfo.kt # Modelo de datos del proceso
│ └── SortBy.kt # Enumeración para ordenación
├── service/
│ ├── ProcessMonitorService.kt # Servicio sin root
│ └── RootService.kt # Servicio con acceso root
├── ui/
│ ├── components/
│ │ ├── ProcessComponents.kt # Componentes de UI
│ │ ├── ProcessDetailDialog.kt # Diálogo de detalles
│ │ └── RootComponents.kt # Componentes de root
│ ├── screen/
│ │ └── ProcessMonitorScreen.kt # Pantalla principal
│ └── theme/
│ ├── Color.kt # Paleta de colores
│ └── Theme.kt # Tema Material
├── viewmodel/
│ └── ProcessViewModel.kt # Lógica de negocio
└── MainActivity.kt # Actividad principal
🎯 Uso de la Aplicación
Navegación Básica
- Vista principal: Lista de todos los procesos visibles
- Búsqueda: Toca la barra de búsqueda para filtrar
- Ordenación: Toca cualquier columna para ordenar
- Detalles: Toca cualquier proceso para ver información completa
- Configuración: Botón de ajustes en la barra superior
Acceso Root
- La app detecta automáticamente si el dispositivo tiene root
- Toca "Enable Root Access" en la tarjeta superior
- Concede permisos cuando tu gestor de root lo solicite
- Disfruta del acceso completo a todos los procesos del sistema
Funciones Avanzadas
- Auto-refresh: Configurable desde 1-10 segundos
- Filtros: Busca por nombre, PID, o usuario
- Colores: Verde (bajo), amarillo (medio), naranja/rojo (alto)
- Información del sistema: Visible solo con acceso root
🧪 Testing
# Ejecutar tests unitarios
./gradlew test
# Tests de instrumentación (requiere dispositivo/emulador)
./gradlew connectedAndroidTest
# Tests de UI
./gradlew connectedDebugAndroidTest
🏗️ Tecnologías Utilizadas
- Jetpack Compose - UI moderna y declarativa
- Material 3 - Sistema de diseño
- ViewModel - Gestión de estado
- Kotlin Coroutines - Programación asíncrona
- StateFlow - Flujo de datos reactivo
🤝 Contribución
¡Las contribuciones son bienvenidas! Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/nueva-funcionalidad) - Commit tus cambios (
git commit -am 'Agregar nueva funcionalidad') - Push a la rama (
git push origin feature/nueva-funcionalidad) - Abre un Pull Request
Guías de Contribución
- Sigue las convenciones de código de Kotlin
- Documenta funciones públicas
- Incluye tests para nuevas funcionalidades
- Actualiza el README si es necesario
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT - ver el archivo LICENSE para detalles.
MIT License
Copyright (c) 2024 Top Command Android
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
👨💻 Autor
Alejandro - GitHub
📞 Soporte
Si tienes problemas o preguntas:
- 🐛 Reportar bugs: Issues
- 💡 Sugerir funcionalidades: Discussions
- 📧 Contacto directo: tu.email@ejemplo.com
📈 Roadmap
- Gráficos en tiempo real de CPU y memoria
- Exportar información de procesos
- Widgets de escritorio
- Notificaciones para procesos con alto uso
- Modo oscuro forzado
- Soporte para Android 15+
- Filtros avanzados y guardado de configuración
⭐ ¡No olvides dar una estrella al proyecto si te resultó útil! ⭐
