我有一些相當大的本地庫,它們擴展了應用程序的二進制大小。我看着APK splitting,但維護和QAing多個APK不是我想要做的事情。Android架構使用?
所以我想使用ndk.abiFilters Gradle屬性在我的發佈版本中排除未使用的體系結構。 (我想單獨保留調試版本,以便我可以在x86上運行HAXM加速模擬器)。
我在考慮在我的發佈版本中只有armeabi-v7a和arm64-v8a,但我不確定是否值得擔心我放棄的其他架構的市場份額。經過很多環顧四周,我找不到任何有關ARMv6(armeabi),MIPS,x86或x86_64市場份額的參考。我的直覺告訴我,後三者幾乎不存在,但我不確定ARMv6。
我發現this link on a forum有一個使用各種體系結構的手機列表。有什麼地方更可靠嗎?也許有類似於Android版本儀表板的用戶的百分比?
如果我只是爲armeabi-v7a和arm64-v8a(或armeabi,armeabi-v7a和arm64-v8a)構建我的本機庫,可能會有其他問題嗎?
你是說armeabi-v7a是否真的需要,除非支持<4.4或需要額外的perf從v8a? –
非常。有些x86設備可能不支持arm二進制文件,但我認爲其中大部分都可以。也有mips設備,我不認爲這些包括手臂模擬。儘管(儘管我沒有找到任何統計數據來支持它),但它們相當罕見(可能比x86設備更加罕見的一種擴展順序)。 – mstorsjo
@mstorsjo你能解釋一下如何在所有體系結構中使用armeabi-v7a庫文件嗎?在我目前的方法中,我必須將庫複製到jniLibs/armeabi,jniLibs/armeabi-v7a和jniLibs/x86,這會使apk變大。 –