NDK - 从静态库构建ARMv5 / ARMv7共享库

时间:2013-08-12 08:17:55

标签: android android-ndk java-native-interface shared-libraries

我有两个静态库,我是从指定项目构建的。

ARMv5 / myLib.a
ARMv7 / myLib.a

现在,我想使用这些库并为ARMv5和ARMV7平台构建两个共享库。

有没有办法指定我想使用静态库的两个版本的事实? 就目前而言,我在我的ANT脚本中做了一个糟糕的伎俩,其中包括:

  1. 复制静态ARMv5库。
  2. 构建共享库( ARMv5 )。
  3. 删除ARMv5静态lib并复制ARMv7版本。
  4. 再次构建共享库( ARMv7 )。
  5. 我知道有

    "APP_ABI := armeabi armeabi-v7a" 
    

    但是如何告诉他我想要从两个独立的静态库构建而不仅仅是从一个构建?

    此致

1 个答案:

答案 0 :(得分:1)

可能不是最好的方法,但是,您可以尝试在Android.mk中使用if else语句并检查APP_ABI值并使用相应的库。

ifeq ($(APP_ABI), armeabi-v7a)
  LOCAL_SRC_FILES := ARMv7/myLib.a
else
  LOCAL_SRC_FILES := ARMv5/myLib.a
endif

如果您直接链接它们,请使用LOCAL_STATIC_LIBRARIES。当然,您的Application.mk应该包含您声明的行:

APP_ABI := armeabi armeabi-v7a