Консоль последовательного порта включена android studio

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.

Источник

Русские Блоги

Android последовательная связь-android-serialport-api

Оригинальный адрес:http://blog.csdn.net/qiwenmingshiwo/article/details/49557889

1. Принцип последовательной связи

Концепция последовательной связи очень проста: последовательный порт отправляет и получает байты в битах. Хотя это медленнее, чем параллельная связь в байтах, последовательный порт может использовать один провод для отправки данных при получении других данных. Это просто и позволяет междугородную связь.
Скорость передачи: это параметр, который измеряет скорость передачи символов.

Второе, android-serialport-api

В основном представить содержание:

1. Краткое введение в android-serialport-api
2. Получите аппаратный адрес и скорость передачи
3. Отправка и передача данных и получение данных

1. Краткое введение в android-serialport-api

android-serialport-apiЕсть две основные категории

параметры объяснение
SerialPort Получить класс последовательного порта (фактически получить входной и выходной потоки)
SerialPortFinder Класс, чтобы получить аппаратный адрес
1.1 Введение в SerialPort

1.1.1 Последовательность вызова следующая:

Метод построения SerialPort-> jni open-> c open

1.1.2 Конструктор SerialPort
public SerialPort(File device, int baudrate, int flags)

параметры объяснение
device Файловый объект для манипуляции
baudrate Скорость передачи
flags Знак файловой операции

1.1.3 Открытая функция на языке Си
Функция открытия на языке c используется для открытия файла. Смотрите здесь для деталейФункция языка open () на языке C: функция открытия файла

int open(const char * pathname, int flags);

параметры объяснение
pathname путь указывает на строку пути файла, который будет открыт
flags Как открыть и открыть файл: O_RDONLY открывает файл в режиме только для чтения O_WRONLY открывает файл в режиме только для записи O_RDWR открывает файл в режиме чтения и записи

Возвращаемое значение: если все разрешения, подлежащие проверке, проходят проверку, возвращается значение 0, указывающее успех, и -1 возвращается, если одно из разрешений запрещено.

Открыть функцию в SerialPort.c

2. Отправить и данные и получить данные

2.1 Передача данных
2.1.1 Отправка данных очень проста, получить поток вывода с помощью метода getOutputStream () объекта SerialPort, а затем записать данные в этот поток.

2.2 Получите данные, получите входной поток через метод getInputStream () объекта SerialPort, а затем прочитайте поток. Но, как правило, поток будет открыт для чтения данных

Подробнее вы можете посмотреть на класс SerialPortActivity в проекте, но это всего лишь пример. При фактическом использовании нам нужно изменить его в соответствии с нашими собственными требованиями, которые будут представлены в следующем блоге.

3. Получите аппаратный адрес и скорость передачи

Мы все знаем, что для работы с последовательным устройством нам нужно знать его адрес и скорость передачи. Скорость передачи обычно устанавливается в соответствии с описанием оборудования, поэтому в этом случае нам нужно только прочитать описание. Конечно, при выборе скорости передачи мы можем предоставить некоторые значения на выбор.
3.1 Скорость передачи
Мы можем создать коллекцию для хранения скорости передачи и выбирать ее, когда нам это нужно.

3.2 Получение аппаратного адреса
Фактически, аппаратный адрес также является коллекцией для хранения, используйте его, укажите аппаратный адрес. Мы сказали, что в andorid-serialport-api есть два основных java-файла, из которых мы уже упоминали SerialPort, а оставшийся SerialPortFinder — это класс для получения аппаратного адреса.
Основные шаги для получения аппаратного адреса:

Или следующим образом:

3.2.1. Прочитайте содержимое файла / proc / tty / drivers, чтобы определить, какой адрес является основным для последовательного устройства (определяется ключевым словом serail). Мы можем видеть содержимое файлов драйверов следующим образом (разные периферийные устройства, разное содержимое файлов)

1. При чтении содержимого файла он читается построчно. (Как данные ниже)
2. Когда читается строка данных, первая строка символов украдена как имя файла. (Например, следующий фрагмент данных, имя файла: serial)
3. Разбить строку данных по «+» (один или несколько пробелов). (Например, результат следующего разделения данных: w [0] = «серийный», w [1] = «/ dev / ttyS», w [2] = «4», w [3] = »64-67 ”, W [4] =” серийный ”)
4. Определите, больше ли длина массива символов, разделенного выше, больше или равна 5, и является ли последняя строка «последовательной», передайте имя файла в 3.2.2 и выполните 3.2.2. Не удовлетворен чтением следующей строки, пока чтение не будет завершено.

3.2.2 Найти реальный последовательный адрес устройства, получив базовый адрес. Сохраните набор адресов.

Ниже приведен фрагмент (часть) каталога / dev

1. Получить все файлы в / dev, чтобы получить файлы массивов файлов.
2. Просмотрите файлы и подождите, пока файлы [i].
3. Получите абсолютный путь к файлам [i] и определите, начинается ли абсолютный путь с имени файла базового адреса, переданного в 3.2.1. (Например: мы передаем основной адрес: / dev / ttyS, тогда мы удовлетворяем следующим условиям: / dev / ttyS0, / dev / ttyS1, / dev / ttyS2, / dev / ttyS3, эти четыре устройства Серийное устройство)
4. Удовлетворение 3 означает, что это последовательное устройство, которое сохраняется в коллекции, но не соответствует требованию 5.
5. Определите, закончилось ли чтение. Вернитесь к коллекции в конце и не заканчивайте в 2.

Источник

Работа с COM портом в Android приложениях

Все доброго времени суток!

Однажды я задумался над разработкой приложения, которое требовало бы общения с hardware устройством, через COM порт. Хотя Android заботливо предоставляет api для работы с usb устройствами, оно мне к сожалению не подходило, так как хотелось осуществлять поддержку моего старого планшета на базе андроид версии 2.2. Стандартное api ото Гугла, не подходило

по двум причинам:

  • во первых оно не сработало для меня.
  • девайс у меня все-таки старенький

Итак, после длительного поиска в интернете, я наткнулся на очень интересное решение android-serialport-api. Данное решение представляет собой Java обертку в которой через JNI в которой осуществляются вызовы к USB устройству.

Разработчики библиотеки предлагают 4 различных варианта подключения Android устройства к COM порту через USB.

Так как я имел в своем распоряжении планшет с USB host портом, и у меня под рукой имеется USB to RS232 преобразователь, то я пошел по варианту номер 2.

Преимущества и недостатки такого решения заключаются в

Преимущества

  • USB — RS232 преобразователь можно легко найти на ближайшем радио рынке
  • никаких извращений с моим дорогим моему сердцу планшетом
  • возможная высокая скорость передачи информации

Недостатки

  • потребуется USB хост коннектор
  • возможно, что девайс придется рутануть

Тут я опишу подход в использовании этой библиотеки.

Для корректной работы serialPortFinder необходимо чтобы переходник USB-RS232 был подключен, определен в /dev.

Вот таким нехитрым способом можно осуществлять общение с очень большим количеством железа через COM порт,

Источник

Включена последовательная консоль. Производительность снижается. Для отключения проверьте загрузчик

Недавно я создал эмулятор Android с версией Android R. Он показывает уведомление системы Android.

«Последовательная консоль включена. Производительность снижается. Чтобы отключить, проверьте загрузчик»

Может кто-нибудь объяснить, что означает это уведомление?

1 ответ

Поскольку с тех пор, как я разместил этот вопрос, прошло более 5 месяцев, и пока нет правильных ответов, я делюсь тем, что знаю об этом.

1) Что такое последовательная консоль?

Последовательная консоль — это соединение через RS-232 или последовательный порт, которое позволяет человеку получить доступ к компьютеру или консоли сетевого устройства. А последовательный порт — это интерфейс последовательной связи, через который информация передается последовательно по одному биту за раз.

2) Зачем нужно включать последовательную консоль в эмуляторе?

Включив последовательную консоль в эмуляторе Android, разработчики могут тестировать приложения на основе последовательного порта в эмуляторе.

  1. Почему это связано с загрузчиком?

Чтобы отключить или включить последовательную консоль, нам нужно изменить конфигурацию ядра Android. Чтобы узнать больше об изменении конфигурации ядра, перейдите по этим ссылкам: http://bootloader.wikidot.com/linux:android:serialhttps://gist.github.com/yan12125/78a9004acb1bed5faf2ffd442163e2ef

В заключение, с включенной последовательной консолью в эмуляторе andorid разработчик может использовать эмулятор для разработки и тестирования устройств или оборудования на основе последовательного порта. Если вы хотите отключить последовательную консоль, вам необходимо загрузить исходный код ядра, предоставленный Google https://gist.github.com/yan12125/78a9004acb1bed5faf2ffd442163e2ef

Затем измените конфигурацию, перекомпилируйте и измените ядро, выполнив команду

Документация доступна по указанной выше ссылке.

Источник

Отладка по ADB

ADB (Android Debug Bridge) – консольная клиент-серверная программа, выполняет роль универсального интерфейса для управления Android-устройствами (или их эмуляторами).

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

Однако главное назначение ADB – это отладка приложений и сервисов при их разработке и тестировании. В этом случае взаимодействие с устройством осуществляется через консоль.

  • просмотр подключенных устройств;
  • просмотр логов;
  • копирование файлов;
  • установка и удаление приложений;
  • скриншоты (и запись видео) экрана устройства;
  • удаление и перепрошивка раздела data;
  • запуск различных скриптов;
  • управление сетевыми параметрами.

В состав ADB входит три компонента:

  • клиент, который запускается на компьютере и отправляет команды. Его можно вызвать его из командной строки, введя команду adb;
  • демон, который запускается как фоновый процесс на Android-устройстве и выполняет команды клиента;
  • сервер, который работает в фоне на компьютере и управляет клиентом и демоном.

Как работает ADB:

  • при запуске adb-клиент проверяет наличие запущенного процесса adb-сервера, и если нет – запускает его на компьютере;
  • сервер устанавливает соединение на порту 5037 и слушает на нем команды от adb- клиентов;
  • затем сервер устанавливает соединения со всеми работающими устройствами, сканируя нечетные порты в диапазоне от 5555 до 5585. Для каждого устройства используется пара последовательных портов – порт с четным номером для соединений консоли, порт с нечетным номером – для соединений adb;
  • после того как сервер настроил соединения с устройствами, можно использовать команды adb для доступа к ним.

Подготовка к использованию

Прежде чем начать отладку на устройстве, необходимо выполнить несколько действий:

  • установить ADB на компьютере (драйвер для вашего Android-устройства, а так же пакет Android SDK Platform Tools);
  • на Android-устройстве включить отладку по USB, а затем подключить его к компьютеру кабелем (или настроить отладку по Wi-Fi).

Установка ADB

На устройствах под управлением Windows, установите драйвер для вашего Android-устройства.

Если драйвера для вашего устройства не нашлось на указанных страницах, попробуйте поискать его на сайте производителя.

Для MacOS и Linux установка драйверов не требуется.

Далее потребуется установить Android SDK Platform Tools. Если вы используете Android Studio , скорее всего SDK Platform Tools у вас уже установлен.

Установка ADB в Windows

Скачайте SDK Platform Tools и распакуйте папку platform-tools на диск (рекомендуется в С:\platform-tools).

В системную переменную Path добавьте путь к распакованной папке, для этого:

  • перейдите в Панель управления – Система и безопасность – Система;
  • выберите пункт Дополнительные параметры системы;
  • нажмите кнопку Переменные среды;
  • в поле Системные переменные выберите значение Path и нажмите кнопку Изменить, чтобы добавить новое значение;
  • укажите путь к папке platform-tools содержащую adb;
  • перезагрузите компьютер.

Установка ADB в Linux

Чтобы установить SDK Platform Tools в Ubuntu выполните следующую команду.

Либо вручную скачать SDK Platform Tools , распаковать на диск и добавить путь к распакованной папке с platform-tools в переменную среды $PATH.

Установка ADB в MacOS

Самый простой способ установить SDK Platform Tools на MacOS, используя Homebrew.

Либо установить вручную.

Сперва удалите предыдущую версию android-platform-tools, если такая имеется.

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

Добавить путь к platform-tools в переменную среды $PATH.

Обновите bash профиль или перезапустите терминал.

Проверка ADB

Зайдите в консоль и введите следующую команду:

Если все сделали верно, в ответ в консоль будет выведена информация о версии ADB.

Как включить отладку по USB на Android

Отладка по USB включается в настройках системы в разделе Параметры разработчика.

На Android 4.2 и выше раздел параметров разработчика по умолчанию скрыт. Чтобы сделать его видимым, перейдите в НастройкиО телефоне и нажмите Номер сборки (в редких случаях Номер модели) 7 раз (в редких случаях 10). На экране отобразится уведомление «Теперь вы разработчик!«

В настройках должен появиться пункт меню Параметры разработчика, найдите в нем пункт Отладка USB и активируйте его.

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

Подробнее о параметрах разработчика на устройствах Android можно ознакомится на developer.android.com .

Отладка Android по Wi-Fi

Для начала разрешите на Android устройстве отладку по USB, как описано в предыдущем разделе.

Устройство и компьютер должны быть в одной Wi-Fi сети. Убедитесь, что ваш брандмауэр или антивирусное не блокирует adb соединения.

Подключите устройство к компьютеру с помощью USB кабеля.

Разрешите устройству принимать соединения TCP/IP через порт 5555. Для этого выполните в командной строке следующую команду.

Параметр -d отправит команду только на устройство подключенное через USB.

В ответ должно появиться сообщение restarting in TCP mode port: 5555.

Если подключенных устройств несколько, возможно придется дополнительно указать серийный номер устройства.

Узнать серийный номер и получить информацию о подключенных устройствах можно следующей командой.

После того, как разрешите устройству принимать соединения TCP/IP через порт 5555, отсоедините кабель USB от компьютера.

Далее понадобится узнать ip-адрес вашего Android-устройства.

Например, для устройств Nexus, ip-адрес можно посмотреть в разделе НастройкиО телефоне (О планшете) – СтатусIP-адрес. Иногда ip-адрес указан в настройках Wi-Fi.

Подключитесь к устройству по его ip-адресу.

Убедитесь, что устройство появилось в списке.

Теперь можно выполнять отладку по Wi-Fi, без использования кабеля.

Если соединение ADB потеряно. Убедитесь, что устройство и компьютер все еще подключены к одной Wi-Fi сети. Переподключитесь, выполнив adb connect снова. Или, если не поможет, перезагрузите хост adb:

Затем повторите попытку.

После проделанных шагов вы сможете подключаться к устройству без использования USB-кабеля.

Команды ADB

Перед выполнением команд adb полезно знать, какие экземпляры устройств подключены к серверу adb. Список подключенных устройств можно посмотреть следующей командой.

В ответ adb выведет серийный номер, состояние и описание (параметр -l) подключенных устройств.

В примере ниже показаны три устройства. Первые два — эмуляторы, третье — аппаратное устройство, подключенное к компьютеру.

Если запущен только один эмулятор или подключено только одно устройство, команда adb отправится на это устройство по умолчанию. Если же запущено несколько эмуляторов и / или устройств, необходимо использовать параметры -d, -e или -s, чтобы указать устройство, на которое должна быть направлена команда.

Нижеприведенная команда отправится на устройство с указанным серийным номером.

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

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

Подсоединиться к андроид хосту по протоколу TCP/IP (по умолчанию порт 5555, если не указан другой).

Отсоединиться от андроид подключенного через TCP/IP (по умолчанию порт 5555). Если не задан ни один параметр, отключиться от всех активных соединений.

Перезапуск демона с правами root.

В некоторых случаях может потребоваться остановить сервер adb, и перезапустить его, чтобы решить проблему (например, если adb не отвечает на команды).

Копировать файл или папку на устройство.

Копировать файл или папку с устройства на компьютер.

Копировать с компьютера на устройство только новые файлы. С ключом -l не копировать, только создать список.

Установить приложение на устройство.

Ключи:
-l блокировка приложения;
-r переустановить приложение, с сохранением данных;
-s установить приложение на карту памяти.

Чтобы удалить приложение с устройства используйте следующую команду.

Ключ -k означает, не удалять сохраненные данные приложения и пользователя.

Сделать скриншот экрана устройства.

Полученный скриншот можно сразу забрать на компьютер.

Для записи видео с экрана устройства используйте команду screenrecord.

или с параметрами

Чтобы остановить запись используйте комбинацию клавиш Control + C (Command + C на Mac). По умолчанию максимальный лимит для видео составляет 3 минуты.

С полным списком команд adb можно ознакомиться на сайте developer.android.com .

ADB LogCat

Logcat — инструмент для работы с логами Android.

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

или через shell

Для остановки сбора логов нажмите Ctrl+C на клавиатуре (Command + C на Mac).

Чтобы вывести лог на экран и выйти из logcat используйте параметр -d.

В записях лога в Android указан приоритет:

  • V — verbose (низший приоритет);
  • D — debug;
  • I — info;
  • W — warning;
  • E — error;
  • F — fatal;
  • S — silent (наивысший приоритет, ничего не выводится).

Фильтровать сообщения по приоритету можно следующим образом.

Кроме приоритета у записей указан тэг компонента системы, от которого принято сообщение.

В дополнение к тэгу и приоритету в логе так же содержатся поля с метаданными. Формат можно изменять с помощью параметра -v, за которым следует один из нижеперечисленных форматов вывода:

  • brief — показывать приоритет, тэг и PID процесса (формат по умолчанию);
  • process — показывать только PID;
  • tag — показывать только приоритет, тэг;
  • thread — показывать только процесс, поток и приоритет, тэг;
  • raw — показать необработанное сообщение, без полей метаданных;
  • time — показывать дату, время вызова, приоритет, тэг и PID процесса;
  • long — показывать все поля метаданных и отдельно сообщения с пустыми строками.

Список параметров команды logcat:

-d вывести лог на экран и выйти;
-b загрузить альтернативный буфер лога для просмотра, такой как event или radio;
-c очистить лог и выйти;
-f записать сообщения лога в файл. По умолчанию в stdout;
-g вывести размер указанного буфера лога и выйти;
-n установить максимальное количество ротаций лога;
-s устанавливает silent фильтром по умолчанию;
-v устанавливает формат вывода сообщений лога. По умолчанию brief.

С полным списком команд logcat можно ознакомиться на сайте developer.android.com .

ADB Shell

Android полноценная система Unix со своим Shell, к которому можно подключаться по adb.

Команда подключит ваш терминал к shell устройства и вы сможете взаимодействовать с ним используя Unix команды, cat, ls, df и другие, а также запускать скрипты.

Чтобы выполнить одну команду, не переходя в shell используйте команду оболочки следующим образом.

Команда выше выдаст информацию о количестве свободной памяти на устройстве.

Следующая команда откроет на устройстве экран с настройками.

А две последующие через ADB включают и отключают соответственно прокси в настройках сети.

Данные команды могут быть полезными, когда к настройкам устройства нет явного доступа, например на устройствах с голосовыми интерфейсами. Я часто пользуюсь ими при отладке Яндекс.Станции.

Полезные ссылки

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

Если статья помогла или понравилась, пожалуйста поделитесь ей в соцсетях.

Источник

Читайте также:  Андроид для часов gt08
Оцените статью