In meinem aktuellen Setup-Build für Builds von Android-Native-Code ist APP_ABI für armeabi-v7a in Application.mk definiert. Für einige der Bibliotheken, die ich baue, sehe ich, dass LOCAL_ARM_MODE als Arm in Android.mk definiert ist.
Ich muss dieses Setup erweitern, um auch für x86 zu bauen. Von einem anderen Beitrag scheint es mit "APP_ABI = alle" eine bessere Lösung zu sein. Ich frage mich nur, ob LOCAL_ARM_MODE auch geändert werden muss. Was macht diese Flagge überhaupt?
Der LOCAL_ARM_MODE kann verwendet werden, um die Plattform zu definieren, auf die Ihre Anwendung ausgerichtet ist. Um Ihr Android.mk-Setup auch für x86 einzurichten, fügen Sie einfach die erforderlichen Informationen in Ihre Android.mk-Datei ein - z. B .:
%Vor%Weitere Informationen über verschiedene Optionen zum Definieren Ihres Anwendungsziels finden Sie in / docs / Android-mk .
Obwohl dies ein alter Beitrag ist, möchte ich nur darauf hinweisen, dass die angenommene Antwort nicht korrekt ist.
LOCAL_ARM_MODE kann entweder auf "Arm" oder "Daumen" eingestellt werden und ist standardmäßig auf "Daumen" eingestellt. "Daumen" verwendet 16-Bit-Anweisungen, während "Arm" 32-Bit-Anweisungen verwendet. Die 16-Bit-Anweisungen sind zwar kleiner, können aber bei einigen leistungskritischen Anwendungen zu langsam sein. Aus diesem Grund wurde in einigen Bibliotheken das Flag "arm" gesetzt, um den Build mit 32-Bit-Anweisungen sicherzustellen. Natürlich ist dieses Flag nur dann sinnvoll, wenn Sie für die Armarchitekturen bauen.
Andererseits ist APP_ABI das richtige Flag, mit dem Sie umschalten können, wenn Sie für verschiedene Architekturen wie armeabi- * oder x86 und viele mehr erstellen möchten.
Weitere Informationen finden Sie in der Dokumentation zu Android.mk
Tags und Links android android-ndk