1. ホーム
  2. android

[解決済み] なぜアルメアビコードではなくアルメアビ-v7aコードを使うのですか?

2022-05-31 19:48:51

質問

私の現在のプロジェクトでは、複数の.soファイルを利用しています。これらは、armeabiとarmeabi-v7aフォルダに配置されています。残念ながら、.soファイルの1つが6MBもあるので、ファイルサイズを小さくする必要があります。太いAPKファイルを持つのではなく、armeabiのファイルだけを使って、armeabi-v7aフォルダを削除したいです。

NDKのドキュメントによると、armeabi-v7aコードは拡張armeabiコードであり、追加のCPU命令を含むことができます。これは私の専門外ですが、なぜarmeabi-v7aコードとarmeabiコードの両方を持ちたがるのか疑問です。両方持っているのには、それなりの理由があるはずでしょう?

私のテストデバイスでは、これはすべてうまく動作しているように見えます。これらは ARM v7 CPU を持っています。これですべてがうまくいくと考えてよいのでしょうか?

どのように解決するのですか?

ネイティブコードが何を行うかによりますが、v7aはハードウェア浮動小数点演算をサポートしており、これは大きな違いです。 armeabiはすべてのデバイスで正常に動作しますが、かなり遅くなり、新しいデバイスのCPU能力を利用できません。あなたの特定のアプリケーションのベンチマークをとってみてください。しかし、armeabi-v7aのバイナリを削除するのは一般的に良いアイデアではありません。もしサイズを小さくする必要があるなら、古い (armeabi) デバイスと新しい (armeabi-v7a) デバイス用に 2 つの別々のアプリケーションを用意したほうがいいかもしれません。