splitパケットとabiFiltersフィルタリングに関するパッケージング問題

2005 ワード

1、splitsパラメータの説明:
Enable:ABI分割メカニズムreset()を有効にするかどうか:ABIリストを空文字列のみにリセットし、半分はinclude、excludeとともに使用します.includeとexcludeの前に必要なincludeを使用する場合は、どのABIを含めるかを指定します.現在最も多く使用されている擬似64ビットプロセッサのarm 64-v 8 a、次にarmeabi-v 7 a excludeを使用します.デフォルトでは、すべてのABIが含まれています.ABI universalApkを削除できます:ABIをすべて含む汎用バージョンをパッケージ化するかどうか、デフォルトはfalseです
例:設定コードは次のとおりです.
splits {
    abi {
        enable true
        reset()
        include 'arm64-v8a','armeabi-v7a'
//      exclude 'armeabi'
        universalApk true
    }
}

この場合パッケージは3つのapkを生成し、それらを解凍して探求します.
一つ目:app-arm 64-v 8 a-release.apk、中にはarm 64-v 8 aフォルダのsoファイルしか含まれていません
2つ目:app-armeabi-v 7 a-release.apk、中にはarmeabi-v 7 aフォルダのsoファイルしか含まれていません
3つ目:app-universal-release.apk、arm 64-v 8 aとarmeabi-v 7 aフォルダのsoファイルが含まれます
異なるプラットフォームに基づいて異なるapkを選択
2、abiFiltersろ過
まずsplitsを設定し、abiFiltersを設定しない場合、コードは以下の通りです.
splits {
    abi {
        enable true
        reset()
        include 'arm64-v8a','armeabi-v7a','armeabi'
//      exclude 'armeabi'
        universalApk true
    }
}

この場合パッケージは4つのapkを生成します
一つ目:app-arm 64-v 8 a-release.apk、中にはarm 64-v 8 aフォルダのsoファイルしか含まれていません
2つ目:app-armeabi-v 7 a-release.apk、中にはarmeabi-v 7 aフォルダのsoファイルしか含まれていません
3つ目:app-armeabi-release.apk、中にはarmeabiフォルダのsoファイルしか含まれていません
4つ目:app-universal-release.apk、arm 64-v 8 a、armeabi-v 7 a、armeabiフォルダのsoファイルが含まれます
abiFiltersフィルタの再設定:
ndk {
    abiFilters 'arm64-v8a',"armeabi-v7a"
}

 
この場合もパッケージ化されて4つのapkが生成されます
一つ目:app-arm 64-v 8 a-release.apk、中にはarm 64-v 8 aフォルダのsoファイルしか含まれていません
2つ目:app-armeabi-v 7 a-release.apk、中にはarmeabi-v 7 aフォルダのsoファイルしか含まれていません
3つ目:app-armeabi-release.apk、中にはarmeabiフォルダのsoファイルしか含まれていません
4つ目:app-universal-release.apk、arm 64-v 8 aとarmeabi-v 7 aフォルダのsoファイルが含まれます
 
結論:abiFiltersフィルタリングはsplitsの基礎の上で、更にuniversalの中で含むいくつかのプロセッサアーキテクチャのフォルダに打ち込むことを選択します