Nexus 9声称为64位设备,但所有媒体库都是32位,如mediaserver
,stagefright
,OMX
,MediaPlayerservice
等。任何人都可以帮助我知道为什么会这样吗?我需要让它们64位,我该怎么做?
在此先感谢:)
答案 0 :(得分:3)
在当前的AOSP
堆栈中,有部分代码需要从OMX
等供应商进行开发,或者依赖于widevine
libs等公共库。由于并非所有代码部分都由Google处理,并且并非所有部分都已完全迁移,因此当前代码已为media
相关部分启用了32位代码。
要启用完整的64-bit
版本,请执行以下更改并重新编译整个AOSP
平台。请注意,基本假设是平台的其余部分已经迁移到64-bit
:
通过禁用this line启用64位mediaserver
。
通过禁用this line启用64位MediaPlayerService
。
将基础OMX
组件迁移到64-bit
后,在Android.mk
libstagefright
中添加一行,以便仅针对特定情况启用32-bit
版本。 ACodec
和OMXCodec
的相关宏是OMX_ANDROID_COMPILE_AS_32BIT_ON_64BIT_PLATFORMS
OMX
的标头也必须在frameworks/native
中相应地编译为here。请确保启用了真正的64-bit
版本。
通过禁用this line启用64位medialoggerservice
。
如果您希望使用drmserver
,请为64-bit
版本停用this line。
通过这些更改,您应该能够使用64-bit
mediaserver
。此列表不包括SurfaceFlinger
或RS
,我希望相应地对其进行处理。