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,

  1. 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.

  2. 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.