所以我一直在查看来自 Android git 各个部分的代码,但是当我尝试加载和编译其中的许多(相机、媒体播放器等)时,它们引用了 SDK 的类和部分,这些部分甚至不可用我的 SDK 版本更新到 2.2。(例如位图配置选项 inNativeAlloc)
是否有理由认为这些不在提供给开发人员的 SDK 中?
所以我一直在查看来自 Android git 各个部分的代码,但是当我尝试加载和编译其中的许多(相机、媒体播放器等)时,它们引用了 SDK 的类和部分,这些部分甚至不可用我的 SDK 版本更新到 2.2。(例如位图配置选项 inNativeAlloc)
是否有理由认为这些不在提供给开发人员的 SDK 中?
如果您想从 android 开源项目 (ASOP) 编译应用程序,例如浏览器、相机、媒体播放器等。您必须在 Linux 或 Mac 上构建。您无法在 Windows 上编译源代码。
有关构建源代码和操作系统要求的信息,请参阅获取 Android 源代码
是否有理由认为这些不在提供给开发人员的 SDK 中?
有几种可能性,取决于“这些”是什么。
我的印象是,大多数情况是他们根本还没有解决这个问题。通过“还没有解决”,我的意思是他们还没有最终确定他们想要一直坚持的类和方法签名。核心 Android 团队试图将不同版本之间的 API 破坏量降至最低,并且通常会成功(破坏往往是更多的行为变化而不是方法签名的变化)。获得所有利益相关者对给定代码块的支持需要相当大的努力。Android 中有大量代码,其中一些可能可以放在 SDK 中,但与先进的 Android 功能相比,分配给这些杂务的时间只有这么多。
在某些情况下,答案是安全性——除了没有稳定的 API 之外,他们还不知道如何保护它,所以他们只提供给固件开发人员使用。
在少数情况下,答案可能是性能——他们适当调整了所需的用例,但外部开发人员可能会尝试其他未优化的用例。
我相信还有其他可能的原因。