Platform Requirements¶
Platform Support¶
EasyAR Sense is a cross-platform AR SDK. The following OSes are supported
Windows 7 and above (7/8.1/10/11)
Mac OS X 10.15 and above
Android 5.0 and above
iOS 12.0 and above
visionOS 2.0 and above
Notice: Due to the dependency for camera implementation on Media Foundation, Media Feature Pack is required on Windows N and KN variants.
More about the latest version of Android and iOS,
EasyAR Sense is compatiable with Android 13
EasyAR Sense is compatiable with iOS 16
Generally, EasyAR Sense do not rely very much on system APIs, so if there are newer version of Android/iOS release, EasyAR Sense will most likely work smoothly on those systems.
CPU Architectures¶
Windows: x86, x86_64
Mac: x86_64, arm64
Android: armv7a, arm64-v8a
iOS: arm64
Additional Hardware Requirements for Features¶
Feature |
Additional Hardware Requirements |
---|---|
Planar Image Tracking |
Camera |
Video Playing |
OpenGLES 3.0 |
Cloud Recognition |
Camera |
3D Object Tracking |
Camera |
Recording |
OpenGLES 3.0 |
Surface Tracking |
Camera, gyroscope and accelerometer. CPU computing power meets or exceeds Snapdragon 410. |
Sparse Spatial Map |
ARKit, ARCore or Motion Tracking capability |
Dense Spatial Map |
ARKit, ARCore or Motion Tracking capability. CPU computing power equals or exceeds Apple’s A10 / Qualcomm’s Snapdragon 835 / Huawei’s Kiri970 processor |
Motion Tracking |
Refer to Motion Tracking Supported Devices |
Mega/Cloud Localization |
ARKit, ARCore or Motion Tracking capability |
About Android Multiple CPU Architecture Support¶
EasyAR Sense provides armv7a and arm64-v8a binaries. Developers need to choose whether to use it or not.
In the apk of every application, there is a directory for every ABI, e.g. arm64-v8a .
Android for ARMv8-A support binary files of two ABIs: armeabi-v7a and arm64-v8a , but a process can only run with one ABI at a time. The ABI is selected automatically by the existence of these ABI directories, and so files from different ABIs can not mixed.
On x64 CPU, libhoudini can be used to run armeabi-v7a / arm64-v8a binaries with binary translation, but if apk contains x86 or x86_64 directory, the binary translator may not be activated.
So, when packaging an application, it is necessary to ensure the integrity of the directory of every ABI. If a directory is not complete, it’s better to delete that directory.
Warning:
Since August 1, 2019, Google Play Store requires that an application with armeabi-v7a be committed with support for arm64-v8a. (Support 64-bit architectures)
ARM will stop supporting 32-bit since 2023. (Why Arm Is Making All Cortex-A Mobile Cores 64-bit Only)
API Languages¶
These language bindings are provided by EasyAR Sense by default.
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#
As EasyAR Sense provides a C API, you can always write your own API bindings for other languages.
Swift API for iOS¶
EasyAR Sense Swift API for iOS is compatiable with Swift 4 and Swift 5.
EasyAR Sense Swift API is provided in source code for the best compatibility.