Platform Requirements¶
Platform Support¶
EasyAR is a cross-platform AR SDK. The following OSes are supported
Windows 7 and above (7/8/8.1/10)
Mac OS X
Android 4.0 and above
iOS 7.0 and above
More about the latest version of Android and iOS,
EasyAR SDK is compatiable with Android 8.0 (Android O), the latest version of Android at the point of EasyAR SDK 2.1 release
EasyAR SDK is compatiable with iOS 11, the latest version of iOS at the point of EasyAR SDK 2.1 release
Generally, EasyAR do not rely very much on system APIs, so if there are newer version of Android/iOS release, EasyAR will most likely work smoothly on those systems.
CPU Architectures¶
Windows: x86, x86_64
Mac: x86, x86_64
Android: armv7a, arm64-v8a
iOS: arm, arm64
About Android arm64-v8a¶
EasyAR provides arm64-v8a binaries starting from 2.1. You should decide whether to use it or not.
EasyAR 2.0.0 and previous versions do not provide arm64-v8a binaries, but that should not prevent you from building a general-purpose application for Android.
If the client Android system have 64bit subsystem available on arm64 chips, Android will check for the folder with the name of arm64-v8a and if that is available inside your apk, the system will use the 64bit binaries for all native libs.
So, there are two options for arm64-v8a binaries provided by EasyAR or other third parties or yourself,
Remove all arm64-v8a binaries, and remove the arm64-v8a folder. In this case you will lose an opportunity to optimize certain features with arm64 architectures, but all functions should still work, because almost all Android devices do not drop armv7 compatibility at this time. This choice will give you a benefit for smaller size of apk.
Make sure arm64-v8a binaries for EasyAR and all other libraries are available in your apk.
For EasyAR 2.0.0 and previous releases, you can only choose option 1) because no arm64-v8a binaries are provided by EasyAR. But for 2.1 and later versions, you should make your own choice with some trade-offs.
Please note if you are an Android ROM developer or working on system level or SOC level, or if you are working on some customized devices, the above description may not apply. And usually you would know better about your requirement.
For Unity, Android arm64-v8a is not supported by mono. We have put extra binaries for arm64-v8a in the Unity package, you can use that if you are using your own Unity Plugins for EasyAR and enabled IL2CPP. We will officially add IL2CPP support in later versions.
API Languages¶
These language bindings are provided by EasyAR SDK by default.
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++
As EasyAR has a C API, you can always write your own API bindings for other languages.
Swift API for iOS¶
EasyAR SDK Swift API for iOS is compatiable with Swift 3 and Swift 4.
At the point of EasyAR SDK 2.1 release, the latest version of Swift is Swift 4. Apple do not always ensure the ABI compatibility of Swift, so EasyAR SDK may not have a compatibility for later version of Swift, but most likely it will.
EasyAR SDK Swift API is provided in source code for the best compatibility as Apple do not provide a strong ABI across different Swift versions.
You can get more details from How to use Swift API.
3D Engine Support¶
GLES2
Unity 3D
More in future (build-in and extern)
Unity Compatibility¶
Unity 4 (4.6+), Unity 5, Unity 2017 and Unity 2018 are all supported.
Graphics API
Windows: Direct3D9, Direct3D11, OpenGL2, OpenGLCore
Mac OS X: OpenGL2, OpenGLCore
Android: OpenGLES2
iOS: OpenGLES2
IL2CPP support
iOS: IL2CPP is supported since EasyAR SDK 1.0.
Android: IL2CPP support is not included in the official EasyAR Unity Plugin, we will add support in later versions. But if you are writing your own EasyAR Plugin for Unity, you can always enable IL2CPP support.