aboutsummaryrefslogtreecommitdiff
path: root/en/setup/site-updates.html
diff options
context:
space:
mode:
Diffstat (limited to 'en/setup/site-updates.html')
-rw-r--r--en/setup/site-updates.html683
1 files changed, 683 insertions, 0 deletions
diff --git a/en/setup/site-updates.html b/en/setup/site-updates.html
new file mode 100644
index 00000000..0ebe54b1
--- /dev/null
+++ b/en/setup/site-updates.html
@@ -0,0 +1,683 @@
+<html devsite>
+ <head>
+ <title>Site Updates</title>
+ <meta name="project_path" value="/_project.yaml" />
+ <meta name="book_path" value="/_book.yaml" />
+ </head>
+ <body>
+ <!--
+ Copyright 2017 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+ -->
+
+
+<p>This page describes significant revisions to source.android.com. Please see the <a
+href="https://android.googlesource.com/platform/docs/source.android.com/+log/master?pretty=full&no-merges">Android
+Open Source Project (AOSP) docs/source.android.com log</a> for the complete
+list of changes to this site.
+
+<h2 id="Sept-2017">September 2017</h2>
+
+<p>This site has been released in China at <a
+ href="https://source.android.google.cn"
+ class="external-link">source.android.google.cn</a>. All
+ non-reference materials have also been translated into Simplified Chinese for
+ ease of use.</p>
+
+<h2 id="August-2017">August 2017</h2>
+
+<p>Android 8.0 has been released! This section describes the major new features in the Android 8.0 platform.</p>
+
+<h3 id="architecture">Architecture</h3>
+
+<h4>Treble</h4>
+<p>
+Android 8.0 includes support for Treble, a major re-architect of the
+Android OS framework designed to make it easier, faster, and less costly
+for manufacturers to update devices to a new version of Android. Documentation
+includes details on the <a href="/devices/architecture/hidl/index.html">HAL interface definition
+language (HIDL)</a>, a new <a href="/devices/architecture/configstore/index.html">ConfigStore HAL</a>,
+<a href="/devices/architecture/dto/index.html">Device Tree Overlays</a>,
+the <a href="/devices/architecture/vndk/index.html">Vendor Native Development
+Kit (VNDK)</a>, <a href="/devices/architecture/vintf/index.html">Vendor
+ Interface Objects (VINTF)</a>, <a href="/devices/architecture/kernel/modular-kernels.html">
+Modular Kernel requirements</a>, and the <a href="/devices/tech/vts/index.html">
+Vendor Test Suite (VTS) and Infrastructure</a>.
+</p>
+
+<h4>FunctionFS support</h4>
+<p>
+<a class="external-link"
+ href="https://www.kernel.org/doc/Documentation/usb/functionfs.txt">FunctionFS</a>
+(FFS) is a USB gadget function that is designed and controlled through user space.
+Its support allows all of the function- and protocol-specific code to live in
+user space, while all of the USB transport code lives in the kernel. Using
+ FFS moves Media Transfer Protocol (MTP) implementation into user space.
+</p>
+
+<p>
+On the frameworks side, most of the major changes exist in MtpServer. The
+USB driver interface has been refactored into two different classes, one that
+uses the old kernel driver and one that uses FFS. MtpServer is then able
+to use that driver interface without needing to know the details of
+implementation. The FFS driver writes the USB descriptors to a file when
+the server starts up; it then writes data to endpoint files similar to the
+kernel driver use.
+</p>
+
+<h4>Kernel enhancements to LLDB/C++ debugging</h4>
+<p>
+The Android 8.0 release includes kernel enhancements that help developers create
+better applications by improving their debugging experience. For more
+information, see <a
+href="/devices/architecture/kernel/lldb-debug.html">Implementing
+kernel enhancements to LLDB/C++ debugging</a>.
+</p>
+
+<h4>Kernel Hardening</h4>
+<p>
+Upstreamed kernel hardening features and tools to find bugs in kernel drivers.
+For more information, see <a
+href="/devices/architecture/kernel/hardening.html">Kernel Hardening</a>.
+</p>
+
+<h4>Optimizing SquashFS at the Kernel Level</h4>
+<p>
+SquashFS is a compressed read-only filesystem for Linux, suitable for use on the
+system partition. The optimizations in this document help improve the
+performance of SquashFS. For more information, see <a
+href="/devices/architecture/kernel/squashfs.html">Optimizing
+SquashFS at the Kernel Level</a>.
+</p>
+
+<h3 id="art-dalvik">ART and Dalvik</h3>
+<h4>Fuzz Testing</h4>
+<p>
+The Android Open Source Project (AOSP) offers a new fuzzing testing suite for
+testing the <a href="/devices/tech/dalvik/">Android
+runtime (ART)</a> infrastructure. The new toolset, JFuzz and an improved
+DexFuzz, are directly available in AOSP now with accompanying documentation.
+See:
+<a
+href="https://android.googlesource.com/platform/art/+/master/tools/jfuzz/README.md">https://android.googlesource.com/platform/art/+/master/tools/jfuzz/README.md</a>
+<a
+href="https://android.googlesource.com/platform/art/+/master/tools/dexfuzz/README">https://android.googlesource.com/platform/art/+/master/tools/dexfuzz/README</a>
+</p>
+<p>
+Nothing is required to implement or use the new tools. You may make changes
+to the tools if required, just like you can make changes to the
+runtime/compiler already.
+</p>
+
+<h4>VDEX files: Improve System Update Performance</h4>
+<p>
+VDEX files improve the performance and user experience of software updates. VDEX
+files store pre-validated DEX files with verifier dependencies so that during
+system updates ART does not need to extract and verify the DEX files again. No
+action is needed to implement this feature. It is enabled by default. To
+disable the feature, set the <code>ART_ENABLE_VDEX</code> environment variable
+to <code>false</code>.
+</p>
+
+<h4>ART performance improvements</h4>
+<p>
+The Android runtime (ART) has been improved significantly in the Android 8.0
+release. This document summarizes enhancements device manufacturers can expect
+in ART. For more information, see <a
+href="/devices/tech/dalvik/improvements.html">Improving
+ART Performance in Android 8.0</a>.
+</p>
+
+<h4>Android A/B OTA Updates</h4>
+<p>
+This update answers common questions device manufacturers have regarding Android
+A/B (seamless) system updates. For more information, see <a
+href="/devices/tech/ota/ab_updates#frequently-asked-questions.html">A/B
+(Seamless) System Updates Frequently asked questions</a>.
+</p>
+
+<h3 id="automotive">Automotive</h3>
+
+<h4>Bluetooth connection management</h4>
+<p>
+Android 8.0 provides Bluetooth connection management in in-vehicle infotainment
+systems for a more seamless Bluetooth user experience. For more information, see
+<a href="/devices/automotive/ivi_connectivity.html#bluetooth-connection-management">
+Bluetooth connection management</a>.
+</p>
+
+<h4>Bluetooth multi-device HFP</h4>
+<p>
+Bluetooth multi-device connectivity lets users connect multiple devices to telephony profiles in
+an Android Automotive IVI Bluetooth. For more information, see
+<a href="/devices/automotive/ivi_connectivity.html#bluetooth-multi-device-connectivity">
+IVI Connectivity</a>.
+</p>
+
+<h4>Vehicle Camera HAL</h4>
+<p>
+Describes the design of an exterior view system (EVS) stack and provides the HAL
+specification for supporting the acquisition and presentation of vehicle camera
+data. For more information, see <a
+href="/devices/automotive/camera-hal.html">Exterior
+View System (EVS) Vehicle Camera HAL.</a>
+</p>
+
+<h3 id="bluetooth">Bluetooth</h3>
+<p>
+See the updated <a
+href="/devices/bluetooth/index.html">Bluetooth
+overview</a>.
+</p>
+
+<h4>Verifying and debugging Bluetooth</h4>
+<p>
+A new page about how to verify and debug the native Bluetooth stack. See this page at
+<a href="/devices/bluetooth/verifying_debugging.html">Verifying and Debugging</a>.
+</p>
+
+<h4>Bluetooth services</h4>
+<p>
+Bluetooth provides a variety of features that enable core services between devices,
+such as audio streaming, phone calls, and messaging. For more information about the Android
+Bluetooth services, see <a href="/devices/bluetooth/services.html">
+Bluetooth Services</a>.
+</p>
+
+<h4>BLE advertising</h4>
+<p>
+Bluetooth 5 supports different modes of data advertisements for Bluetooth Low Energy,
+including higher bandwidth or increased range. For more information, see
+<a href="/devices/bluetooth/ble_advertising.html">
+Bluetooth Low Energy Advertising</a>.
+</p>
+
+
+<h4>Bluetooth support for audio codecs</h4>
+<p>
+The Android 8.0 release includes support for Bluetooth high-definition audio
+codecs. For more information, see <a
+href="/devices/bluetooth/services.html#advanced-audio-codecs">Advanced audio codecs</a>.
+</p>
+
+
+<h3 id="camera">Camera</h3>
+
+<h4>Critical camera features</h4>
+<p>
+The Android 8.0 release contains these key enhancements to the Camera service:
+shared surfaces, enable multiple surfaces sharing the same OutputConfiguration
+System API for custom camera modes, and onCaptureQueueEmpty. For more
+information, see <a
+href="/devices/camera/versioning.html">Camera Version
+Support</a>.
+</p>
+
+<h3 id="configuration">Configuration</h3>
+
+<h4>Ambient Capabilities</h4>
+<p>
+Capabilities allow Linux processes to drop most root-like privileges, while
+retaining the subset of privileges that they require to perform their function.
+Ambient capabilities allows system services to configure capabilities in their
+<code>.rc</code> files, bringing all their configuration into a single file. For
+more information, see <a
+href="/devices/tech/config/ambient.html">Implementing
+Ambient Capabilities</a>.
+</p>
+
+<h4>Privileged Permission Whitelist Requirement</h4>
+<p>
+Starting in Android 8.0, all privileged apps must be explicitly whitelisted in
+system configuration XML files in the <code>/etc/permissions</code> directory.
+If they are not, then the device will boot, but the device implementation will
+not pass CTS. For more information, see <a
+href="/devices/tech/config/perms-whitelist.html">Privileged
+Permission Whitelist Requirement</a>.
+</p>
+
+<h4>Implementing USB HAL</h4>
+<p>
+The Android 8.0 release moves handling of USB commands out of init scripts and
+into a native USB daemon for better configuration and code reliability. For more
+information, see <a
+href="/devices/tech/config/usb-hal.html">Implementing
+USB HAL</a>.
+</p>
+
+<h3 id="connectivity">Connectivity</h3>
+
+<h4>Customizing Device Behavior for Out-of-balance Users</h4>
+<p>
+Android devices with no data balance allow network traffic through, requiring
+carriers and telecoms to implement mitigation protocols. This feature implements
+a generic solution that allows carriers and telcos to indicate when a device has
+run out of balance. For more information, see <a
+href="/devices/tech/connect/oob-users.html">Customizing
+device behavior for out-of-balance users</a>.
+</p>
+
+<h3 id="debugging">Debugging</h3>
+
+<h4>Enabling sanitizers in the Android build system</h4>
+<p>
+Sanitizers are compiler-based instrumentation components to use during
+development and testing in order to identify bugs and make Android better.
+Android's current set of sanitizers can discover and diagnose memory misuse bugs
+and potentially dangerous undefined behavior. For more information, see <a
+href="/devices/tech/debug/sanitizers.html">Enabling
+Sanitizers in the Android Build System</a>.
+</p>
+
+<h4>Recover devices in reboot loops</h4>
+<p>
+Android 8.0 includes a feature that sends out a "rescue party" when it notices
+core system components stuck in crash loops. Rescue Party then escalates through
+a series of actions to recover the device. For more information, see <a
+href="/devices/tech/debug/rescue-party.html">Rescue
+Party</a>.
+</p>
+
+<h4>Storaged</h4>
+<p>
+Android 8.0 adds support for <code>storaged</code>, an Android native daemon that
+collects and publishes storage metrics on Android devices. For more information,
+see <a
+href="/devices/tech/debug/storaged.html">Implementing
+Storaged</a>.
+</p>
+
+<h3 id="display">Display</h3>
+
+<h4>Air Traffic Control for floating windows</h4>
+<p>
+Android 8.0 introduces Air Traffic Control for floating windows in order to
+simplify and unify how apps display on top of other apps. Everything necessary
+to use the feature is included in the Android Open Source Project (AOSP).
+</p>
+<p>
+Air Traffic Control allows developers to create a new (managed) floating
+layer/window type for apps to use to display windows on-top of other apps. The
+feature displays ongoing notifications for all apps using a floating layer that
+lets the user manage the alert window.
+</p>
+<p>
+The Android Compatibility Test Suite (CTS) confirms:
+</p> <ul>
+ <li>The current alert window types are: <code>TYPE_PHONE</code>, <code>TYPE_PRIORITY_PHONE</code>,
+<code>TYPE_SYSTEM_ALERT</code>, <code>TYPE_SYSTEM_OVERLAY</code>, or <code>TYPE_SYSTEM_ERROR</code>
+ <li>Apps targeting the O SDK won't be able to use the window types above to
+display windows above other apps. They will need to use a new window type
+TYPE_APPLICATION_OVERLAY.
+ <li>Apps targeting older SDKs can still use the current window types; however,
+the windows will be z-ordered below the new TYPE_APPLICATION_OVERLAY windows.
+ <li>The system can move or resize windows in the new layer to reduce clutter.
+ <li>Device manufacturers must keep the notification that lets users control
+what is displayed over other apps.</li> </ul>
+
+<h4>Launching activities on secondary displays</h4>
+<p>
+Virtual displays are available to everyone, and they don't require any special
+hardware. Any application can create an instance of virtual display; and in the
+Android 8.0 release, activities can be launched on that virtual display if the
+associated feature is enabled.
+</p>
+<p>
+To support multi-display features, you should either use one of the
+existing supported ways of connecting secondary devices or build new hardware.
+The supported ways of connecting displays on Nexus and Pixel devices are Google
+Cast and <a
+href="https://developer.android.com/reference/android/hardware/display/VirtualDisplay.html">virtual
+displays inside apps</a>. Support of other ways depends on kernel driver support
+for each particular case (like MHL or DisplayPort over USB-C) and fully
+implementing interface definitions that are related to displays in
+HardwareComposer HAL (IComposerCallback.hal and IComposerClient.hal).
+</p>
+<p>
+Each of the ways may require SoC or OEM support. For example, to enable
+DisplayPort over USB-C, both hardware (SOC) and software (drivers) support is
+required. You might need to implement drivers for your hardware to support
+connecting external displays.
+</p>
+<p>
+The default implementation will allow launching fullscreen stacks of activities
+on secondary displays. You can customize the stacks and System UI and
+behavior on secondary displays.
+</p>
+
+<h4>Support for generic tooltip</h4>
+<p>
+Android 8.0 allows developers to provide descriptive action names and other
+helpful information on mouse hover over buttons and other icons. Device
+manufacturers may style the tooltip popup. Its layout is defined in
+<code>android/frameworks/base/core/res/res/layout/tooltip.xml</code>.
+</a>
+</p>
+<p>
+OEMs may replace the layout or change its dimensions and style parameters. Use
+only text and keep the size reasonably small. The feature is implemented
+entirely inside the View class, and there are quite exhaustive CTS tests that
+check many aspects of Tooltip behavior.
+</p>
+<p>
+
+<h4>Support for extended aspect ratio</h4>
+<p>
+Android 8.0 includes a new manifest attribute, <a
+href="https://developer.android.com/reference/android/R.attr.html#maxAspectRatio">maxAspectRatio</a>,
+which lets an activity or app specify the maximum aspect ratio it supports.
+maxAspectRatio replaces the previous meta-data tag with a first-class API and
+allows devices to support an aspect ratio greater than 16:9.
+</p><ul>
+<li>If an activity or app is <a
+href="https://developer.android.com/guide/topics/ui/multi-window.html#configuring">resizable</a>,
+allow the activity to fill the screen.
+<li>If an activity or app is non-resizeable or the platform is force resizing
+the activity, allow the app window to display up to the maximum aspect ratio,
+according to the <a
+href="https://developer.android.com/reference/android/R.attr.html#maxAspectRatio">maxAspectRatio</a>
+value. <ul>
+ <li>For applications on devices running Android 8.0, the default value is the
+aspect ratio of the current device.
+ <li>For applications on devices running earlier versions of Android, the
+default value is 16:9.</li> </ul>
+</li> </ul>
+
+<h4>Implementing Adaptive Icons</h4>
+<p>
+Adaptive Icons maintain a consistent shape intra-device but vary from device to
+device with only one icon asset provided by the developer. Additionally, icons
+support two layers (foreground and background) that can be used for motion to
+provide visual delight to users. For more information, see <a
+href="/devices/tech/display/adaptive-icons.html">Implementing
+Adaptive Icons</a>.
+</p>
+
+<h4>Night Light</h4>
+<p>
+Night Light, introduced in Android 7.0.1, allows users to reduce the amount of
+blue light that their screen emits. Android 8.0 gives users more control over the
+intensity of this effect. For more information, see <a
+href="/devices/tech/display/night-light.html">Implementing
+Night Light</a>.
+</p>
+
+<h4>Picture-in-picture</h4>
+<p>
+Android 8.0 includes support for picture-in-picture (PIP) on Android handheld
+devices. PIP allows users to resize an app with an ongoing activity, such as a
+video, into a small window. For more information, see <a
+href="/devices/tech/display/pip.html">Picture-in-Picture
+on Android handsets</a>.
+</p>
+
+<h4>Better Split-Screen Interactions</h4>
+<p>
+Multi-window lets multiple apps simultaneously display on users' device screens.
+Android 8.0 improves the default mode, split-screen, by compressing the top pane
+and resizing the launcher if a user taps Home after entering split-screen. For
+more information, see <a
+href="/devices/tech/display/split-screen.html">Better
+Split-Screen Interactions</a>.
+</p>
+
+<h4>Add Widgets/Shortcuts</h4>
+<p>
+A new API in Android 8.0 allows application developers to add shortcuts and
+widgets from inside the app instead of relying on the widget tray. The older
+method of adding shortcuts by sending a broadcast has been deprecated for
+security reasons. For more information, see <a
+href="/devices/tech/display/widgets-shortcuts.html">Implementing
+Add Widgets/Shortcuts</a>.
+</p>
+
+<h3 id="downloading-building">Downloading and Building</h3>
+
+<h4>Android LLVM Toolchain improvements</h4>
+<p>
+OEMs who wish to use our latest toolchain/tools will need to ensure that any of
+their private code compiles successfully with the updated toolchains. This may
+require them to fix existing issues in their code with undefined behavior. (Of
+course, they are free to use whatever tools they prefer to compile their own
+code too.)
+</p>
+<p>
+They must ensure their code is free of undefined behavior (by using tools like
+UBSan), so they are less susceptible to problems caused by newer toolchains. All
+of the toolchains are always updated directly in AOSP. Everything will be
+available well before OC even ships, so OEMs should be following along
+already.
+</p>
+<p>
+See the <a href="https://llvm.org/">public Clang/LLVM</a> documentation for
+general instructions and the <a
+href="https://android.googlesource.com/platform/external/clang/+/dev/ReadmeAndroid.md">Android
+Clang/LLVM</a> documentation set within AOSP for Android-specific guidance.
+Finally, join the <a
+href="https://groups.google.com/forum/#!forum/android-llvm">android-llvm</a>
+public group to get help and take part in development.
+</p>
+
+<h3 id="drm-kms">DRM / KMS</h3>
+
+<h4>DRM/KMS in Linux Kernel Version 4.9</h4>
+<p>
+The Direct Rendering Manager (DRM)/Kernel Mode Setting (KMS) framework used by
+Android is developed and maintained by Linux kernel developers in the Linux
+kernel. Android merges down from the Linux kernel. By merging down from our
+common kernel, device manufacturers gain the DRM/KMS framework automatically.
+</p>
+<p>
+DRM/KMS became viable in Linux kernel version 4.9, and Android <strong>strongly
+encourages</strong> OEM partners to use DRM/KMS starting with this kernel
+version. <a href="https://lwn.net/Articles/565422/">Atomic Display Framework
+(ADF)</a>, the display framework officially supported by Android today, will not
+be supported in 4.9 and higher versions of the common Android kernel; instead,
+Android will support DRM/KMS from this version. OEMs can continue to use ADF (or
+any other framework), but Android will not support them in the common Android
+kernel.
+</p>
+<p>
+To implement DRM/KMS, you will need to write your own drivers using
+DRM/KMS in addition to merging down the DRM/KMS framework from the android
+common kernel.
+</p>
+
+<h3 id="keystore">Keystore</h3>
+
+<h4>Keymaster 3</h4>
+<p>
+Android 8.0 updates Keymaster, the keystore HAL, by extending the capabilities of
+hardware-backed key storage on Android devices. This builds upon the Android 7.1.2
+updates to Keymaster 2. For more information, see <a
+href="/security/keystore/index.html">Keymaster 3 documentation</a>.
+</p>
+
+<h3 id="security-enhancements">Security Enhancements</h3>
+
+<h4>Insecure TLS Version Fallback removed from HttpsURLConnection</h4>
+<p>
+Insecure TLS/SSL protocol version fallback is a workaround for buggy
+implementations of TLS protocol downgrade negotiation in some servers. This is
+vulnerable to POODLE. When Chrome 45 dropped the insecure fallback in September
+2015, less than 0.01% of servers relied on it. To improve security, insecure TLS
+version fallback has been removed from <a
+href="https://developer.android.com/reference/javax/net/ssl/HttpsURLConnection.html">HttpsURLConnection</a>
+in Android 8.0. For more details, see <a
+href="https://android-developers.googleblog.com/2017/04/android-o-to-drop-insecure-tls-version.html
+">this blog post</a>.
+</p>
+<p>
+To test this feature on devices with Android 8.0, run this CTS test case:
+</p>
+
+<pre class="devsite-click-to-copy devsite-terminal" data-terminal-prefix="# ">
+cts-tradefed run cts -m CtsLibcoreOkHttpTestCases</pre>
+
+<h3 id="performance">Performance</h3>
+
+<h4>Flash Wear Management</h4>
+<p>
+Describes eMMC behavior and new features to help OEMs lower the risk of a
+failing eMMC in the automotive environment. For more information, see <a
+href="/devices/tech/perf/flash-wear.html">Flash Wear
+Management in Android Automotive</a>.
+</p>
+
+<h4>Optimizing Boot Times</h4>
+<p>
+Guidance for improving boot times for specific Android devices. For more
+information, see <a
+href="/devices/tech/perf/boot-times.html">Optimizing
+boot times</a>.
+</p>
+
+<h4>Task Snapshots</h4>
+<p>
+Task Snapshots is infrastructure introduced in Android 8.0 that combines
+screenshots for Recents Thumbnails as well as Saved Surfaces from Window Manager
+to save memory. For more information, see <a
+href="/devices/tech/perf/task-snapshots.html">Task
+Snapshots</a>.
+</p>
+
+<h3 id="peripherals">Peripherals</h3>
+
+<h4>Default Print Services</h4>
+<p>
+A <a
+href="https://developer.android.com/reference/android/printservice/PrintService.html">print
+service</a> is an app that discovers and presents printers to a device's print
+framework. In earlier Android versions, users had to search for and install
+third-party print services to be able to print.
+</p>
+<p>
+Android 8.0 includes a default print service in <code><a
+href="https://android.googlesource.com/platform/packages/services/BuiltInPrintService/">platform/packages/services/BuiltInPrintService/</a></code>
+that lets users print on modern printers without installing any additional apps.
+This implementation supports printers that use the Internet Printing Protocol
+(IPP) to communicate with the printer and use PCLm, PWG-Raster, or PDF to send
+printable content. For older printers, users should install the app recommended
+by the <a
+href="https://android.googlesource.com/platform/frameworks/base/+/android-7.0.0_r1/packages/PrintRecommendationService/">PrintRecommendationService</a>
+as seen in this <a href="https://youtu.be/M_JGeGLpOKs?t=16m20s">this I/O presentation</a>.
+
+<h3 id="reference">Reference Updates</h3>
+
+<p>
+The <a href="/reference/">Reference</a> section has been added to the top-level
+navigation. As part of the <a href="/devices/architecture/treble">Treble</a>
+release, a <a href="/reference/hidl/">HIDL reference</a> section was added.
+The <a href="/reference/tradefed/">Trade Federation</a> and the
+<a href="/reference/hal/">legacy HAL</a> reference documentation has been updated.
+</p>
+
+<h3 id="settings-menu">Settings menu</h3>
+
+<h4>Settings: Patterns and Components</h4>
+<p>
+In Android 8.0, the Settings menu gains several components and widgets that
+cover common uses. For more information, see <a
+href="/devices/tech/settings/patterns-components.html">Patterns
+and Components</a>.
+</p>
+
+<h4>Settings: Updated information architecture</h4>
+<p>
+Android 8.0 introduces a new information architecture for the Settings app. The
+goal of the new information architecture is to simplify the way settings are
+organized and make it easier for users to quickly find the settings needed to
+customize their Android devices. For more information, see Implementing <a
+href="/devices/tech/settings/info-architecture.html">Updated
+Information Architecture</a>.
+</p>
+
+<h4>Personalized Settings</h4>
+<p>
+The Android Settings app provides a list of suggestions to the users. This
+feature provides ranking for suggestions, based on any contextual signal or the
+user's past interactions with suggestions. For more information, see <a
+href="/devices/tech/settings/personalized.html">Personalized
+Settings</a>.
+</p>
+
+<h4>Implementing Settings: Universal Search</h4>
+<p>
+Android 8.0 adds expanded search capabilities for the Settings menu. This document
+describes how to add a setting and ensure it is properly indexed for Settings.
+For more information, see <a
+href="/devices/tech/settings/universal-search.html">Universal
+Search</a>.
+</p>
+
+<h3 id="storage">Storage</h3>
+
+<h4>Faster storage statistics</h4>
+<p>
+Android 8.0 leverages the ext4 filesystem's "quota" support to return disk usage
+statistics almost instantly. For more information, see <a
+href="/devices/storage/faster-stats.html">Implementing
+faster storage statistics</a>.
+</p>
+
+<h2 id="april-2017">April 2017</h2>
+<p>Welcome to a new source.android.com! The site has been overhauled to make it
+easier for you to navigate, search, and read its ever-growing set of information.
+Here is a summary of enhancements:</p>
+
+<h3 id="screen-estate">More screen real estate, larger type size</h3>
+<p>The entire site is wider, allowing you to view more content at once. Code
+samples and commands are more visible, and all text has been enlarged.</p>
+
+<h3 id="mobile-ready">Mobile-ready view</h3>
+<p>The new site renders more cleanly on handheld devices with a dedicated
+mobile view.</p>
+
+<div style="width:407px">
+ <img src="images/mobile-view.png" alt="new mobile view" height="533px" />
+ <p class="img-caption">
+ <strong>Figure 1.</strong> Site's new mobile view
+ </p>
+</div>
+
+<h3 id="top-tabs">New top-level tabs</h3>
+<p>The former <em>Devices</em> tab has been renamed <a
+href="/devices/">Porting</a>, while the old <em>Core Technologies</em>
+subtab has been renamed <a href="/devices/tech/">Tuning</a> and moved to the top
+of the site for better exposure.</p>
+
+<h3 id="security-forefront">Security at the forefront</h3>
+<p>With an ever-increasing focus on security in Android, the <a
+href="/security/">Security</a> tab has been moved forward (next to <a
+href="/setup/">Source</a>) to reflect its importance.</p>
+
+<h3 id="reference-materials">Better reference materials</h3>
+<p><a href="/reference/hal/">Hardware Abstraction Layer</a> and <a
+href="/reference/tradefed/packages">Trade Federation</a> reference
+materials are available directly from a top-level <a
+href="/reference/">Reference</a> tab.</p>
+
+<h3 id="code-links">Persistent code links</h3>
+<p>The <a href="https://android.googlesource.com/">AOSP code
+repository</a> is always just a click away with the <strong>Go to Code</strong>
+button at the top right of every page.</p>
+
+<h3 id="comprehensive-footers">Comprehensive footers</h3>
+<p>In addition to the existing <em>About</em>, <em>Community</em>, and
+<em>Legal</em> footers, you can now find a complete list of links at the bottom
+of every page for building Android, connecting with the ecosystem, and getting
+help with the operating system's use.</p>
+
+ </body>
+</html>