私が書いたプログラムは armeabi、armeabi-v7a、arm64-v8a、x86 の 4 つの so ファイルを削除して APK サイズを削減したかったのですが、一部のモデルの一部の機能を削除すると、エラーが報告されます。 WeChat は armeabi-v7a や arm64-v8a を使わずに armeabi so ファイルのみをコンパイルしていることがわかりました。x86 はさまざまなプロセッサを搭載した携帯電話でどのように動作しますか?
armeabi は armeabi、armeabi-v7a、arm64-v8a での実行をサポートしており、一部の x86 もサポートしているためです。基本的に mips アーキテクチャを採用した携帯電話は市場に存在しないため、理論上は 1 つのアルメアビですべての携帯電話をサポートできます。 armeabi は v7 v8 で実行されますが、効率は異なります。
Android の so ファイルについて知っておくべきことについては、こちらをお読みください
すべての x86/x86_64/armeabi-v7a/arm64-v8a デバイスは armeabi アーキテクチャの .so ファイルをサポートしているため、他の ABI から .so ファイルを削除することが APK サイズを削減する良い方法であるようです。しかし、実際はそうではありません。これは、関数ライブラリのパフォーマンスと互換性に影響を与えるだけではありません。
x86 デバイスは ARM タイプの関数ライブラリを非常にうまく実行できますが、特に古いデバイスの場合、クラッシュが 100% 発生しないという保証はありません。 64 ビット デバイス (arm64-v8a、x86_64、mips64) は 32 ビット関数ライブラリを実行できますが、32 ビット モードで実行している場合、64 ビット プラットフォームで 32 ビット バージョンの ART および Android コンポーネントを実行すると、64 ビット関数ライブラリが失われます。 -ビットのパフォーマンスの最適化 (ART、WebView、メディアなど)。
動的に読み込まれる可能性があります。
まず第一に、armeabi は他のアーキテクチャ armeabi-v7a、arm64-v8a、および x86 と互換性があります。次に、WeChat armeabi ディレクトリを確認しました。このディレクトリに他のアーキテクチャの SO ファイルを配置し、コードを通じてどのアーキテクチャの SO ファイルをロードするかを選択することもできます。
armeabi は armeabi、armeabi-v7a、arm64-v8a での実行をサポートしており、一部の x86 もサポートしているためです。基本的に mips アーキテクチャを採用した携帯電話は市場に存在しないため、理論上は 1 つのアルメアビですべての携帯電話をサポートできます。 armeabi は v7 v8 で実行されますが、効率は異なります。
Android の so ファイルについて知っておくべきことについては、こちらをお読みください
すべての x86/x86_64/armeabi-v7a/arm64-v8a デバイスは armeabi アーキテクチャの .so ファイルをサポートしているため、他の ABI から .so ファイルを削除することが APK サイズを削減する良い方法であるようです。しかし、実際はそうではありません。これは、関数ライブラリのパフォーマンスと互換性に影響を与えるだけではありません。
x86 デバイスは ARM タイプの関数ライブラリを非常にうまく実行できますが、特に古いデバイスの場合、クラッシュが 100% 発生しないという保証はありません。 64 ビット デバイス (arm64-v8a、x86_64、mips64) は 32 ビット関数ライブラリを実行できますが、32 ビット モードで実行している場合、64 ビット プラットフォームで 32 ビット バージョンの ART および Android コンポーネントを実行すると、64 ビット関数ライブラリが失われます。 -ビットのパフォーマンスの最適化 (ART、WebView、メディアなど)。
動的に読み込まれる可能性があります。
まず第一に、armeabi は他のアーキテクチャ armeabi-v7a、arm64-v8a、および x86 と互換性があります。次に、WeChat armeabi ディレクトリを確認しました。このディレクトリに他のアーキテクチャの SO ファイルを配置し、コードを通じてどのアーキテクチャの SO ファイルをロードするかを選択することもできます。