2015-09-01 4 views
7

В моем приложении я использую renderscript, который имеет собственный код для x86, armeabi-v7a и mips (~ 2.7Mb каждый). Также я прочитал, что в архитектуре mips есть всего несколько устройств. Поэтому я хотел бы связать свое приложение в двух APK: универсальных (например, x86 и armeabi-v7a) и mips. Я обнаружил, что раздел разделов помогает создавать apk для mips, но универсальный apk по-прежнему содержит архитектуру mips. Итак, мой вопрос заключается в том, как исключить abi из результата apk?Исключить abi из apk

Благодаря

ответ

7

Вы можете попробовать установить еще один аромат, который содержит все, кроме MIPS. В build.gradle файл с одного из тестовых проектов, которые являются частью источников плагин Android Gradle, я нашел это:

apply from: "../commonHeader.gradle" 
buildscript { apply from: "../commonBuildScript.gradle", to: buildscript } 
apply plugin: 'com.android.application' 
android { 
    compileSdkVersion 21 
    buildToolsVersion = rootProject.ext.buildToolsVersion 
    productFlavors { 
     x86 { 
      ndk { 
       abiFilter "x86" 
      } 
     } 
     arm { 
      ndk { 
       abiFilters "armeabi-v7a", "armeabi" 
      } 
     } 
     mips { 
      ndk { 
       abiFilter "mips" 
      } 
     } 
    } 
} 

Похоже, их arm аромат в основном включает в себя два общих АБИС ARM. Вероятно, вы можете определить «универсальный» вкус, содержащий x86 и armeabi-v7a.

Они имеют другой test project, чьи build.gradle содержит:

splits { 
    abi { 
     enable true 
     reset() 
     include 'x86', 'armeabi-v7a', 'mips' 
    } 
} 

Вы могли бы использовать что-то подобное, и падение mips оттуда.

+0

В настоящее время раздел ndk {} устарел. У вас теперь есть другой способ использовать его? – Vetalll

+0

Это можно сделать без использования вкусов продукта, просто добавьте раздел ndk в раздел отладки или выпуска, если необходимо. См. Здесь http://stackoverflow.com/questions/30946365/how-to-import-only-selected-native-library-abis-from-aar – sham

+0

@Vetalll вы можете использовать android.useDeprecatedNdk = true в gradle.properties. Однако я не уверен – Killer

Смежные вопросы