• Hello World из байт-кода для JVM
    +1

    Это конечно сугубо мое мнение, просто не понимаю, зачем, видя что на ресурсе уже есть статья с разбором "Hello World", делать разбор "Hello World" другими словами. Ну сделайте вы разбор программы, которая на 2 строчки больше, вопросов бы наверное не было.


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

  • Hello World из байт-кода для JVM
    +1

    Уже было, гуглится по первой ссылке. Такой же разбор "Hello World" Зачем копия?
    https://habr.com/ru/post/264919/

  • Система получения копии памяти в устройствах под управлением Android через беспроводные каналы связи
    +2

    Продолжение следует в конце статьи звучит как угроза получить весь ваш диплом частями на Хабре)))
    Уберите лишнее, и все хорошо ляжет в одну статью)

  • Система получения копии памяти в устройствах под управлением Android через беспроводные каналы связи
    +3

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


    • Явно чья-то дипломная работа. Ужасно много воды, общих фраз и непонятно зачем добавленной информации.
    • Описание разделов в начале статьи весьма слабо соответствуют тому, что эти разделы содержат.
    • Есть ряд неточностей связанных с Android ОС, но скорее всего точное ее описание не являлось целью (хоть и обозначено в первом разделе), по этой причине обошлись общими выражениями

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

  • Работаем с USB Custom HID на Android
    0

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


    Что касается цикла, то он перебирает конечные точки по направлению передачи, а не по типу. В данном случае они могут быть либо IN, либо OUT, а тип конечной точки и тип передачи (Bulk, Isoc, Interrupt) в данном случае не рассматриваются.


    Из этого проистекает то, что цикл не дает неопределенности, все вполне логично — если точка не имеет направление IN, то она имеет направление OUT. И цель определить это, а не тип точки, тип передачи, размер пакета, частоту опроса и прочие параметры конечной точки, которые имеет место быть и важны в той или иной ситуации. Однако для того, чтобы передавать и принимать данные этого достаточно, а большего в этом примере и не нужно)

  • Работаем с USB Custom HID на Android
    0

    Ну да, в данной статье рассмотрен конкретный кейс. Цели написать универсальную библиотеку не было) Дело в том, что это custom hid и как правило назначение и номера конечных точек вы должны знать и в моем примере, даже поиск этих точек излишен по идее. Формально получить их по номерам можно, просто задефайниф значения номеров с учётом направления.
    Но если вы хотите пройтись по всем, и вывести к примеру информацию, то да, есть смысл этот кусок кода преобразовать по вашему замыслу)

  • Работаем с USB Custom HID на Android
    0

    Да, и надо учитывать, что помимо hid, есть еще много стандартных классов, разными типами передачи. К тому же, само api для usb у android весьма скромное, реализует только базовые функции, необходимые для минимальной работоспособности. Сомневаюсь, что при это кто то обратил внимание на эмулятор)

  • Работаем с USB Custom HID на Android
    0

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

  • Работаем с USB Custom HID на Android
    0

    С этим полностью согласен)

  • Работаем с USB Custom HID на Android
    0

    Согласен, это действительно так.
    Но, насколько мне известно, (возможно я конечно не прав, но все же), если поставить правильные VID и PID в фильтр, то подобные диалоги будут появляться только в случае, если вы подключите ваше устройство. (Вы также можете поставить галочку и больше не получать диалог, а сразу запускать приложение)Во всех остальных случаях, вы диалог получать не будете в принципе. Если я сейчас подключу к телефону мышку, то диалог я не получу и мышка будет спокойно работать.


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

  • Работаем с USB Custom HID на Android
    0

    Да, но при таком раскладе, ваше приложение будет реагировать на любое устройство с тем классом, который вы описали в device_filter. В данном случае вы будете реагировать на любое устройство реализующее интерфейс 07h, к примеру, т.е. Printer
    Если вы хотите реагировать на интент при подключении конкретного устройства (или серии устройств), то надо прописывать VID и PID в device_filter

  • Работаем с USB Custom HID на Android
    0

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

  • Работаем с USB Custom HID на Android
    0

    Можно и так, правда в таком случае вы скорее всего интент на подключение не получите от конкретно вашего устройстаа

  • Работаем с USB Custom HID на Android
    0

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

  • Работаем с USB Custom HID на Android
    0

    Поменять VID и PID в res/xml/device_filter.xml на свои.
    Для дальнейшего взаимодействия изменить CUSTOM_HID_INTERFACE на тот, с которым вы работаете, ну и репорты привести в соответствие с вашими.
    Если хотите, чтобы ваше приложение реагировало на подключение устройства, надо добавить интент фильтр в манифест.


    < intent-filter >
        < action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" />
    < /intent-filter >
  • Работаем с USB Custom HID на Android
    0
    Не совсем понимаю что вы хотите этим сказать. У Вас другое USB устройство с другими VID и PID. Естественно вы должны заменить их в коде. Код представленный в статье является демонстрационным и работает с usb устройством на базе STM32F429. Вам не нужно вставлять вашу строку в дополнение к моей. Вы можете удалить мою и вставить свою. Что касается предложения Вашей программы при подключении, то необходимо указать соответствующие интент фильтры в манифесте
  • Работаем с USB Custom HID на Android
    0
    Согласен, я не совсем корректно вас понял, поэтому никак не мог осознать о каких дескрипторах в классическом Bluetooth идет речь)
  • Работаем с USB Custom HID на Android
    0
    Данный метод возвращает размер переданных данных либо ошибку (Возвращает -1). Ошибка не имеет различных кодов, есть только факт возникновения.
  • Работаем с USB Custom HID на Android
    0
    У UsbDeviceConnection есть еще метод controlTransfer, который тоже может использоваться, но насколько мне известно только для передачи управляющих команд через нулевую конечную точку, через которую идет энумерация. Насчёт USART, как я уже говорил, не уверен, возможно и через либу. Видел в сети варианты использования, так что в случае необходимости решение найти можно
  • Работаем с USB Custom HID на Android
    0
    Если честно не понимаю о каких дескрипторах и репортах классического Bluetooth идет речь. Впервые слышу о подобных вещах.

    Если речь идет про протокол HID натянутый поверх Bluetooth, то это просто протокол HID, который по идее спецификой USB не является. можно пользовать где угодно. Вот только отношения к Bluetooth я так и не просек)
  • Работаем с USB Custom HID на Android
    0

    Согласен, к тому же я заметил, что android работает и с interrupt конечными точками через булк методы. Подробное поведение нигде не описано, так что можно схватить не логичное поведение

  • Работаем с USB Custom HID на Android
    0
    Если речь идет о USB классе VCP, то свои VID и PID там не нужны, можно использовать те, которые предоставляет STM для устройств на базе их контроллеров. STM также предоставляет драйвера под ОС для работы с подобными устройствами. Но если ваш проект планирует развиваться на рынке, VID и PID приобрести рано или поздно придется, а также написать свой драйвер для ОС.
    Для коммерческих продуктов стандартный драйвер не всегда хорошая идея. К примеру драйвер VCP под Windows просто ужасный. Позволяет все прекрасно запустить на малых скоростях и небольших объёмах данных, но шаг вправо, шаг влево и драйвер выдает удивительные вещи. Попробуйте предавать по VCP с STM большой объем данных и при этом щелкать мышкой на ПК (знаю, звучит глупо), на котором вы принимаете данные. Уверяю Вас, часть данных вы не получите.
  • Опыт создания сборок Linux под одноплатники с поддержкой обновлений
    0
    Про ODROID почему-то все забыли. А Ведь он тоже весьма хорош)
  • Работаем с USB Custom HID на Android
    0

    Извините, но я с Вами не согласен. Да, с одной стороны характеристики и сервисы в bluetooth low energy действительно напоминают usb hid report, но только по структуре разве что. На этом сходства заканчиваются. Работают они абсолютно по разному. Я хотел даже привести здесь пример различий, но понял, что привести его достаточно сложно, потому что отличается все кроме этой самой структуры.

  • Работаем с USB Custom HID на Android
    0

    Я так понимаю Вы говорите именно про Bluetooth, безотносительно к USB.
    Насколько мне известно Android смартфон мог играть роль Device достаточно давно по крайней мере в Bluetooth Low Energy. В классическом Bluetooth это вероятно является нововведением, к сожалению не знаю, так как при разработке чаще пользовался BLE — стабильнее работает, по крайней мере со стороны embedded железки (точнее соотношение цена/стабильность получше)

  • Работаем с USB Custom HID на Android
    0
    1. Мне на самом деле сложно предположить. Если говорить в контексте этой статьи, то как я уже говорил считаю использование USB HID, да в общем и остальных классов для взаимодействия с периферийным устройством с телефона/планшета архитектурнй ошибкой проекта, в котором все это используется. С однопланиками все понятно, там вероятно есть смысл, но в таком случае туда сам собой напрашивается Linux. Но опять же подчеркну, все зависит от задачи.

    Что касается использования USB в смартфонах в отрыве от статьи, прогнозировать сложно, но мне на данный момент сложно предположить подобное развитие событий именно для android смартфонов. USB протокол прост в реализации на уровне железа, программный стек достаточно хорошо подходит почти для всех задач и прекрасно отработан и документирован. Изменение типа разъема, спецификации и прочего это одно, а вот убрать разъем целиком, это совсем другое дело. Согласен, большую часть стандартных вещей можно и без USB провернуть, даже дебажить можно по Wi-Fi. Но боюсь закрыть все дыры таким образом не получится. К тому же я не по совсем понимаю, зачем его убирать. С разъемом наушников все понятно, а вот USB… Чип USB стоит немного, небольшой по размеру, если его убрать, места на плате не сильно уменьшится. К тому же текущая тенденция увеличения размера экрана, позволяет об этом не париться. Если речь идет о размере разъема, то если уже и он мешает, то я не знаю, насколько тонкие телефоны нужны человечеству)

    2. Кастомизация происходит на уровне периферийного устройства, к Android отношения не имеет, если речь идет о host. VID и PID придется приобрести, правда не во всех случаях)) FDTI — это не к USB. Сам протокол он не реализует, а является лишь преобразователем интерфейса. К слову о FTDI, USART на Android, насколько мне известно, тоже можно потрогать из Вашего Application
  • Работаем с USB Custom HID на Android
    0
    Возможно не совсем правильно понимаю суть всех трех вопросов, но попробую ответить:
    1. Решение прекрасно ложиться на телефоны/планшеты на android, так как нет никаких видимых причин на изменение поведения. Работа с USB хорошо документирована, поддерживается (возникают новые методы, устаревают старые) гуглом и нет предпосылок к изменению этого в будущем.

    2. Опять же не вижу причин не попасть в Google Play. Политика гугл в этом отношении сейчас достаточно жесткая, но конкретно к работе с USB, каких-то особых требований я не видел. К тому же, как правило, все что Вам нужно сделать, это в манифесте задекларировать uses-feature, остальное Google Play сделает за Вас. Вероятно у Вас возникают сомнения, когда вы видите слово Custom. Но это напрямую относится к периферийному устройству, но даже с его сертификацией, проблем не возникнет (если вы приобрели свой VID и PID). С точки зрения Android, каких то отклонений от нормы нет.

    3. Не могу Вам ответить на этот вопрос, не смотрел. Но опять же повторю, протокол достаточно стандартизирован, и если у Apple есть возможность дотянуться до USB из вашего application, Вы с большой вероятностью сможете легко подружить его с Вашим периферийным устройством.

    Повторюсь, основная магия все равно идет в железе на периферийном устройстве, по причине того, что в данном случае Android используется, как host. Вероятно, если вы захотите использовать Android в качестве device, то Вам придется пережить все танцы с бубном, связанные с дескрипторами, но это уже немного другой уровень погружения в usb стек, хоть и тоже весьма поверхностный
  • Работаем с USB Custom HID на Android
    0
    Хах, насколько мне известно нет, проект был — проект успешно завершен. Но я уверен, что не Вы один сталкиваетесь с подобными задачами) Но я все таки считаю, что это не совсем правильное архитектурное решение. Вероятно использование Linux было бы более приемлемым решением. Хотя, опять же, зависит от конкретной задачи и конечной цели
  • ИК-пульт на stm32
    0
    Особенно с учётом того, что информации здесь практически нет)
  • 5 простых шагов к созданию сервера для тестирования android REST-запросов
    0
    Верно, но и представленный вариант имеет право на существование. Статья не о том, как тестировать, а о том как быстро накидать сервер для тестирования. Конечно, можно тесты написать, можно использовать открытые API, для проверки работоспособности и т. д.)

    НО, из вашего комментария можно выудить одну очень важную вещь: Писать тесты надо, всегда)
  • 5 простых шагов к созданию сервера для тестирования android REST-запросов
    0
    У меня динамичный ip. За статичный ip, как правило необходимо доплачивать и ожидать подключения. Мне необходимо было решение здесь и сейчас, на коленках)
  • 5 простых шагов к созданию сервера для тестирования android REST-запросов
    0

    Мне хотелось попробовпть так, к тосу же я прикрутил авторизацию и хотел прикрутить регистрацию пользвателей по номеру телефона с отправкой смс.

  • 5 простых шагов к созданию сервера для тестирования android REST-запросов
    0

    Каждому свое, кому-то удобнее так, кому-то

  • Коротко о nRF51822: Энергосбережение и немного периферии
    0

    Нет, на данный момент не пробовал, но планирую в ближайшее время начать. Mesh сети доступны и на nRF51 и на nRF52, в том числе на Bluetooth 4.0 с библиотеками SoftDevices S110, S130 и S132. Библиотеки для mesh-сетей можно скачать на офф. Сайте Nordic

  • Коротко о nRF51822: Энергосбережение и немного периферии
    0
    [дублирующий комментарий, удалено]
  • Коротко о nRF51822: Энергосбережение и немного периферии
    0

    ZigBee это ZigBee)) Опять же, дальность может зависеть от того, как вы разведете антенну, какая конфигурация платы будет. Надо пробовать...

  • Коротко о nRF51822: Энергосбережение и немного периферии
    0
    Сложно сказать, лучше определять опытным путем. Зависит от множества параметров, начиная от разводки антенны и геометрии квартиры, заканчивая составом материала стен
  • Коротко о nRF51822: Энергосбережение и немного периферии
    0
    Рад слышать, что это кому-то идёт на пользу)) Следующую статью посвящу периферии, а потом ещё немного расскажу о стеке и его возможностях.
  • Коротко о nRF51822: Быстрый старт
    0
    Нет, не сталкивался, не могу поделиться опытом) Согласен, закрытые библиотеки чаще всего далеко не прозрачны, но пока что не сталкивался с ошибками стека, поэтому и причин искать выходы из ситуации не было
  • Коротко о nRF51822: Быстрый старт
    0
    Нет не пробовал, в данном примере не реализована OS, да и для большинства задач, как правило в ней нет необходимости.