实时Android内核或应用程序开发

实时Android内核或应用程序开发,android,linux-kernel,android-ndk,real-time,Android,Linux Kernel,Android Ndk,Real Time,我想问你是否有一种在Android中创建实时应用程序的方法。我知道Android不支持实时应用程序,所以我想知道是否有其他方法来实现它。可以使用另一个(更实时的)内核来完成吗 有没有办法在安卓系统中编程Linux内核?我不知道本机代码是否更有用。该应用程序应该能够控制相机的led尽可能快,没有谷歌提供的原生API。还有其他建议吗 谢谢Android操作系统无法保证用户空间应用程序的实时性能。Android用户空间与典型的Linux用户空间大不相同,因为两者都不适合硬实时需求,因此几乎不重要。编写

我想问你是否有一种在Android中创建实时应用程序的方法。我知道Android不支持实时应用程序,所以我想知道是否有其他方法来实现它。可以使用另一个(更实时的)内核来完成吗

有没有办法在安卓系统中编程Linux内核?我不知道本机代码是否更有用。该应用程序应该能够控制相机的led尽可能快,没有谷歌提供的原生API。还有其他建议吗


谢谢

Android操作系统无法保证用户空间应用程序的实时性能。Android用户空间与典型的Linux用户空间大不相同,因为两者都不适合硬实时需求,因此几乎不重要。编写本机代码可能会有所帮助,但仍然无法保证响应或及时性

您可以通过修改内核来实现伪实时性能。增加内核中的抢占量(例如抢占补丁所做的修改)并将实时代码实现为由高优先级中断调用的中断处理程序例程,可以让您在10到100微秒内实现响应时间。不幸的是,这种方法存在几个问题:

  • 虽然安卓系统中的Linux内核并没有经过很大的修改,但它的不同程度足以使现有的Linux实时补丁程序变得不兼容。您需要从头开始修补大量添加的Android内核
  • Android应用程序不能简单地在Android设备上安装修改过的内核。内核必须单独分发,并在未锁定的设备上闪存。这对于大多数应用来说都是不切实际的;然而,对于专门构建的系统来说,这可能是合理的

最后,如果您可以选择开发和连接定制硬件,您可以轻松地将实时LED控制卸载到一个简单的微控制器上。大多数设备都有可以连接到微控制器的接口。当然,如果您正在构建自己的设备,那么您有许多与微控制器接口的选项。

基于您之前关于LED的问题,我认为您要么必须使用自定义ROM,要么意识到您正在尝试让汽车飞起来。如果是摄像头LED/闪光灯,那么你就进入了硬件驱动程序的深层世界。一个建议是将选通LED卸载到定制USB硬件上,该硬件可以通过USB附件API调用。