264 líneas
9.1 KiB
Markdown
264 líneas
9.1 KiB
Markdown
# Top Command - Android Process Monitor
|
|
|
|
[](https://opensource.org/licenses/MIT)
|
|
[](https://developer.android.com)
|
|
[](https://android-arsenal.com/api?level=24)
|
|
|
|
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
|
|
|
|
```bash
|
|
git clone https://github.com/tuusuario/top-command-android.git
|
|
cd top-command-android
|
|
```
|
|
|
|
### Compilar con Gradle
|
|
|
|
#### Desde la línea de comandos:
|
|
|
|
```bash
|
|
# 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:
|
|
```cmd
|
|
gradlew.bat assembleDebug
|
|
```
|
|
|
|
### Compilar desde Android Studio
|
|
|
|
1. Abre **Android Studio**
|
|
2. Selecciona **"Open an Existing Project"**
|
|
3. Navega y selecciona la carpeta del proyecto
|
|
4. Espera a que Gradle sincronice las dependencias
|
|
5. Ejecuta con **Run 'app'** o **Ctrl+R**
|
|
|
|
### Generar APK
|
|
|
|
```bash
|
|
# 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)
|
|
|
|
```bash
|
|
# 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
|
|
1. **Vista principal**: Lista de todos los procesos visibles
|
|
2. **Búsqueda**: Toca la barra de búsqueda para filtrar
|
|
3. **Ordenación**: Toca cualquier columna para ordenar
|
|
4. **Detalles**: Toca cualquier proceso para ver información completa
|
|
5. **Configuración**: Botón de ajustes en la barra superior
|
|
|
|
### Acceso Root
|
|
1. La app detecta automáticamente si el dispositivo tiene root
|
|
2. Toca **"Enable Root Access"** en la tarjeta superior
|
|
3. Concede permisos cuando tu gestor de root lo solicite
|
|
4. 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
|
|
|
|
```bash
|
|
# Ejecutar tests unitarios
|
|
./gradlew test
|
|
|
|
# Tests de instrumentación (requiere dispositivo/emulador)
|
|
./gradlew connectedAndroidTest
|
|
|
|
# Tests de UI
|
|
./gradlew connectedDebugAndroidTest
|
|
```
|
|
|
|
## 🏗️ Tecnologías Utilizadas
|
|
|
|
- **[Jetpack Compose](https://developer.android.com/jetpack/compose)** - UI moderna y declarativa
|
|
- **[Material 3](https://m3.material.io/)** - Sistema de diseño
|
|
- **[ViewModel](https://developer.android.com/topic/libraries/architecture/viewmodel)** - Gestión de estado
|
|
- **[Kotlin Coroutines](https://kotlinlang.org/docs/coroutines-overview.html)** - Programación asíncrona
|
|
- **[StateFlow](https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/-state-flow/)** - Flujo de datos reactivo
|
|
|
|
## 🤝 Contribución
|
|
|
|
¡Las contribuciones son bienvenidas! Por favor:
|
|
|
|
1. Fork el proyecto
|
|
2. Crea una rama para tu feature (`git checkout -b feature/nueva-funcionalidad`)
|
|
3. Commit tus cambios (`git commit -am 'Agregar nueva funcionalidad'`)
|
|
4. Push a la rama (`git push origin feature/nueva-funcionalidad`)
|
|
5. 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](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](https://github.com/tuusuario)
|
|
|
|
## 📞 Soporte
|
|
|
|
Si tienes problemas o preguntas:
|
|
- 🐛 **Reportar bugs**: [Issues](https://github.com/tuusuario/top-command-android/issues)
|
|
- 💡 **Sugerir funcionalidades**: [Discussions](https://github.com/tuusuario/top-command-android/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!** ⭐
|