2015-11-13 33 views
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 := allhttps://developer.android.com/ndk/guides/application_mk.html

讓我的應用程序響應併爲所有可能的設備工作是非常重要的。

+2

爲了支持所有平臺,你應該使用APP_ABI:= all和for api 15使用APP_PLATFORM:= android-15 – VitalyD

+0

謝謝了,的確我完全錯過了APP_PLATFORM屬性,但是我對APP_ABI有點懷疑?如果將它設置爲all,我們的應用程序就可以自動使用所有硬件,爲什麼APP_ABI默認設置爲all? – Savail

+1

如果您將其設置爲「全部」,它將爲每個平臺創建一個二進制文件,這意味着您的應用程序的大小將變得更大 – VitalyD

回答

1

要支持所有平臺,您應該使用APP_ABI := all 。對於API 15,使用APP_PLATFORM := android-15。 請注意,您的apk文件將會支持的平臺越多,因爲它會爲APK中的每個受支持平臺創建一個二進制文件。

相關問題