几周前,我写了一篇文章,劝诱Android开发人员更加自力更生,而不是期望谷歌能够为Android和相关技术做出任何可以想到的补充。Android社区不需要谷歌的帮助来创造更好的市场。Android社区不需要谷歌的帮助来创建标准化的广告网络api。等等。
在有可能的地方自力更生的原因是因为有很多地方都是这样不有可能,谷歌是完成任务的唯一可行答案。
证据A: Linux内核补丁。
虽然Linux是Android的核心,但它与你在台式机、服务器甚至上网本上运行的内核不同。例如,针对安全和移动设备性能进行了各种修改。这些变化不仅会影响内核本身,还会影响为Android编写的任何驱动程序。Android的驱动程序可能需要专门针对Android,而不是在“普通的”Linux上工作。
对于这些情况,通常的方法是让公司做出改变(谷歌和其他OHA成员)与Linux内核人员合作,找出如何将这些改变合并到内核中,或者找到其他方法来达到同样的目的。这样,这些变化将成为未来内核的主流,为以前特定于android的驱动程序更广泛地使用铺平道路。
曾几何时,Android的核心团队开始了这个过程。Greg Kroah-Hartman指出然而,这些贡献现在已经被删除了,因为它们被抛弃了。如果没有迹象表明在解决内核贡献的问题方面有稳定的进展,那么这些贡献就会从暂存区域撤出。对于Linux内核团队来说,这是一个合理的策略。
虽然独立的Android开发者可以创建市场和广告网络api,但对这些人来说,在这些内核补丁上工作要困难得多。正如Kroah-Hartman先生所说:
当Android代码被合并到staging树中时,许多内核开发人员检查了代码并指出了需要清理和修改的地方,以使其被接受。许多这些更改会影响内核/用户空间边界,因此,如果进行了这些内核更改,那么对Android用户空间逻辑的一些更改也需要进行更改,从而阻止除了谷歌员工以外的任何人进行必要的更改。
当然,这是从一开始就困扰着这个项目的android作为开源的整体问题的一部分。这些领域不时出现明显的势头,但这种势头似乎永远不会持续,至少不会以公开可见的方式持续。我经常给谷歌怀疑的好处,假设改进出现在我没有看到的地方…就像将代码更改上游到Linux中一样。显然,这也没有发生。
开发人员只需要记住谷歌花费在谷歌之外可以完成的事情上的时间越多,他们花在只有谷歌可以完成的事情上的时间就越少,我们希望谷歌某天会再次决定这么做。