2012-05-07 46 views
2

我在其中找到,如果我没看错的设计有U型HAL(用户空间硬件抽象层),因此OEM厂商可以编写不必在GPL许可证下接触到外面的世界礼仪司机的Android源外部文件夹。Android“外部”文件夹功能?

随着Android的发展,我发现越来越多的文件夹被纳入外部文件夹可能是谷歌正在增加更多的支持与每个版本的Android,如freetype,Yaffs2。

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

我不知道这是如何是整个逻辑可以嵌入在外部文件夹以及如何与较低层(可以是sysfs的)进行通信?是否有任何博客或描述外部文件夹的使用,功能和HOWTO文档?

感谢您的帮助!

+0

究竟哪个文件夹?我怀疑你没有在* kernel *源代码中查找某些内容,而是在用户空间的android源代码中包含适用于android的外部开发项目的文件夹。除了SDK和NDK apis中记录的部分之外,这些功能都不能正式提供给其他应用程序使用 - 其中一些未公开的部分可能因为许可问题而被阻止,其他实际上可能会工作,但在将来的发行版中可能会发生变化,依赖于这种“不稳定”apis的应用程序。 –

+0

对不起克里斯,我指的是Android源代码中的** Hardware **文件夹(** AOSP **),如果您有任何关于在Android源代码而不是在Kernel中抽象驱动程序功能的信息,请告诉我。 –

+0

您可以参考上eLinux http://elinux.org/Android_Source_Code_Description –

回答

5

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

如果您正在寻找把用户空间的硬件驱动程序的硬件持有一些的地方。这也是Android硬件抽象层(HAL)的源代码驻留的地方。所述设备文件夹还包含一些装置的一些硬件特定的源和可以是一个合适的地方加入这样额外的代码。

有关在AOSP文件夹的总体布局的详细信息请参阅我的回答to this question

+0

大这个Android源代码说明!是的,我指的是您提到的** Hardware **文件夹。我的学习领域非常有趣,可以知道Android如何与底层Linux内核进行通信,而无需将GPL许可证带入图片并隐藏公有领域的专有代码。您是否可以提供有关** Hardware **文件夹的更多信息,以及如果在任何情况下都记录在博客或您的经验中,演示此功能的示例应用程序? –

+1

我看到外部文件夹有ALSA,YAFFS2等的实现,这些文件是否代表GPL许可证?如果是的话,我们怎么才能把它变成android? –