为不同架构生成APK - FFmpegMediaMetadataRetriever

我正忙于向我的项目添加FFmpegMediaMetadataRetriever预构建.aar文件,以减少每个架构的 Apk 文件大小。


这篇文章在他的文章中添加了以下内容Gradle:


android {

splits {

        // Configures multiple APKs based on ABI.

        abi {

            // Enables building multiple APKs per ABI.

            enable true


            // By default all ABIs are included, so use reset() and include to specify that we only

            // want APKs for x86, armeabi-v7a, and mips.

            reset()


            // Specifies a list of ABIs that Gradle should create APKs for.

            include "x86", "x86_64", "armeabi-v7a", "arm64-v8a"


            // Specifies that we want to also generate a universal APK that includes all ABIs.

            universalApk false

        }

    }

    //...    

}

该FFmpegMediaMetadataRetriever库提供以下.aar文件:

http://img.mukewang.com/613d9d6a0001ec1c01460126.jpg

我的问题:

  • 我应该将.aar文件按libs原样放置在我的文件夹中(而不为每个架构创建文件夹),还是应该将其添加到文件夹中?

他实现了这样的版本控制:


// Map for the version code that gives each ABI a value.

def abiCodes = ['x86':1, 'x86_64':2, 'armeabi-v7a':3, 'arm64-v8a':4]


// APKs for the same app that all have the same version information.

android.applicationVariants.all { variant ->

    // Assigns a different version code for each output APK.

    variant.outputs.each {

        output ->

            def abiName = output.getFilter(OutputFile.ABI)

            output.versionCodeOverride = abiCodes.get(abiName, 0) * 100000 + variant.versionCode

    }

}

我正在寻找可能使用过该.aar文件的人FFmpegMediaMetadataRetriever,可以指导我如何正确实施它。


拉莫斯之舞
浏览 124回答 2
2回答

拉风的咖菲猫

您可以使用指定所需目标 ABI 的产品风格生成不同的 APK。然后,您可以根据每种产品风格指定要使用的 FMMR gradle 依赖项或独立的 AAR 文件。请参阅此 build.gradle 文件以供参考:apply plugin: 'com.android.application'apply plugin: 'kotlin-android'apply plugin: 'kotlin-android-extensions'android {    compileSdkVersion 28    defaultConfig {        applicationId "com.wseemann.example"        minSdkVersion 15        targetSdkVersion 28        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }    buildTypes {        release {            minifyEnabled false            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'        }    }    flavorDimensions "version"    productFlavors {        fat {            ndk {                abiFilters "armeabi", "armeabi-v7a", "x86", "mips", "x86_64", "arm64-v8a"            }        }        armeabi {            ndk {                abiFilter "armeabi"            }        }        armeabi_v7a {            ndk {                abiFilter "armeabi-v7a"            }        }        x86 {            ndk {                abiFilter "x86"            }        }        mips {            ndk {                abiFilter "mips"            }        }        x86_64 {            ndk {                abiFilter "x86_64"            }        }        arm64_v8a {            ndk {                abiFilter "arm64-v8a"            }        }    }}dependencies {    implementation fileTree(dir: 'libs', include: ['*.jar'])    implementation"org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"    implementation 'com.android.support:appcompat-v7:28.0.0-rc01'    implementation 'com.android.support.constraint:constraint-layout:1.1.2'    testImplementation 'junit:junit:4.12'    androidTestImplementation 'com.android.support.test:runner:1.0.2'    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'    // Product flavor, ABI specific dependencies    fatImplementation 'com.github.wseemann:FFmpegMediaMetadataRetriever:1.0.14'    armeabiImplementation 'com.github.wseemann:FFmpegMediaMetadataRetriever-armeabi:1.0.14'    armeabi_v7aImplementation'com.github.wseemann:FFmpegMediaMetadataRetriever-armeabi-v7a:1.0.14'    x86Implementation 'com.github.wseemann:FFmpegMediaMetadataRetriever-x86:1.0.14'    mipsImplementation 'com.github.wseemann:FFmpegMediaMetadataRetriever-mips:1.0.14'    x86_64Implementation 'com.github.wseemann:FFmpegMediaMetadataRetriever-x86_64:1.0.14'    arm64_v8aImplementation 'com.github.wseemann:FFmpegMediaMetadataRetriever-arm64-v8a:1.0.14'}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java