2015-02-17 7 views
2

Я разрабатываю приложение для Android, которое передает потоковые данные из определенного пользовательского оборудования. Я использую библиотеку mik3y usb-serial-for-android, чтобы получить последовательные данные через USB в режиме OTG, который после некоторых настроек работает нормально.Подавлять сообщения журнала UsbRequestJNI/ALOGD

Однако для каждой транзакции через интерфейс USB UsbRequestJNI регистрирует сообщение init и close. Это заболачивание LogCat с тысячами лог сообщений в секунду (обратите внимание на временные метки):

02-17 09:30:21.590 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ close 
02-17 09:30:21.590 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ init 
02-17 09:30:21.594 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ close 
02-17 09:30:21.594 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ init 
02-17 09:30:21.598 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ close 
02-17 09:30:21.598 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ init 
02-17 09:30:21.602 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ close 
02-17 09:30:21.602 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ init 
02-17 09:30:21.606 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ close 
02-17 09:30:21.606 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ init 
02-17 09:30:21.610 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ close 
02-17 09:30:21.610 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ init 
02-17 09:30:21.614 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ close 
02-17 09:30:21.614 2332-2349/com.dummydomain.app D/UsbRequestJNI﹕ init 

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

Из того, что я могу собрать, UsbRequestJNI - это библиотека JNI, предоставляемая операционной системой, поэтому я не могу просто отредактировать исходный код. Итак, как я могу сказать, чтобы остановить регистрацию этих отладочных сообщений, все еще выполняя сборку отладки, чтобы я мог видеть другую соответствующую информацию об отладке?

В Googling около произведено только this, что в основном та же проблема, но без разрешения, которое применимо здесь.

(Мое устройство развития работает Android 4.3 и я разрабатываю на Android Studio 1.0.1)

UPDATE: Just found the source для UsbRequest, соответствующие строки являются ALOGD statments (строки 45 и 71). Поэтому, я думаю, вопрос становится следующим: как я могу подавлять сообщения ALOGD?

UPDATE 2: Я пробовал setprop log.tag.UsbRequestJNI SUPPRESS как за this answer, но удручающе это не имеет никакого эффекта на устройстве.

+1

Посмотрев на ваши ссылки, я начал подозревать, что вы, вероятно, решите, что это повторное использование запросов USB. Дальнейший поиск нашел упоминание о том, как именно именно это произошло в списке изменений драйвера phidgets. Поэтому, если вы хотите продолжить выяснение, как это сделать, похоже, что это было сделано раньше и, как утверждается, работает. –

+0

Спасибо за комментарий @chris. В случае, похоже, что в дополнение к проблеме с превышением скорости, драйверы (по крайней мере, на моем конкретном оборудовании) просто слишком ошибочны и ненадежны, поэтому я переключился с Android на стандартное аппаратное обеспечение ПК. Спасибо хоть! – davidf2281

ответ

2

Просто поразите это сам пакетом usb-serial-for-android mik3y. Я смог обойти это, отключив чтение асинхронных сообщений. Измените эту строку:

mEnableAsyncReads = (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1);

читать:

mEnableAsyncReads = false;

В настоящее время существует целый ряд открытых запросов выдвижных против кода mik3y, а может быть они исправлены в вилке? См. https://github.com/mik3y/usb-serial-for-android/network

+0

Это работало нормально, хотя мне интересно, есть ли какие-либо другие проблемы (с точки зрения производительности) с использованием этого метода. +1 Спасибо! – Behr