- COM порт на Android
- Программирование на телефоне используя эмулятор терминала Termux
- Что нам понадобится?
- Почему именно Termux?
- Начало
- Использование терминала при разработке под Андроид
- iTerm2
- oh-my-zsh
- Автозаполнение
- Обратный умный поиск
- DryRun
- Билдим проект быстрее/без сети
- Понимание gradle задач
- Android Rocket Launcher
- Вывод юнит-тестов на консоль
- Удобные logcats
- Обзор Android Terminal Emulator
- Вступление
- Что представляет собой приложение
- Настройки программы
- Некоторые команды
- Заключение
COM порт на Android
Сейчас я расскажу, как, имея в наличии совершенно стандартное устройство на Android с поддержкой USB Host (в моем случае Nexus 7), совершенно стандартный USB Host переходник на полноразмерный разъем «мама», совершенно стандартный USB serial контроллер на чипе PL2303 (они почти все работают именно на этом чипе) и не менее стандартный цискин голубой шнурок, зайти на консоль сетевого оборудования и без всяких ограничений работать с ней. Хотя никто не мешает подключать к планшету/телефону и любое другое оборудование, работающее с командной строкой поверх RS-232.
Первым делом получаем на планшете рут-права. Иначе никак.
Вторым делом ставим Busybox. Кто не знает — это отличный комплект утилит, одна из которых нам потребуется. После установки надо запустить его и нажать в самой программе «Install», когда программа спросит про метод установки — сказать «Normal».
Затем понадобится любой приличный эмулятор терминала. Мне нравится Irssi ConnectBot.
Ну и напоследок — штатные клавиатуры плохо годятся для работы с консолью. Нам ведь нужны клавиши Tab, ctrl и прочие, верно? Да и цифры хочется иметь в верхнем ряду, над буквами, а не где-то еще. Потому — Hacker’s Keyboard. Лучше, конечно, подключить внешнюю клавиатуру, но мы пока не собираемся набивать вручную многоэкранные конфиги.
Всё готово для подключения.
Запускаем терминальный клиент, выбираем локальное подключение, и подключаем к планшету контроллер. Нужно убедиться, что он определился, хотя тут проблем не ожидается, драйвера для PL2303 уже много лет как включены в ядро Linux. Под рутом запускаем dmesg.
(если кому мелковато — кликните на картинку)
Нужно запомнить, куда смонтировало контроллер. В моем случае это всегда был /dev/ttyUSB0.
Осталось установить соединение. В комплект Busybox входит программа «microcom», она-то нам и пригодится.
Набираем в консоли «microcom -s [скорость порта] [точка монтирования устройства]».
Выход из microcom по ctrl+x. Break должен посылаться по ctrl+b (пока не проверял). Другие горячие клавиши передаются корректно.
Альтернативы?
Можно купить один из многих «Bluetooth Serial» адаптеров. Вот только такие адаптеры и стоят дороже (>$50), и требуют внешнего питания. Ни одного на аккумуляторах не видел. В лучшем случае батарейку надо самому прикрутить.
Для пользователей техники Apple есть проводное решение за те же >$50.
Источник
Программирование на телефоне используя эмулятор терминала Termux
Приветствую читателей! В этой статье я расскажу о том, как можно, имея android телефон, писать программы. Говорю сразу — root права не нужны.
Что нам понадобится?
Первое, что нам понадобится — андроид телефон со установленным на него приложением Termux (есть в Google Play). Для полноценной работы с терминалом, нам нужно достаточно памяти. У меня с десятками установленных пакетов приложение занимает 1.5 ГБ памяти.
Так же, для комфортного кодинга желательно, чтобы телефон был с поддержкой OTG, и у вас была клавиатура с подключением по USB, чтобы писать код на клавиатуре (куда удобнее). Если уж нет этого, то качаем клавиатуру Hacker’s Keyboard. В ней есть клавиша Ctrl, что нам важно.
Почему именно Termux?
Termux имеет в арсенале достаточно пакетов для работы с языками программирования: C/C++, Python, Golang, PHP, Lua.
Так же присутствуют базы данных, я знаю только о mariadb и postgresql.
Начало
При каждом запуске приложения мы видим приветствие, в котором указаны основные команды для работы с терминалом:
- pkg search — команда для поиска пакетов. Пример: pkg search vim
- pkg install — команда для установки пакета. Пример: pkg install vim
Для кодинга нам понадобится текстовой редактор. Здесь есть разные варианты, я выбирал Vim и вкратце расскажу, как с ним работать.
Установка vim:
Для примера работы с vim напишем «Hello World» на С.
После этого запустится Vim. Чтобы начать писать код, нужно нажать на клавишу «i».
Пишем код:
После этого нажимаем на клавишу «Esc», ставим двоеточие и пишем wq («:wq»). Это сохранит наш файл и изменения в нём (w — write) и закроет его (q — quit).
Важно знать!
w — сохранить изменения в файле
wa — сохранить изменения во всех файлах
q — закрыть файл
qa — закрыть все файлы
wq — сохранить изменения и закрыть файл
Теперь нам нужно скомпилировать этот код. Для начала установим компилятор:
Далее пишем следуюющее:
main.c — файл с нашим кодом
program — наша програмка.
Теперь можем запустить нашу програмку и посмотреть, работает ли она:
Источник
Использование терминала при разработке под Андроид
Будучи поклонником терминала, я давно хотел написать об этой теме. Кроме того, знание того, как использовать терминал, значительно ускоряет работу.
Моя цель в этой статье — поделиться с вами тем, как я использую терминал при разработке под 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:
Билдим проект быстрее/без сети
Флаг —offline говорит gradle всегда использовать модули зависимостей из кеша, независимо от того, должны ли они быть проверены. При работе в автономном режиме, gradle никогда не попытается получить доступ к сети для выполнения разрешения зависимостей. Если требуемые модули отсутствуют в кэше зависимостей, выполнение сборки завершится с ошибкой.
Сборка на полной скорости:
Выполнение ваших модульных тестов на полной скорости:
В качестве альтернативы, в Android Studio вы можете сделать gradle build полностью офлайн, активировав эту опцию:
Settings -> Build, Execution, Deployment -> Build tools -> Gradle
Как Android-разработчик, вы, вероятно, используете Android Studio с Gradle. Одним из замечательных преимуществ является управление зависимостями, которое автоматически загружает артефакты из репозитория и делает их доступными для вашего приложения. В принципе, вы просто добавляете одну строку в файл build.gradle, и ваша библиотека включена. Довольно легко, правда?
Но вы точно знаете эту строку?
Для этого существует ALFI:
- Введите: alfi NAME_OF_THE_LIBRARY
- Скопируйте нужную библиотеку
- Вставьте в build.gradle
Не требуется взаимодействие с пользовательским интерфейсом и до 20 результатов сразу!
Понимание gradle задач
Если вы запустите ./gradlew tasks, вы получите список доступных функций gradle. То, что не указано в списке, это короткие версии команд, так что вот небольшой список допущений, которые вы можете сделать,
- iDD == installDevelopmentDebug
- aDD == assembleDevelopmentDebug
- cC == connectedCheck
- etc.
Вы можете начать делать следующим образом:
Так гораздо компактнее.
Android Rocket Launcher
Это gradle плагин, который добавляет задачи к вашим модулям Android для установки и запуска всех вариантов, поэтому нет необходимости запускать ./gradlew installDebug и переходить на телефон, находить приложение среди 50 приложений, которые вы установили, и запускать нужное.
Все, что вам нужно сделать, это добавить 2 строки в build.gradle
Совет: не забывайте, что даже при запуске приложения с терминала вы всегда можете активировать процесс отладки без необходимости перезапускать приложение.
Вывод юнит-тестов на консоль
Небольшой трюк, который позволяет увидеть результаты тестирования устройств Android.
Теперь, когда вы запускаете свои тесты, они выводят что-то вроде этого:
Удобные logcats
Во время разработки приложений вы часто хотите показывать только сообщения журнала, поступающие из вашего приложения. К сожалению, поскольку идентификатор процесса изменяется каждый раз, когда вы развертываете приложение на телефоне, то сортировка сообщений становится проблемой.
Этот небольшой инструмент решает эту проблему путем фильтрации по пакету приложения. Поставьте нужный пакет в качестве единственного аргумента и получите желаемый результат.
Источник
Обзор Android Terminal Emulator
Вступление
Android является полностью открытой и кастомизируемой системой. Всё благодаря тому, что в ней используется ядро Linux — самой популярной Open Source системы. На основе Linux создано большое количество ОС для настольных компьютеров и серверов, а также других электронных устройств, в числе которых можно отметить гаджеты на базе Android.
Некоторые команды выполняются только в консольном режиме
Некоторые операции совершаются при помощи консоли или терминала. Это такая системная утилита без графического интерфейса, которая выполняет задания после ручного ввода команды. На Android по умолчанию такая утилита отсутствует, в отличие от настольного Linux или Windows. Благо, что разработчики не едят хлеб даром и ими уже создано множество эмуляторов терминала. Один из них — Android Terminal Emulator. Давайте узнаем о нём подробнее.
Что представляет собой приложение
Приложение является полноценным эмулятором терминала Linux, поддерживает несколько окон, клавиатурные сокращения, понимает кодировку UTF-8. Оно полностью бесплатное, не имеет встроенной рекламы и всплывающих окон.
О чём стоит помнить, работая с этим эмулятором?
- требуются root-права;
- это не эмулятор игр;
- он не поможет получить root на устройстве;
- нужно знать команды Linux;
- возможно, понадобится установить Busy Box.
Приложение будет полезно для тех пользователей, которые чётко представляют, для чего им нужен терминал и хотя бы немного знают основные команды.
Настройки программы
Программа доступна в Play Market по ссылке https://play.google.com/store/apps/details?id=jackpal.androidterm&hl=ru. Меню доступно на многих языках, в том числе на русском. После запуска программы, в строке уведомлений вы увидите оповещение о том, что запущен терминальный процесс. Перейдите в настройки, которые разделены на логические группы.
Экран. Можно настроить отображение строки состояния, панели действий и выбрать ориентацию экрана.
Текст. Регулируется размер шрифта, цифровая схема и кодировка текста.
Клавиатура. Установите поведение кнопки назад, настройте сочетание клавиш и выберите аналоги некоторых компьютерных кнопок.
Командная оболочка. Можно указать обработчика команд, предоставить команды запуска, выбрать тип терминала и домашнюю папку, а также некоторые элементы поведения.
В верхней строке программы содержится всплывающий список окон, поэтому можно быстро переключаться между несколькими открытыми. Новое окно запускается нажатием на значок плюса.
Некоторые команды
adb — Отладчик Android. К мобильным устройствам можно подключать внешние накопители и устройства, эта утилита позволяет управлять ими.
am — Менеджер действий. Можно включить или выключить любое приложение или процесс.
badblocks — проверка карты памяти на наличие битых секторов.
bmgr — резервное копирование Android.
cat — просмотр содержимого файла.
chmod — изменение прав доступа к файлу.
chown — изменение владельца файла.
cmp — сравнение нескольких файлов.
cp — копирование файла.
date — отображение текущей системной даты.
dd — создание образа диска.
df — анализ свободного места в памяти.
dmesg — просмотр лога ядра.
du — просмотр размера файла.
ext4_resize — изменение размера раздела в файловой системе ext4 (требуется root).
fsck_msdos — проверка ошибок на карте памяти.
grep — фильтрация текста.
ifconfig — просмотр сетевых устройств и управление ими (требуется root).
iptables — настройки файервола.
kill — убить процесс по его числовому идентификатору.
ln — ссылка на файл или папку.
log — записать строку в системный лог.
logcut — просмотр системного лога в реальном времени.
ls — просмотр содержимого директории.
lsmod — отображение запущенных модулей ядра.
lsof — отображение открытых файлов.
make_ext4fs — форматирование карты памяти в формат ext4.
md5 — контрольная сумма файла.
mkdir — создание папки в каталоге.
make2fs — форматирование карты памяти в формат ext2.
mount — монтирование диска, образа или папки.
mv — перемещение файла.
netcfg — информация об интернет-соединениях.
notify — слежение за изменениями в файловой системе.
ping — проверка доступности удалённого сервера.
pm — пакетный менеджер Android, можно полностью управлять установленными приложениями.
ps — отображение информации о запущенных процессах.
reboot — перезагрузка устройства.
resize2fs — изменение размера каталога.
rm — удаление файла.
rmdir — удаление папки.
route — управление таблицей маршрутизации.
touch — создание пустого файла.
top — список запущенных процессов.
screenshot — скриншот экрана (требуется root).
shutdown — выключение аппарата.
service — управление сервисами.
Перечисленные команды далеко не все, а лишь основные. Некоторые из них требуют более глубокого изучения.
Заключение
Android Terminal Emulator — одно из лучших приложений в своём роде. Оно имеет небольшой вес и отличную функциональность. Ещё раз обращаем внимание — если вы не до конца осознаёте, что такое командная консоль Linux и для чего она предназначается, лучше займитесь изучением официальной документации.
Вас устраивает работа этой прекрасной системной утилиты? Какие команды вы используете в своей работе? Будем благодарны за ваши ценные комментарии.
Источник