android - Nexus 9 中的 64 位媒体服务器

标签 android 64-bit android-5.0-lollipop stagefright

Nexus 9 声称是 64 位设备,但所有媒体库都是 32 位,如 mediaserver , stagefright , OMX , MediaPlayerservice ETC 。谁能帮助我知道为什么会这样?我需要将它们设为 64 位,我该怎么做? 提前致谢:)

最佳答案

在当前的 AOSP 堆栈中,有些代码需要由 OMX 等供应商开发,或者依赖于 widevine libs 等公共(public)库。由于并非所有代码部分都由 Google 处理,并且并非所有部分都已完全迁移,因此当前代码已为 media 相关部分启用 32 位代码。

要启用完整的 64 位 构建,请执行以下更改并重新编译整个 AOSP 平台。请注意,基本假设是平台的其余部分已迁移到64 位:

  1. 通过禁用 this line 来启用 64 位媒体服务器 .

  2. 通过禁用 this line 来启用 64 位 MediaPlayerService .

  3. 将底层 OMX 组件迁移到 64 位 后,在 libstagefright 的 Android.mk 中添加一行 仅针对特定情况启用32 位 构建。 ACodecOMXCodec 的相关宏为 OMX_ANDROID_COMPILE_AS_32BIT_ON_64BIT_PLATFORMS

  4. OMX 的 header 也必须在 frameworks/native 中进行相应编译,如 here 。请确保启用真正的64位构建。

  5. 通过禁用 this line 来启用 64 位 medialoggerservice .

  6. 如果您希望使用 drmserver,请禁用 this line对于 64 位 构建。

通过这些更改,您应该能够使用 64 位 mediaserver。此列表包括 SurfaceFlingerRS,我希望能够相应地处理它们。

关于android - Nexus 9 中的 64 位媒体服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29935571/

相关文章:

android - 如何开始在 Android 上开发社交多人游戏

android - 如何在 Android 上找到默认字体?

android - 服务没有按应有的方式唤醒设备

android - AVD 停留在 "Android is starting"

java - Android camera2 连拍速度太慢

android - 绘制单元格区域数独

android - WindowManager 中 imageView 的动画在 android 4.xx 中不起作用

jvm - 此 java 实例不支持 64 位 JVM

delphi - 需要知道exe文件是否至少包含一个图标

c++ - 一个简单的 SDL 应用程序不适用于使用 Visual Studio 2012 的 x64 配置