为了账号安全,请及时绑定邮箱和手机立即绑定

为不同架构生成APK - FFmpegMediaMetadataRetriever

为不同架构生成APK - FFmpegMediaMetadataRetriever

拉莫斯之舞 2021-09-12 14:25:25
我正忙于向我的项目添加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文件:我的问题:我应该将.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,可以指导我如何正确实施它。
查看完整描述

2 回答

?
拉风的咖菲猫

TA贡献1995条经验 获得超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'

}


查看完整回答
反对 回复 2021-09-12
  • 2 回答
  • 0 关注
  • 123 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信