Releases: google-ar/arcore-android-sdk
ARCore SDK for Android v1.2.0
Updated on 2018-05-11 to remove temporary APK sideload instructions.
Breaking changes
None.
New APIs and capabilities
- Cloud Anchors API. Enables developers to build shared AR experiences across iOS and Android, by allowing anchors created on one device to be transformed into cloud anchors and shared with users on other devices.
- Augmented Images API. Enables ARCore apps to detect and track images.
- Vertical plane detection. ARCore now detects both horizontal and vertical planes.
Deprecations
- Java:
Session.isSupported()
is now deprecated. Device capability checking is part of ARCore installation functionality (specificallyArCoreApk.checkAvailability()
andArCoreApk.requestInstall()
). The implementation is frozen to always returntrue
as it did in release 1.1. - C:
ArSession_checkSupported()
is now deprecated. Device capability checking is part of ARCore installation functionality (specificallyArCoreApk_checkAvailability()
andArCoreApk_requestInstall()
). The implementation is frozen to always returnAR_SUCCESS
as it did in release 1.1.
Behavioral changes
- The default session config now enables both horizontal and vertical plane detection. Previously only horizontal planes were detected.
Other changes
- Updated documentation for session config
UpdateMode
AR_UPDATE_MODE_BLOCKING
to specify behavior when camera images do not arrive by the built-in timeout. - Java: For AR-Required apps,
ArCoreApk.checkAvailability()
will always immediately return aSUPPORTED_*
Availability
. - C: For AR-Required apps,
ArCoreApk_checkAvailability()
will always immediately return anAR_AVAILABILITY_SUPPORTED_*
code. - ARCore SDK will now work properly when built into a library that is then built into an release proguarded app, by adding
-keepattributes *Annotation*
in your library's proguard spec. - Java: Added
Pose
convenience methodsgetTranslation()
,getRotationQuaternion()
androtateVector()
that return an array instead of taking an output array as an argument. - Sample apps have new, distinct icons.
Bug fixes
- Applications using
launchMode="singleTask"
in theirAndroidManifest.xml
(which is the default for Unity and Unreal apps) will no longer display a blank screen if the user exits the app and re-launches it while the "This app requires the latest version of ARCore" screen is displayed.
Known Issues
- If the API key specified for authenticating with the ARCore Cloud Anchor service is invalid, the final cloud anchor state of the anchor will be
ERROR_INTERNAL
instead ofERROR_NOT_AUTHORIZED
. This is a known issue and will be fixed in an upcoming release.
ARCore SDK for Android v1.1.0
ARCore SDK v1.1.0
ARCore enables AR applications to track a phone’s motion in the real world, detect planes in the environment, and understand lighting in the camera scene.
ARCore 1.1 provides two new APIs:
- API for synchronously (in the same frame) acquiring the image from a camera frame (without manually copying the image buffer from the GPU to the CPU). This lets you run your own image processing algorithms on the images from the camera.
- API for getting color correction information for the images captured by the camera. This lets you render your virtual objects in a way that matches the real-world lighting conditions.
Build-config changes
We have split arcore_sdk.so
into arcore_sdk_c.so
and arcore_sdk_jni.so
.
- Clients using the C API should dynamically load only
arcore_sdk_c.so
. The C sample app reflects this change. - Java clients don’t need to change anything as the Java wrapper handles this.
Supported Devices
This release is only supported on, and should only be installed on, qualified devices running Android N and later. See the list of ARCore supported devices for specific device models.
Downloading APKs
When possible, ARCore should always be installed from the Google Play Store. The APKs are offered for use in the Android Emulator and for developers that cannot access the Google Play Store.
ARCore SDK for Android v1.0.0
ARCore SDK v1.0.0
ARCore enables AR applications to track a phone’s motion in the real world, detect planes in the environment, and understand lighting in the camera scene. ARCore 1.0 introduces oriented points which allow the placement of virtual objects on non-horizontal or non-planar textured surfaces (like posters and cans). The Android Emulator in Android Studio 3.1 Beta supports ARCore 1.0.
ARCore 1.0 is available for use in production apps on supported Android devices. ARCore 1.0 introduces the concept of AR required and AR optional apps. Apps should be classified as required or optional to ensure the ARCore service install is properly handled by the Play Store.
With ARCore 1.0 your app must request the Android Camera Permission before session create (ArSession_create()
in C and new Session()
in Java). Previously in Developer Preview 2, camera permission was required only before resuming an AR Session.
Supported Devices
-
This release is only supported on, and should only be installed on, qualified devices running Android N and later. See the list of ARCore supported devices for specific device models.
-
Apps built with ARCore Developer Preview or ARCore Developer Preview 2 are not supported on with ARCore 1.0.
Known Issues
Lifecycle issues
- ARCore does not support picture-in-picture mode.
Java
- The rendering primitives included in the sample code are designed to illustrate functionality and are not performance optimized.
- After Session.pause() is called,
Anchor.getTrackingState()
andPlane.getTrackingState()
will not be set toSTOPPED_TRACKING
.
ARCore SDK for Android Preview 2
ARCore SDK Preview 2
2018-01-30 EDIT: Added link to ARCore supported devices.
This is a developer preview SDK that enables prototyping AR experiences using ARCore on supported Android devices.
ARCore enables AR applications to track a phone’s motion in the real world, detect planes in the environment, and understand lighting in the camera scene.
This developer preview release is not intended for use in production apps that are shipped to customers. Future versions of ARCore might introduce breaking changes to the API.
Supported Devices
This release is only supported on, and should only be installed on, qualified devices running Android N and later. See the list of ARCore supported devices for specific device models.
Installing this release on phones other than the supported devices might break other software on the device.
Notes
Multiple Versions of ARCore
- Apps built with the original ARCore SDK Developer Preview are only compatible with the original
arcore-preview.apk
. Apps built with ARCore SDK Developer Preview 2 are only compatible witharcore-preview2.apk
. - A developer can install versions of ARCore provided in both the original ARCore SDK Developer Preview and ARCore SDK Developer Preview 2 at the same time to facilitate using apps built with either SDK. The original
arcore-preview.apk
will be visible as “Tango Core” in the Android Apps settings whereasarcore-preview2.apk
will be visible as “ARCore” in the Android Apps settings.
Known Issues
ArSession_configure()
does not apply settings changes if called while in a resumed state.
What’s New In Developer Preview 2
New SDK
- Developer Preview 2 features an Android NDK (C API)
API Changes
- The API interfaces have undergone significant revision and changes. All key functionality from the original Developer Preview remains, but the methods and function calls have changed.
- The API now natively supports attaching Anchors to Planes.
- ARCore Developer Preview 2 includes Unity and Java samples for camera image data access on the CPU. The provided Computer Vision sample is useful for running custom computer vision algorithms or image analysis on the camera image data.
Lifecycle Improvements
- ARCore apps may recover planes and anchors if the session is paused and then resumed, provided the user is in roughly the same location and the environment or lighting has not changed significantly. This enables scenarios where AR content is not lost when the user briefly switches apps.
Fixes
- Many stability and performance improvements.
ARCore SDK for Android Preview
ARCore SDK Preview
This is a preview that enables prototyping AR experiences using ARCore on supported Android devices.
ARCore enables AR applications to track a phone’s motion in the real world, detect planes in the environment, and understand lighting in the camera scene.
Important: This release is not a production release; it is not intended for use in production apps shipped to customers. Future versions of ARCore may introduce breaking changes to the API.
Supported Devices
This release is only supported on qualified devices running Android N and later, which include:
- Google Pixel
- Google Pixel XL
- Samsung S8 SM-G950F
- Samsung S8 SM-G950FD
- Samsung S8 SM-G950N
- Samsung S8 SM-G950U
- Samsung S8 SM-G950U1
- Samsung S8 SM-G950W
Installing this release on phones other than the supported devices may break other software on the device.
Known Issues
Lifecycle issues
- Task switching across two or more ARCore apps is not currently supported and will break AR session tracking
- ARCore apps will not recover planes and anchors if the session is paused and then resumed. Anchors will stop tracking after a pause() and a subsequent resume() and planes will have to be re-discovered.
Anchors
- Each additional anchor reduces performance; using more than a dozen anchors may noticeably reduce app performance.
Error messages
- Apps built using ARCore will produce a notification on user debug builds, “Tango Cloud ADFs 0%.” This does not indicate any problems with the application and can be safely ignored.
Java SDK
- The rendering primitives included in the sample code are designed to illustrate functionality and are not performance optimized.
- After Session.pause() is called, Anchor.getTrackingState() and Plane.getTrackingState() will not be set to STOPPED_TRACKING.