We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Разработка инструментов для отладки и профилирования приложений в Termux

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 perf
    Пример базового профилирования нативного бинарника:
    perf record -g ./my_app
    perf report
  • simpleperf – профильный инструмент, ориентированный на Android‑устройства. Установка:
    pkg install simpleperf
    Запуск:
    simpleperf 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 пайплайнами.

Свяжитесь с нами, и мы поможем вывести ваш мобильный продукт на новый уровень надёжности и производительности.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен экспертом RybinskLab.

Поделиться знанием:

Нужна профессиональная помощь?

Меня зовут Усачёв Денис Евгеньевич. Я оказываю IT-услуги в Рыбинске и Ярославской области: настройка серверов, безопасность, автоматизация бизнеса.

Связаться со мной