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

时间:2015-03-19 15:07:22

标签: android linux-kernel android-ndk real-time

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

有没有办法在Android中编写Linux内核?我不知道Native代码是否更有用。应用程序应该能够尽快控制摄像头,并且Google不提供Native API。还有其他建议吗?

由于

1 个答案:

答案 0 :(得分:2)

Android作为操作系统无法保证您的用户空间应用程序具有任何实时性能。 Android用户空间与典型的Linux用户空间完全不同,这几乎不重要,因为它们都不适合硬实时要求。编写本机代码可能会有所帮助,但仍然无法获得任何响应或及时性的保证。

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

  • 尽管Android中的Linux内核没有经过极大的修改,但它与现有的Linux实时补丁程序可能不兼容。您需要从头开始修补大量Android内核。
  • Android应用无法在Android设备上简单地安装修改后的内核。内核必须单独分发并在未锁定的设备上闪存。这对大多数应用来说都是不切实际的;但是,对于专用系统来说可能是合理的。

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