Будучи поклонником терминала, я давно хотел написать об этой теме. Кроме того, знание того, как использовать терминал, значительно ускоряет работу.
Моя цель в этой статье — поделиться с вами тем, как я использую терминал при разработке под Android.
iTerm2
Поскольку мы собираемся проводить много времени в командной строке, давайте установим терминал получше, нежели стандартный. Предлагаю вашему вниманию iTerm2.
ITerm2 — современный терминал с функциями, которые вы так давно желали видеть. Например, разбиение панели, пользовательские цветовые схемы, история, контроль над горячими клавишами, а также множество других удобных настроек, которые вы найдете полезными.
oh-my-zsh
Когда вы запускаете терминал, он запускает оболочку под названием Bash. Bash на сегодняшний день является самой популярной оболочкой и поставляется с почти каждой операционной системой на базе UNIX. Однако есть альтернативы Bash, которые делают использование терминала более быстрым и удобным для разработчиков.
По умолчанию oh-my-zsh поставляется с плагином, который предоставляет множество полезных функций.
Автозаполнение
Zsh-autosuggestions — это быстрые/ненавязчивые предложения для вставки в zsh. Он предлагает команды по мере ввода на основе истории команд:
Обратный умный поиск
Вы можете нажать Control + R, чтобы выполнить обратный умный поиск в истории команд. Начните вводить команду, и оболочка будет автозаполнена с ранее введенными командами.
Затем вы можете либо нажать Enter, чтобы выполнить предложенную команду, либо используйте стрелки влево/вправо, чтобы отредактировать команду, или продолжайте нажимать Control + R для переключения между другими возможными командами.
DryRun
Вы наткнулись на классную библиотеку github, но что вам нужно сделать, чтобы протестить ее на вашем телефоне?
- Нажать кнопку Скачать zip
- Извлечь zip-файл
- Открыть Android Studio
- Импортировать скачанный проект
- Sync gradle
- Запустить проект
- Выбрать устройство
- Опробовать
- Удалить папку проекта и zip-файл, когда вам это более не требуется.
Или...
Вы можете использовать dryrun:
dryrun REMOTE_GIT_URL
Билдим проект быстрее/без сети
Флаг --offline говорит gradle всегда использовать модули зависимостей из кеша, независимо от того, должны ли они быть проверены. При работе в автономном режиме, gradle никогда не попытается получить доступ к сети для выполнения разрешения зависимостей. Если требуемые модули отсутствуют в кэше зависимостей, выполнение сборки завершится с ошибкой.
Сборка на полной скорости:
./gradlew assembleDevelopDebug --offline
Выполнение ваших модульных тестов на полной скорости:
./gradlew test --offline
В качестве альтернативы, в Android Studio вы можете сделать gradle build полностью офлайн, активировав эту опцию:
Settings -> Build, Execution, Deployment -> Build tools -> Gradle
alfi
Как Android-разработчик, вы, вероятно, используете Android Studio с Gradle. Одним из замечательных преимуществ является управление зависимостями, которое автоматически загружает артефакты из репозитория и делает их доступными для вашего приложения. В принципе, вы просто добавляете одну строку в файл build.gradle, и ваша библиотека включена. Довольно легко, правда?
Но вы точно знаете эту строку?
Для этого существует ALFI:
- Введите: alfi NAME_OF_THE_LIBRARY
- Скопируйте нужную библиотеку
- Вставьте в build.gradle
Не требуется взаимодействие с пользовательским интерфейсом и до 20 результатов сразу!
alfi picasso
Понимание gradle задач
Если вы запустите ./gradlew tasks, вы получите список доступных функций gradle. То, что не указано в списке, это короткие версии команд, так что вот небольшой список допущений, которые вы можете сделать,
- iDD == installDevelopmentDebug
- aDD == assembleDevelopmentDebug
- cC == connectedCheck
- etc.
Вы можете начать делать следующим образом:
./gradlew :App:iDD
Так гораздо компактнее.
Android Rocket Launcher
Это gradle плагин, который добавляет задачи к вашим модулям Android для установки и запуска всех вариантов, поэтому нет необходимости запускать ./gradlew installDebug и переходить на телефон, находить приложение среди 50 приложений, которые вы установили, и запускать нужное.
Все, что вам нужно сделать, это добавить 2 строки в build.gradle
Совет: не забывайте, что даже при запуске приложения с терминала вы всегда можете активировать процесс отладки без необходимости перезапускать приложение.
Вывод юнит-тестов на консоль
Небольшой трюк, который позволяет увидеть результаты тестирования устройств Android.
android {
...
testOptions.unitTests.all {
testLogging {
events 'passed', 'skipped', 'failed', 'standardOut', 'standardError'
outputs.upToDateWhen { false }
showStandardStreams = true
}
}
}
Теперь, когда вы запускаете свои тесты, они выводят что-то вроде этого:
Удобные logcats
Во время разработки приложений вы часто хотите показывать только сообщения журнала, поступающие из вашего приложения. К сожалению, поскольку идентификатор процесса изменяется каждый раз, когда вы развертываете приложение на телефоне, то сортировка сообщений становится проблемой.
Этот небольшой инструмент решает эту проблему путем фильтрации по пакету приложения. Поставьте нужный пакет в качестве единственного аргумента и получите желаемый результат.
pidcat github.cesarferreira.helloworld
Итог
- Установите iterm2, более функциональный терминал, чем стандартный
- Используйте оболочку oh-my-zsh для автозаполнения
- Не забывайте про компактные команды ./gradlew iDD
- Выполняйте команды быстрее, используя флаг --offline
- Не открывайте приложение на телефоне вручную после установки, используйте этот плагин для автоматизации процесса
- Присоедините процесс отладки без перезапуска приложения
- Наслаждайтесь более удобным вывод logcat с pidcat.
Автор: velkonost