平台需求¶
平台支持¶
EasyAR 是跨平台的 AR SDK,支持以下操作系统
Windows 7 及以上版本(7/8/8.1/10)
Mac OS X
Android 4.0 及以上版本
iOS 7.0 及以上版本
关于最新Android 和 iOS系统,
EasyAR SDK 可以兼容 Android 8.0 (Android O)(在 EasyAR SDK 2.1 发布的时间点最新的Android版本)
EasyAR SDK 可以兼容 iOS 11(在 EasyAR SDK 2.1 发布的时间点最新的iOS版本)
EasyAR通常不会依赖很多系统API,所以如果 Android/iOS 发布了新版本,EasyAR 一般都可以正常使用。
CPU 架构¶
Windows: x86, x86_64
Mac: x86, x86_64
Android: armv7a, arm64-v8a
iOS: arm, arm64
关于 Android arm64-v8a¶
EasyAR 从2.1版本开始提供 arm64-v8a 的二进制文件。开发者需要自己决定是否使用这些文件。
EasyAR 2.0.0 和以前版本没有提供 arm64-v8a 的文件,但这并不会对构建一般的Android应用造成影响。
如果Android 设备是64位芯片并且有64位子系统,Android 会检查名字为 arm64-v8a 的文件夹,如果这个文件夹在 apk中存在,系统将会使用 64位的库文件。
对于EasyAR 或其他第三方库或开发者自己提供的 arm64-v8a 的库文件有两种解决方法,
删除所有 arm64-v8a 文件,并删除 arm64-v8a 文件夹。这种情况你将失去对arm64架构下特定情况的优化,但所有功能仍可以正常使用。因为当前基本上所有 Android 设备都没有抛弃对 armv7 架构的兼容性。这个选择会带来额外的好处,可以减小apk的大小。
保证EasyAR及所有其他库的 arm64-v8a 文件都被打包到apk中。
由于 EasyAR 2.0.0 及之前的版本没有提供arm64-v8a 的库文件,对这些版本你只能选择选项 1) 。但对 2.1 及之后版本,你应该自己有取舍的选择使用哪个选项。
请注意,如果你是 Android ROM 开发者,或者你工作在系统层或SOC层,或者工作在定制的设备上,上面的描述可能不完全适用。通常这种情况下你应该对你的需求了解的很清楚。
Unity使用的mono不支持Android arm64-v8a。我们在Unity的SDK包中放入了额外的提供给arm64-v8a架构使用的二进制文件。如果你在使用你自己的EasyAR Unity插件,可以在开启IL2CPP的时候使用这些文件。我们将会在EasyAR后面的版本中加入对Android平台IL2CPP的官方支持。
API 语言¶
EasyAR SDK默认提供这些编程语言接口,
Windows: C, C++11, traditional C++
Mac: C, C++11, traditional C++
Android: Java (also works for Kotlin), C, C++11, traditional C++
iOS: Swift, Objective-C, C, C++11, traditional C++
由于 EasyAR 提供 C API,你总是可以在需要的时候自己创建其他语言的绑定。
Swift API for iOS¶
EasyAR SDK Swift API for iOS 兼容 Swift 3 和 Swift 4.
在 EasyAR SDK 2.1 发布的时间点,最新的 Swift 版本是 Swift 4。由于苹果并不总是保证 Swift 的 ABI 兼容性,所以 EasyAR SDK 虽然不一定会兼容今后最新的Swift版本,但大部分情况下应该是会兼容的。
EasyAR SDK Swift API 是以源代码形式提供的,这样可以提供最好的兼容性(苹果没有对不同Swift版本提供严格的ABI兼容方案)。
你可以阅读 如何使用Swift API 获取更多信息。
3D 引擎支持¶
GLES2
Unity 3D
未来更多(内嵌和外接)
Unity兼容性¶
EasyAR支持Unity4(4.6以上)、Unity5、Unity2017以及Unity 2018。
Graphics API
Windows: Direct3D9, Direct3D11, OpenGL2, OpenGLCore
Mac OS X: OpenGL2, OpenGLCore
Android: OpenGLES2
iOS: OpenGLES2
IL2CPP 支持
iOS: IL2CPP 从 EasyAR SDK 1.0 版本就可以支持。
Android: IL2CPP 支持并没有被包含在官方 EasyAR Unity 插件中。我们会在今后的版本中加入支持。但是如果你是使用自己写的 EasyAR Unity 插件,你可以加入 IL2CPP 支持。