1
我在我的項目中使用java文件和本地C++代碼。我想讓該應用適用於所有設備和硬件(API lvl> = 15)。我也使用OpenCV4Android在Java和我的本地C + +如果重要。我不是很肯定,如果我現在的配置足以支持所有可用的硬件:Android NDK構建支持所有可用的設備
Application.mk
APP_STL := gnustl_static
APP_CPPFLAGS := -frtti -fexceptions
APP_ABI := armeabi-v7a
APP_PLATFORM := android-9
Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
OPENCV_CAMERA_MODULES:=on
OPENCV_INSTALL_MODULES:=on
include C:/OpenCV4Android/OpenCV-android-sdk/sdk/native/jni/OpenCV.mk
LOCAL_MODULE := myNativeLib
LOCAL_SRC_FILES := myNativeLib.cpp
LOCAL_LDLIBS += -llog -ldl
include $(BUILD_SHARED_LIBRARY)
我已經測試了幾個這種配置設備,它似乎工作,但不APP_ABI := armeabi-v7a
縮小到只有那些armeabi-v7a
,或實際上每個設備將能夠運行它支持的設備?也許我應該在這裏提到插入APP_ABI := all
? https://developer.android.com/ndk/guides/application_mk.html
讓我的應用程序響應併爲所有可能的設備工作是非常重要的。
爲了支持所有平臺,你應該使用APP_ABI:= all和for api 15使用APP_PLATFORM:= android-15 – VitalyD
謝謝了,的確我完全錯過了APP_PLATFORM屬性,但是我對APP_ABI有點懷疑?如果將它設置爲all,我們的應用程序就可以自動使用所有硬件,爲什麼APP_ABI默認設置爲all? – Savail
如果您將其設置爲「全部」,它將爲每個平臺創建一個二進制文件,這意味着您的應用程序的大小將變得更大 – VitalyD