20.10.2015 Views

Compatibility Definition

2f44OdUf0

2f44OdUf0

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

present, only the corresponding functions for OpenGL ES versions and extensions actually supported<br />

by the device must be fully implemented.<br />

Device implementations MUST NOT include a native library with the name libvulkan.so.<br />

Native code compatibility is challenging. For this reason, device implementers are STRONGLY<br />

RECOMMENDED to use the implementations of the libraries listed above from the upstream Android<br />

Open Source Project.<br />

3.3.2. 32-bit ARM Native Code <strong>Compatibility</strong><br />

The ARMv8 architecture deprecates several CPU operations, including some operations used in<br />

existing native code. On 64-bit ARM devices, the following deprecated operations MUST remain<br />

available to 32-bit native ARM code, either through native CPU support or through software emulation:<br />

SWP and SWPB instructions<br />

SETEND instruction<br />

CP15ISB, CP15DSB, and CP15DMB barrier operations<br />

Legacy versions of the Android NDK used /proc/cpuinfo to discover CPU features from 32-bit ARM<br />

native code. For compatibility with applications built using this NDK, devices MUST include the<br />

following lines in /proc/cpuinfo when it is read by 32-bit ARM applications:<br />

"Features: ", followed by a list of any optional ARMv7 CPU features supported by the<br />

device<br />

"CPU architecture: ", followed by an integer describing the device's highest supported ARM<br />

architecture (e.g., "8" for ARMv8 devices)<br />

These requirements only apply when /proc/cpuinfo is read by 32-bit ARM applications. Devices<br />

SHOULD not alter /proc/cpuinfo when read by 64-bit ARM or non-ARM applications.<br />

3.4. Web <strong>Compatibility</strong><br />

3.4.1. WebView <strong>Compatibility</strong><br />

Android Watch devices MAY, but all other device implementations MUST provide a complete<br />

implementation of the android.webkit.Webview API.<br />

The platform feature android.software.webview MUST be reported on any device that provides a<br />

complete implementation of the android.webkit.WebView API, and MUST NOT be reported on devices<br />

without a complete implementation of the API. The Android Open Source implementation uses code<br />

from the Chromium Project to implement the android.webkit.WebView [Resources, 15]. Because it is<br />

not feasible to develop a comprehensive test suite for a web rendering system, device implementers<br />

MUST use the specific upstream build of Chromium in the WebView implementation. Specifically:<br />

Device android.webkit.WebView implementations MUST be based on the Chromium build<br />

from the upstream Android Open Source Project for Android 6.0. This build includes a<br />

specific set of functionality and security fixes for the WebView [Resources, 16].<br />

The user agent string reported by the WebView MUST be in this format:<br />

Mozilla/5.0 (Linux; Android $(VERSION); $(MODEL) Build/$(BUILD); wv)<br />

AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 $(CHROMIUM_VER) Mobile<br />

Safari/537.36<br />

The value of the $(VERSION) string MUST be the same as the value for<br />

android.os.Build.VERSION.RELEASE.<br />

The value of the $(MODEL) string MUST be the same as the value for<br />

Page 13 of 74

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!