通过ABI为本机代码定义层次结构

时间:2016-03-08 21:49:01

标签: gradle android-ndk

请原谅我糟糕的术语,我对NDK不是很熟悉。

我使用两个库。一个为armeabi生成本地* .so库,另一个为armeabi-v7a生成库。我想定义一个层次结构,首先使用arm v7a库,然后使用基本arm第二个。目前,我正在使用:

    ndk {
        abiFilters "armeabi-v7a", "x86", "armeabi"
    }

定义我有库的芯片组,但这只会引入决定的特定芯片组。 I.E.,如果设备是armeabi-v7a,“armeabi-v7a”* .so库将被拉入,而不是“armeabi”。如果我从配置中删除“armeabi-v7a”,“armeabi”将被拉入。

有没有办法使用flavor或其他机制在app的build.gradle中定义层次结构? This seems possible using Android.mk,但这似乎更适合我自己生成这些* .so文件,我不是。我只是想在我的项目中使用包含在.jar(s)或.aar(s)中的* .so文件。

1 个答案:

答案 0 :(得分:0)

对于一个胖APK(你在一个APK中有多个ABI值的库),Android的包管理器将处理为你正在运行的设备选择正确的库。

对于拆分APK(每个ABI只有一个APK),游戏商店负责安装正确的APK:http://tools.android.com/tech-docs/new-build-system/user-guide/apk-splits