gpt4 book ai didi

Android:如何构建和替换修改后的 AOSP 代码

转载 作者:太空狗 更新时间:2023-10-29 16:17:10 25 4
gpt4 key购买 nike

在我的视频 session 应用程序中使用 Jelly bean 之前,我开始使用怯场框架在 Android 中实现硬件解码器。
我已经下载并构建了Mac系统中的android源代码。我不清楚与 AOSP 合作的整个想法。我的问题是(关于怯场框架)

  1. AOSP 构建后我在哪里可以找到 libstagefright.so?

  2. 如果我在我的类中使用 OMX 编解码器进行解码,我应该如何将 libstagefright.so 链接到我的应用程序的 native 代码?如果我通过复制 libstagefright.so 并通过 make 文件链接它来构建我的 native 代码是这样吗?

  3. 如何在我的应用程序中使用它?如果我通过 System.loadLibrary("") 加载它,它会工作吗??

更新:
我已经尝试过 Ganesh 的建议。但是当我尝试使用 NDK 构建项目时,它没有将 header 包含为 LOCAL_C_INCLUDES。

这是我的android.mk

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_LDLIBS := -llog
LOCAL_MODULE := custom_decoder

LOCAL_C_INCLUDES := $(LOCAL_PATH)\includes \
frameworks/av/media/libstagefright/include \
frameworks/native/include/media/openmax \
frameworks/base/include/media/stagefright

LOCAL_SHARED_LIBRARIES := \
libstagefright libstagefright_omx libstagefright_foundation libutils liblog

LOCAL_SRC_FILES := custom_decoder_jni.cpp custom_decoder.cpp

include $(BUILD_SHARED_LIBRARY)

错误是在读取 AOSP 的包含时从 custom_decoder.h 显示的。

 fatal error: DataSource.h: No such file or directory. 

我没有在我的项目中包含任何 AOSP .so(根据 Ganesh 在评论 2 中的建议)。我应该这样做吗?

我还应该做些什么来构建它......

最佳答案

您无需重建 libstagefright.so 即可在您的应用中使用它。您可以从您的设备甚至模拟器中adb pull 库。

请注意,libstagefright/system/lib 中的许多组件进行通信,其中一些特定于 SoC 供应商(例如高通)或 ODM(例如三星)。 Stagefright 的某些用途可能需要特定于设备的怪癖。这就是为什么 OpenMAX IL 在安卓上还没有正式曝光。另一方面, OpneMAX AL 自 2011 年 11 月起正式支持。

无论如何,libstagefright 不能直接从 Java 访问。如果您正在寻找用于视频通信的 Java 解决方案,您应该首先查看优秀的 libstreaming图书馆。

使用 libstagefright 的好处通常是当您拥有只需要连接到高效编解码器的 native (C/C++) 库时。

这是一个不错的 answer关于Android硬件解码器的相关问题。

关于Android:如何构建和替换修改后的 AOSP 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24201178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com