平台需求¶
平台支持¶
EasyAR Sense 是跨平台的 AR SDK,支持以下操作系统
Windows 7 及以上版本(7/8.1/10/11)
Mac OS X 10.15 及以上版本
Android 5.0 及以上版本(兼容手机鸿蒙系统)
iOS 11.0 及以上版本
备注:由于Camera实现依赖于Media Foundation,Windows N和KN版本需要安装Media Feature Pack才能使用。
关于最新Android 和 iOS系统,
EasyAR Sense 可以兼容 Android 13
EasyAR Sense 可以兼容 iOS 16
EasyAR Sense通常不会依赖很多系统API,所以如果 Android/iOS 发布了新版本,EasyAR Sense 一般都可以正常使用。
CPU 架构¶
Windows: x86, x86_64
Mac: x86_64, arm64
Android: armv7a, arm64-v8a
iOS: arm64
不同功能的额外硬件要求¶
功能 |
额外硬件要求 |
---|---|
平面图像跟踪 |
相机 |
视频播放 |
支持OpenGLES 3.0 |
云识别 |
相机 |
3D物体跟踪 |
相机 |
录屏 |
支持OpenGLES 3.0 |
表面跟踪 |
相机,加速度计和陀螺仪。CPU达到或超过Snapdragon 410计算能力。 |
稀疏空间地图 |
支持ARKit、ARCore或者运动跟踪 |
稠密空间地图 |
支持ARKit、ARCore或者运动跟踪。CPU的计算能力不低于苹果的A10/高通的Snapdragon835/华为的Kiri970处理器 |
运动跟踪 |
参考 运动跟踪支持机型 |
Mega/云定位 |
支持ARKit、ARCore或者运动跟踪 |
关于 Android 的多种 ABI 支持¶
EasyAR Sense 提供 armv7a 和 arm64-v8a 的二进制文件。开发者需要自己决定是否使用这些文件。
每个应用的 apk 中,每个 ABI 会有一个单独的文件夹,例如 arm64-v8a 文件夹。
ARMv8-A 构架的 Android 系统,同时支持运行 armeabi-v7a 和 arm64-v8a 两种 ABI 的二进制文件,但一个进程运行时只能选用一种,根据上述文件夹自动选择,不能混用两种 ABI 的 so 文件。
x64 CPU 上可以通过 libhoudini 来将 armeabi-v7a / arm64-v8a 的二进制代码转译运行,但如果 apk 中包含 x86 或者 x86_64 文件夹,转译器可能不会启动。
因此,打包应用时需要保证每种构架下的 so 文件完整,不完整的时候应删除对应的文件夹。
注意:
从2019年8月1日开始,Google Play Store不支持带有armeabi-v7a而不带有arm64-v8a的应用提交。(Support 64-bit architectures)
ARM将从2023年开始停止支持32位。(Why Arm Is Making All Cortex-A Mobile Cores 64-bit Only)
中国的各应用商店也计划2021年年底前强制要求64位。 (中国五大移动应用商店启动64位安卓生态迁移)
API 语言¶
EasyAR Sense默认提供这些编程语言接口,
Windows: C, C++17, traditional C++, C#
Mac: C, C++17, traditional C++, C#
Android: Java (also works for Kotlin), C, C++17, traditional C++, C#
iOS: Swift, Objective-C, C, C++17, traditional C++, C#
由于 EasyAR Sense 提供 C API,你总是可以在需要的时候自己创建其他语言的绑定。
Swift API for iOS¶
EasyAR Sense Swift API for iOS 兼容 Swift 4 和 Swift 5.
EasyAR Sense Swift API 是以源代码形式提供的,这样可以提供最好的兼容性。