是否有类似 Linux 平台开发指南之类的文档?
例如,在玩了一些 SDK 之后我想到的一些问题: 1. CameraDetector(或任何其他检测器)是否应该在与主 GUI 线程不同的线程中使用?它是以某种方式阻塞还是它自己产生另一个线程?2. 执行侦听器通知时 - 它是创建检测器的同一线程吗?3. 检测器的启停成本高吗?应该在应用程序启动和关闭时完成一次,还是在用户执行我应该使用检测器的某些操作时按需完成?
其他检测器的行为方式是否相同?还有其他使用 SDK 的最佳实践吗?
是否有类似 Linux 平台开发指南之类的文档?
例如,在玩了一些 SDK 之后我想到的一些问题: 1. CameraDetector(或任何其他检测器)是否应该在与主 GUI 线程不同的线程中使用?它是以某种方式阻塞还是它自己产生另一个线程?2. 执行侦听器通知时 - 它是创建检测器的同一线程吗?3. 检测器的启停成本高吗?应该在应用程序启动和关闭时完成一次,还是在用户执行我应该使用检测器的某些操作时按需完成?
其他检测器的行为方式是否相同?还有其他使用 SDK 的最佳实践吗?
CameraDetector::start()
创建一个连接到相机并开始处理帧的后台线程。 CameraDetector::stop()
向后台线程发出信号以断开与相机的连接,停止处理帧并关闭。
因此,调用start()
and会有一些开销stop()
,但这是否会影响主线程的性能取决于您自己的评估。我建议在主线程上做作为初始方法,看看。
回调是在后台线程上进行的。
关于(a)在客户端启动时启动一次并在客户端关闭时停止与(b)在需要完成检测工作时根据需要启动和停止的替代方案,实际上并没有一个最佳实践。如前所述,在活动会话期间(即之后start()
和之前stop()
),有额外的资源在使用中,因此如果会话在客户端应用程序的更大上下文中不频繁,这是一个可能使事情偏向于 (b) 的因素。
此外,在 CameraDetector 的特定情况下,摄像头本身可能是其他应用程序也有兴趣访问的硬件资源,因此尽量减少对其他应用程序的使用会更友好。