我一直在为armeabi-v7a构建我们的Android应用程序。现在,为了添加对x86的支持,我扩展了Application.mk:
APP_ABI := armeabi-v7a x86
我遇到的第一个问题是可以为arm或x86配置libvpx:
$ ./libvpx/configure --target=armv7-android-gcc ...
OR
$ ./libvpx/configure --target=x86-android-gcc
想知道如何处理多个平台。是否为两个平台创建了两个不同的libvpx目录,并在Android.mk中使用if-then-else逻辑来选择正确的目录?还有更好的方法吗?
答案 0 :(得分: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)
由于公共标题可能(应该)没有任何特定于arch的内容,因此您还应该能够共享它们的一个副本,而不是每个arch有一个副本。