Termux – это полноценная Linux‑окружение для Android, которое открывает широкие возможности для разработки, отладки и профилирования приложений непосредственно на мобильном устройстве. В статье рассматриваются основные инструменты, подходы к их интеграции и примеры создания собственных решений.
Почему именно Termux?
Termux сочетает в себе:
- Доступ к пакетному менеджеру
pkgиapt, позволяющему быстро установить привычные Linux‑утилиты. - Поддержку компиляторов (
clang,gcc), интерпретаторов (python,nodejs) и отладчиков (gdb,lldb). - Взаимодействие с Android‑API через
adbи возможность работы с файловой системой устройства.
Базовые инструменты отладки
Для большинства сценариев достаточно стандартных утилит, доступных в репозиториях Termux.
- gdb – отладчик для C/C++‑приложений. Устанавливается командой:
pkg install gdb - lldb – альтернативный отладчик, поддерживающий более современные форматы DWARF.
pkg install lldb - strace – трассировка системных вызовов.
pkg install strace - ltrace – трассировка вызовов библиотек.
pkg install ltrace
Профилирование производительности
Для измерения нагрузки и поиска узких мест в коде используются следующие инструменты.
- perf – мощный профайлер ядра Linux. Установка:
Пример базового профилирования нативного бинарника:pkg install perfperf record -g ./my_app perf report - simpleperf – профильный инструмент, ориентированный на Android‑устройства. Установка:
Запуск:pkg install simpleperfsimpleperf record -p $(pidof my_app) simpleperf report - Python‑профайлеры (
cProfile,pyinstrument) – удобны для скриптов.pip install pyinstrument pyinstrument my_script.py
Создание собственных отладочных и профилирующих скриптов
Termux позволяет писать небольшие утилиты на Bash, Python или даже Go, которые автоматически собирают нужные метрики.
Пример Bash‑скрипта, собирающего статистику CPU и памяти каждые 5 секунд:
#!/usr/bin/env bash
INTERVAL=5
while true; do
echo "--- $(date) ---"
top -b -n1 | head -n 10
sleep $INTERVAL
done
Для более гибкой интеграции можно использовать Python и библиотеку psutil:
#!/usr/bin/env python3
import psutil, time
while True:
cpu = psutil.cpu_percent(interval=1)
mem = psutil.virtual_memory().percent
print(f"CPU: {cpu}% | MEM: {mem}%")
time.sleep(4)
Практический пример: отладка нативного бинарника
Допустим, у вас есть небольшая утилита calc, написанная на C, и вы хотите отследить падение.
# Установка нужных пакетов
pkg install clang gdb strace
# Компиляция с отладочной информацией
clang -g -O0 -o calc calc.c
# Запуск под strace для получения трассировки системных вызовов
strace -o calc.strace ./calc 2>/dev/null
# Анализ с помощью gdb
gdb ./calc
(gdb) run
# После падения:
(gdb) backtrace
Практический пример: профилирование Python‑скрипта
Для скрипта, который обрабатывает большие JSON‑файлы, удобно использовать pyinstrument:
pip install pyinstrument
pyinstrument heavy_processing.py > profile.txt
cat profile.txt
Полученный отчёт покажет, какие функции занимают наибольшее время, и поможет оптимизировать код.
Best practices для отладки и профилирования в Termux
- Всегда собирайте приложение с отладочной информацией (
-g), но отключайте её в релизных сборках. - Не забывайте про
termux-setup-storage, чтобы обеспечить доступ к внешним файлам и логам.termux-setup-storage - Используйте
adb forwardдля передачи профилей на настольный ПК, где их легче анализировать.adb forward tcp:9090 tcp:9090 - Регулярно очищайте кэш (
rm -rf $PREFIX/tmp/*) – в мобильных устройствах ограничено место.
Заключение
Termux предоставляет полноценный набор инструментов для отладки и профилирования как нативных, так и скриптовых приложений. Благодаря возможности установки пакетов, компиляции кода и прямому доступу к системным ресурсам Android‑устройства, разработчики могут проводить глубокий анализ без необходимости подключаться к ПК.
Если вы хотите ускорить процесс разработки, получить профессиональную настройку отладочного окружения или создать кастомные инструменты под конкретные задачи, команда RybinskLab готова помочь. Мы предоставляем услуги по:
- Настройке и оптимизации Termux‑среды под ваш проект.
- Разработке специализированных отладочных скриптов и профайлеров.
- Консультациям по интеграции мобильных приложений с CI/CD пайплайнами.
Свяжитесь с нами, и мы поможем вывести ваш мобильный продукт на новый уровень надёжности и производительности.