抑制 UsbRequestJNI / ALOGD 日志消息

dav*_*281 5 java android usbserial android-usb

我正在开发一个 Android 应用程序,它从一些自定义硬件传输串行数据。我正在使用 mik3y 的usb-serial-for-android库以 OTG 模式通过 USB 获取串行数据,经过一些调整后工作正常。

\n\n

然而,对于通过 USB 接口的每笔交易,UsbRequestJNI都会记录一条initclose消息。这使得 LogCat 每秒被数千条日志消息淹没(注意时间戳):

\n\n
02-17 09:30:21.590    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.590    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.594    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.594    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.598    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.598    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.602    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.602    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.606    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.606    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.610    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.610    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n02-17 09:30:21.614    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 close\n02-17 09:30:21.614    2332-2349/com.dummydomain.app D/UsbRequestJNI\xef\xb9\x95 init\n
Run Code Online (Sandbox Code Playgroud)\n\n

我知道我可以在 IDE 中过滤这些内容,但我想阻止它们,这样它们就不会占用调试器带宽。

\n\n

据我所知,UsbRequestJNI操作系统提供了 JNI 库,因此我不能只编辑源代码。那么我怎样才能告诉它停止记录这些调试消息,同时仍然运行调试版本,以便我可以看到其他相关的调试信息?

\n\n

谷歌搜索仅产生了this,这基本上是相同的问题,但没有适用于此的解决方案。

\n\n

(我的开发设备运行的是 Android 4.3,我正在 Android Studio 1.0.1 上进行开发)

\n\n

更新:刚刚找到 UsbRequest 的源,相关行是 ALOGD 语句(第 45 行和 71 行)。所以我想问题变成了:如何抑制 ALOGD 消息?

\n\n

更新2:我已经setprop log.tag.UsbRequestJNI SUPPRESS按照这个答案尝试过,但令人沮丧的是它对我的设备没有影响。

\n

nyh*_*lku 3

对于后代来说,这些消息似乎来自 UsbRequest initialize() 和 close() 方法,因此通过重用 UsbRequest 对象而不是创建新对象,主要解决了这个问题,并且可能还略微提高了性能。