3

我在 Android 源代码中找到External文件夹,如果我没记错的话,它被设计为具有 U-HAL(用户空间硬件抽象层),因此 OEM 可以编写不需要在 GPL 许可下暴露于外部世界的专有驱动程序。

随着 Android 的发展,我发现越来越多的文件夹包含在External文件夹中,这可能是 Google 正在为每个版本的 Android 添加更多支持,例如 freetype、Yaffs2。

我想知道如何在应用程序中使用外部文件夹逻辑?这些是作为共享库(.so)生成的,而应用程序又将其用于功能吗?

我不确定整个适当的逻辑如何嵌入到外部文件夹中,以及它如何与较低层(可能是 sysfs)进行通信?是否有任何描述外部文件夹使用、功能和 HowTo 的博客或文档?

感谢你的帮助!

4

1 回答 1

5

外部文件夹并非主要用于用户空间硬件抽象。外部是指外部开源库。这意味着 Android 平台所依赖但主要不是由 Android 开源项目开发和维护的库。典型的例子是浏览器的 webkit,字体的 FreeType,数据库的 SqlLite 等等。随着更多功能被添加到 Android 中,更多的这些库包含在 external.xml 中。

如果您正在寻找放置用户空间硬件驱动程序的地方,硬件文件夹包含其中的一些。这也是 Android 硬件抽象层 (HAL) 所在的源。设备文件夹还包含某些设备的一些硬件特定源,并且可能是添加类似这样的附加代码的合适位置。

有关 AOSP 中文件夹总体布局的更多信息,请参阅我对这个问题的回答

于 2012-05-08T09:38:53.860 回答