- PVSM.RU - https://www.pvsm.ru -

Использование терминала при разработке под Андроид

image

Будучи поклонником терминала, я давно хотел написать об этой теме. Кроме того, знание того, как использовать терминал, значительно ускоряет работу.

Моя цель в этой статье — поделиться с вами тем, как я использую терминал при разработке под Android.

iTerm2

Поскольку мы собираемся проводить много времени в командной строке, давайте установим терминал получше, нежели стандартный. Предлагаю вашему вниманию iTerm2 [1].

ITerm2 — современный терминал с функциями, которые вы так давно желали видеть. Например, разбиение панели, пользовательские цветовые схемы, история, контроль над горячими клавишами, а также множество других удобных настроек, которые вы найдете полезными.

oh-my-zsh

Когда вы запускаете терминал, он запускает оболочку под названием Bash. Bash на сегодняшний день является самой популярной оболочкой и поставляется с почти каждой операционной системой на базе UNIX. Однако есть альтернативы Bash, которые делают использование терминала более быстрым и удобным для разработчиков.

По умолчанию oh-my-zsh поставляется с плагином [2], который предоставляет множество полезных функций.

Автозаполнение

Zsh-autosuggestions — это быстрые/ненавязчивые предложения для вставки в zsh. Он предлагает команды по мере ввода на основе истории команд:

image

Обратный умный поиск

Вы можете нажать Control + R, чтобы выполнить обратный умный поиск в истории команд. Начните вводить команду, и оболочка будет автозаполнена с ранее введенными командами.

Затем вы можете либо нажать Enter, чтобы выполнить предложенную команду, либо используйте стрелки влево/вправо, чтобы отредактировать команду, или продолжайте нажимать Control + R для переключения между другими возможными командами.

image

DryRun

Вы наткнулись на классную библиотеку github, но что вам нужно сделать, чтобы протестить ее на вашем телефоне?

  • Нажать кнопку Скачать zip
  • Извлечь zip-файл
  • Открыть Android Studio
  • Импортировать скачанный проект
  • Sync gradle
  • Запустить проект
  • Выбрать устройство
  • Опробовать
  • Удалить папку проекта и zip-файл, когда вам это более не требуется.

Или...

Вы можете использовать dryrun [3]:

dryrun REMOTE_GIT_URL

image

Билдим проект быстрее/без сети

Флаг --offline говорит gradle всегда использовать модули зависимостей из кеша, независимо от того, должны ли они быть проверены. При работе в автономном режиме, gradle никогда не попытается получить доступ к сети для выполнения разрешения зависимостей. Если требуемые модули отсутствуют в кэше зависимостей, выполнение сборки завершится с ошибкой.

Сборка на полной скорости:

./gradlew assembleDevelopDebug --offline

Выполнение ваших модульных тестов на полной скорости:

./gradlew test --offline

В качестве альтернативы, в Android Studio вы можете сделать gradle build полностью офлайн, активировав эту опцию:

Settings -> Build, Execution, Deployment -> Build tools -> Gradle

image

alfi

Как Android-разработчик, вы, вероятно, используете Android Studio с Gradle. Одним из замечательных преимуществ является управление зависимостями, которое автоматически загружает артефакты из репозитория и делает их доступными для вашего приложения. В принципе, вы просто добавляете одну строку в файл build.gradle, и ваша библиотека включена. Довольно легко, правда?

Но вы точно знаете эту строку?

Для этого существует ALFI [4]:

  1. Введите: alfi NAME_OF_THE_LIBRARY
  2. Скопируйте нужную библиотеку
  3. Вставьте в build.gradle

Не требуется взаимодействие с пользовательским интерфейсом и до 20 результатов сразу!

alfi picasso

image

Понимание gradle задач

Если вы запустите ./gradlew tasks, вы получите список доступных функций gradle. То, что не указано в списке, это короткие версии команд, так что вот небольшой список допущений, которые вы можете сделать,

  • iDD == installDevelopmentDebug
  • aDD == assembleDevelopmentDebug
  • cC == connectedCheck
  • etc.

Вы можете начать делать следующим образом:

./gradlew :App:iDD 

Так гораздо компактнее.

Android Rocket Launcher

Это gradle плагин, который добавляет задачи к вашим модулям Android для установки и запуска всех вариантов, поэтому нет необходимости запускать ./gradlew installDebug и переходить на телефон, находить приложение среди 50 приложений, которые вы установили, и запускать нужное.

image

Все, что вам нужно сделать, это добавить 2 строки [5] в build.gradle

Совет: не забывайте, что даже при запуске приложения с терминала вы всегда можете активировать процесс отладки [6] без необходимости перезапускать приложение.

Вывод юнит-тестов на консоль

Небольшой трюк, который позволяет увидеть результаты тестирования устройств Android.

android {
  ...
  testOptions.unitTests.all {
    testLogging {
      events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
      outputs.upToDateWhen { false }
      showStandardStreams = true
    }
  }
}

Теперь, когда вы запускаете свои тесты, они выводят что-то вроде этого:

image

Удобные logcats

Во время разработки приложений вы часто хотите показывать только сообщения журнала, поступающие из вашего приложения. К сожалению, поскольку идентификатор процесса изменяется каждый раз, когда вы развертываете приложение на телефоне, то сортировка сообщений становится проблемой.

Этот [7] небольшой инструмент решает эту проблему путем фильтрации по пакету приложения. Поставьте нужный пакет в качестве единственного аргумента и получите желаемый результат.

pidcat github.cesarferreira.helloworld

image

Итог

  • Установите iterm2, более функциональный терминал, чем стандартный
  • Используйте оболочку oh-my-zsh для автозаполнения
  • Не забывайте про компактные команды ./gradlew iDD
  • Выполняйте команды быстрее, используя флаг --offline
  • Не открывайте приложение на телефоне вручную после установки, используйте этот плагин [5] для автоматизации процесса
  • Присоедините процесс отладки без перезапуска приложения
  • Наслаждайтесь более удобным вывод logcat с pidcat.

Автор: velkonost

Источник [8]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/262725

Ссылки в тексте:

[1] iTerm2: http://www.iterm2.com/

[2] плагином: https://github.com/robbyrussell/oh-my-zsh/wiki/Plugin:git

[3] dryrun: https://github.com/cesarferreira/dryrun

[4] ALFI: https://github.com/cesarferreira/alfi

[5] 2 строки: https://github.com/cesarferreira/android-rocket-launcher

[6] активировать процесс отладки: https://stackoverflow.com/questions/17677506/android-studio-open-debug-mode-when-app-is-running/19017722#19017722

[7] Этот: https://github.com/JakeWharton/pidcat

[8] Источник: https://habrahabr.ru/post/336348/