0

我一直在为 armeabi-v7a 构建我们的 Android 应用程序。现在,为了添加对 x86 的支持,我扩展了 Application.mk:

APP_ABI := armeabi-v7a x86

我遇到的第一个问题是 libvpx 可以为 arm 或 x86 配置:

$ ./libvpx/configure --target=armv7-android-gcc ...
OR
$ ./libvpx/configure --target=x86-android-gcc

想知道如何处理多个平台。是否为两个平台创建两个不同的 libvpx 目录并在 Android.mk 中使用 if-then-else 逻辑来选择正确的目录?有没有更好的办法?

4

1 回答 1

1

是的,差不多。如果您将构建产品(由 生成make install)存储在根据 android ABI 命名的并行目录中,您可以从 Android.mk 文件中简化使用它,如下所示:

include $(CLEAR_VARS)
LOCAL_MODULE    := libvpx
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/libvpx/$(TARGET_ARCH_ABI)/include
LOCAL_SRC_FILES := libvpx/$(TARGET_ARCH_ABI)/lib/libvpx.a
include $(PREBUILT_STATIC_LIBRARY)

由于公共标头可能(应该)没有任何特定于拱门的内容,因此您还应该能够共享它们的一份副本,而不是每个拱门拥有一份副本。

于 2014-11-17T20:26:19.483 回答