配置EasyAR Android SDK(非Unity)¶
这篇文章介绍如何使用EasyAR package配置EasyAR非Unity的Android工程。
如果你需要使用EasyAR Unity package,请阅读 这篇文章 了解使用package的配置,或 这篇文章 了解Unity样例的使用。
如果你需要运行EasyAR非Unity的Android样例,请阅读 这篇文章 。
安装需求¶
JDK 1.7 或更新版本
Android NDK
Android SDK with Build Tools 至少需要版本23.0.1
推荐安装最新版本的NDK和SDK
你可以在Eclipse或Android Studio中使用EasyAR。
注意:EasyAR SDK 2.0和后面版本有Java和C++ API,你可以使用最习惯的语言进行开发。
导入EasyAR Android SDK¶
使用不同IDE的配置细节可能会有所不同。这里我们只介绍使用gradle和Android Studio 2.2或更新版本的配置方式。
只使用 Java API
将 EasyAR.jar 放入 app/libs 或由gradle配置显示指定的目录。
将 armeabi-v7a 和/或 arm64-v8a 放入 app/src/main/jniLibs 或由gradle配置显示指定的目录。
使用 Java 和 C++ API
将 EasyAR.jar 放入 app/libs 或由gradle配置显示指定的目录。
将 armeabi-v7a 和/或 arm64-v8a 放入 app/src/main/jniLibs 或由gradle配置显示指定的目录。
将 include 中的 easyar 文件夹放入 app/src/main/jni 或由Android.mk 或者 CMakeLists.txt中显示指定的目录。
有关arm64-v8a的支持,可以阅读 关于 Android arm64-v8a 。
Gradle Configuration for EasyAR SDK -- Java API¶
无需特别设置。
Gradle Configuration for EasyAR SDK -- C++ API¶
可以参考 Google 官方文档 获取更多信息。
Makefile / CMakeLists¶
这里我们只描述如何配置 Android.mk,如果你偏向于 CMake,可以参考 Google 官方文档 。
prebuilt library
include $(CLEAR_VARS)
# make sure this path is avaliable for libEasyAR.so
LOCAL_PATH := $(LOCAL_PATH_TOP)/../jniLibs/armeabi-v7a
LOCAL_MODULE := EasyAR
LOCAL_SRC_FILES := libEasyAR.so
include $(PREBUILT_SHARED_LIBRARY)
link libEasyAR.so
GLESv2 是必须加入的。
LOCAL_LDLIBS += -lGLESv2
LOCAL_SHARED_LIBRARIES += EasyAR
External Native Build¶
android {
externalNativeBuild {
ndkBuild {
path 'src/main/jni/Android.mk'
}
}
}
如果你偏向于 CMake,可以参考 Google 官方文档.
指定 ABIs¶
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a'
}
}
}
在AndroidManifest中添加权限¶
EasyAR需要以下这些权限,缺少权限将会导致初始化失败并黑屏。
android.permission.CAMERA android.permission.INTERNET
将这些添加到AndroidManifest中。
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="cn.easyar.samples.helloar" >
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
</manifest>
初始化EasyAR¶
(deprecated in 2.1.0) 使用 cn.easyar.engine.EasyAR.initialize 来初始化EasyAR。你可以添加初始化函数到你的activity中如下,
protected void onCreate() {
EasyAR.initialize(this, key);
}
(since 2.1.0) 使用 cn.easyar.Engine.initialize 来初始化EasyAR。你可以添加初始化函数到你的activity中如下,
protected void onCreate() {
Engine.initialize(this, key);
}
其它代码¶
剩下的就是写EasyAR的逻辑以及其它代码。你可以参考EasyAR的样例来实现。