Android NDK 构建以支持所有可用设备
Android NDK build to support all available devices
我在我的项目中同时使用 java 文件和本机 C++ 代码。我想让该应用程序可用于所有设备和硬件 (API lvl >= 15)。如果重要的话,我还在 java 和我的本地 c++ 中使用 OpenCV4Android。我不太确定我当前的配置是否足以支持所有可用的硬件:
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
.对于 API 15,使用 APP_PLATFORM := android-15
。
请注意,您支持的平台越多,您的 apk 文件就会越大,因为它会为您的 APK 中每个支持的平台创建一个二进制文件。
我在我的项目中同时使用 java 文件和本机 C++ 代码。我想让该应用程序可用于所有设备和硬件 (API lvl >= 15)。如果重要的话,我还在 java 和我的本地 c++ 中使用 OpenCV4Android。我不太确定我当前的配置是否足以支持所有可用的硬件:
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
.对于 API 15,使用 APP_PLATFORM := android-15
。
请注意,您支持的平台越多,您的 apk 文件就会越大,因为它会为您的 APK 中每个支持的平台创建一个二进制文件。