diff options
author | Billy Lamberta <blamb@google.com> | 2017-10-23 21:18:48 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-10-23 21:18:48 +0000 |
commit | 96deba20c83e0d2756e4c7861622a554955fe8db (patch) | |
tree | d7e21f8d551fa33c6bc03dc13626a57040beed2d /en/devices | |
parent | 344332ce19b130799caee39340742bf31a291748 (diff) | |
parent | 3587851127f0703f29ac921d44c8696315a693b0 (diff) | |
download | source.android.com-96deba20c83e0d2756e4c7861622a554955fe8db.tar.gz |
Merge "Docs: Changes to source.android.com"
am: 3587851127
Change-Id: I663961e093f5e801eeb02eb94163fa9d263f8a49
Diffstat (limited to 'en/devices')
-rw-r--r-- | en/devices/architecture/hal-types.html | 33 | ||||
-rw-r--r-- | en/devices/architecture/kernel/modular-kernels.html | 2 | ||||
-rw-r--r-- | en/devices/tech/dalvik/improvements.html | 25 | ||||
-rw-r--r-- | en/devices/tech/debug/sanitizers.html | 2 | ||||
-rw-r--r-- | en/devices/tech/perf/low-ram.html | 34 |
5 files changed, 44 insertions, 52 deletions
diff --git a/en/devices/architecture/hal-types.html b/en/devices/architecture/hal-types.html index 52cb869f..3df8d61c 100644 --- a/en/devices/architecture/hal-types.html +++ b/en/devices/architecture/hal-types.html @@ -21,19 +21,20 @@ limitations under the License. --> -<p>As part of the Android O rearchitecture of the lower layers of the Android OS -to support better modularity, devices running Android O must support binderized +<p>As part of the Android 8.0 rearchitecture of the lower layers of the Android OS +to support better modularity, devices running Android 8.0 must support binderized or passthrough HALs:</p> <ul> <li><strong>Binderized HALs</strong>. HALs expressed in HAL interface definition -language (HIDL). These HALs replace both conventional and legacy HALs used in -earlier versions of Android and can serve the HAL in binderized mode. All -devices launching with Android O or later must support binderized HALs only.</li> +language (HIDL). These HALs replace both conventional and legacy HALs used in earlier versions of +Android. In a Binderized HAL, the Android framework and HALs communicate with each other using +binder inter-process communication (IPC) calls. All devices launching with Android 8.0 or later must +support binderized HALs only.</li> <li><strong>Passthrough HALs</strong>. A HIDL-wrapped conventional or legacy HAL. These HALs wrap existing HALs and can serve the HAL in binderized and -same-process (passthrough) modes. Devices upgrading to Android O can use +same-process (passthrough) modes. Devices upgrading to Android 8.0 can use passthrough HALs.</li> </ul> @@ -49,7 +50,7 @@ passthrough HALs.</li> </tr> <tr> -<td><em>Launch with Android O</em></td> +<td><em>Launch with Android 8.0</em></td> <td>HALs listed in <a href="#passthrough">Passthrough HALs</a> must be passthrough.</td> <td>All other HALs are binderized (including HALs that are vendor @@ -57,7 +58,7 @@ extensions).</td> </tr> <tr> -<td rowspan=2><em>Upgrade to Android O</em></td> +<td rowspan=2><em>Upgrade to Android 8.0</em></td> <td>HALs listed in <a href="#passthrough">Passthrough HALs</a> must be passthrough.</td> <td>HALs listed in <a href="#binderized">Binderized HALs</a> must be @@ -78,19 +79,19 @@ devices regardless of whether they are launch devices or upgrade devices:</p> <ul> <li><code>android.hardware.biometrics.fingerprint@2.1</code>. Replaces -<code>fingerprintd</code> which is no longer in Android O.</li> -<li><code>android.hardware.configstore@1.0</code>. New in Android O.</li> +<code>fingerprintd</code> which is no longer in Android 8.0.</li> +<li><code>android.hardware.configstore@1.0</code>. New in Android 8.0.</li> <li><code>android.hardware.dumpstate@1.0</code>. The original interface provided by this HAL could not be shimmed and was changed. Because of this, <code>dumpstate_board</code> must be re-implemented on a given device (this is an optional HAL).</li> <li><code>android.hardware.graphics.allocator@2.0</code>. Required to be -binderized in Android O so file descriptors don't have to be shared between +binderized in Android 8.0 so file descriptors don't have to be shared between trusted and untrusted processes.</li> <li><code>android.hardware.radio@1.0</code>. Replaces the interface provided by <code>rild</code> which lives in its own process.</li> -<li><code>android.hardware.usb@1.0</code>. New in Android O.</li> -<li><code>android.hardware.wifi@1.0</code>. New in Android O, replaces the +<li><code>android.hardware.usb@1.0</code>. New in Android 8.0.</li> +<li><code>android.hardware.wifi@1.0</code>. New in Android 8.0, replaces the legacy Wi-Fi HAL library that was loaded into <code>system_server</code>.</li> <li><code>android.hardware.wifi.supplicant@1.0</code>. A HIDL interface over the existing <code>wpa_supplicant</code> process.</li> @@ -133,7 +134,7 @@ passthrough)</li> <h2 id=legacy>Conventional & legacy HALs</h2> -<p>Conventional HALs (deprecated in Android O) are interfaces that conform to a +<p>Conventional HALs (deprecated in Android 8.0) are interfaces that conform to a specific named and versioned application binary interface (ABI). The bulk of Android system interfaces (<a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h">camera</a>, @@ -142,10 +143,10 @@ Android system interfaces etc.) are in the form of conventional HALs, which are defined under <a href="https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware">hardware/libhardware/include/hardware</a>.</p> -<p>Legacy HALs (also deprecated in Android O) are interfaces that predate +<p>Legacy HALs (also deprecated in Android 8.0) are interfaces that predate conventional HALs. A few important subsystems (Wi-Fi, Radio Interface Layer, and Bluetooth) are legacy HALs. While there's no uniform or standardized way to -describe a legacy HAL, anything predating Android O that is not a conventional +describe a legacy HAL, anything predating Android 8.0 that is not a conventional HAL is a legacy HAL. Parts of some legacy HALs are contained in <a href="https://android.googlesource.com/platform/hardware/libhardware_legacy/+/master">libhardware_legacy</a>, while other parts are interspersed throughout the codebase.</p> diff --git a/en/devices/architecture/kernel/modular-kernels.html b/en/devices/architecture/kernel/modular-kernels.html index dc36e8c8..5c4b54c3 100644 --- a/en/devices/architecture/kernel/modular-kernels.html +++ b/en/devices/architecture/kernel/modular-kernels.html @@ -573,7 +573,7 @@ subject to A/B. <h2 id="device-tree-overlay-support-bootloader">Device tree overlay support (Bootloader)</h2> <p> -<a href="https://lkml.org/lkml/2012/11/5/615">Device Tree Overlay</a> (DTO) was +<a href="/devices/architecture/dto/">Device Tree Overlay</a> (DTO) was designed to extend the existing <a href="https://events.linuxfoundation.org/sites/events/files/slides/petazzoni-device-tree-dummies.pdf" class="external">flattened device-tree (FDT)</a> implementation so that the initial device-tree data in diff --git a/en/devices/tech/dalvik/improvements.html b/en/devices/tech/dalvik/improvements.html index 1461aff1..aa41a1f0 100644 --- a/en/devices/tech/dalvik/improvements.html +++ b/en/devices/tech/dalvik/improvements.html @@ -27,6 +27,31 @@ release. The list below summarizes enhancements device manufacturers can expect in ART. </p> +<h2 id="concurrent-compacting-gc">Concurrent compacting garbage collector</h2> + +<p>As announced at Google I/O, ART features a new concurrent compacting garbage +collector (GC) in Android 8.0. This collector compacts the heap every time GC +runs and while the app is running, with only one short pause for processing +thread roots. Here are its benefits:</p> + +<ul> + <li>GC always compacts the heap: 32% smaller heap sizes on average compared + to Android 7.0.</li> + <li>Compaction enables thread local bump pointer object allocation: + Allocations are 70% faster than in Android 7.0.</li> + <li>Offers 85% smaller pause times for the H2 benchmark compared to the + Android 7.0 GC.</li> + <li>Pause times no longer scale with heap size; apps should be able to use + large heaps without worrying about jank.</li> + <li>GC implementation detail - Read barriers: + <ul> + <li>Read barriers are a small amount of work done for each object field + read.</li> + <li>These are optimized in the compiler, but might slow down some use + cases.</li> + </ul> +</ul> + <h2 id="loop-optimizations">Loop optimizations</h2> <p> diff --git a/en/devices/tech/debug/sanitizers.html b/en/devices/tech/debug/sanitizers.html index 5e0914bb..cb906ca8 100644 --- a/en/devices/tech/debug/sanitizers.html +++ b/en/devices/tech/debug/sanitizers.html @@ -150,7 +150,6 @@ LOCAL_CFLAGS := -std=c11 -Wall -Werror -O0 LOCAL_SRC_FILES:= sanitizer-status.c LOCAL_MODULE:= sanitizer-status -LOCAL_MODULE_TAGS := debug LOCAL_SANITIZE := alignment bounds null unreachable integer LOCAL_SANITIZE_DIAG := alignment bounds null unreachable integer @@ -177,7 +176,6 @@ a blueprint (Android.bp): srcs: ["sanitizer-status.c"], name: "sanitizer-status", - tags: ["debug"], sanitize: { misc_undefined: [ diff --git a/en/devices/tech/perf/low-ram.html b/en/devices/tech/perf/low-ram.html index 4b9f67e7..715ff5c1 100644 --- a/en/devices/tech/perf/low-ram.html +++ b/en/devices/tech/perf/low-ram.html @@ -34,8 +34,7 @@ releases as well.</p> <h3 id="opt-mgmt">Improved memory management</h3> <ul> -<li>Validated memory-saving kernel configurations: Kernel Same-page Merging -(KSM), and Swap to ZRAM.</li> +<li>Validated memory-saving kernel configurations: Swap to ZRAM.</li> <li>Kill cached processes if about to be uncached and too large.</li> <li>Don't allow large services to put themselves back into A Services (so they can't cause the launcher to be killed).</li> @@ -200,37 +199,6 @@ proportionally to the smaller buckets. 0 keeps the default. --> <integer name="config_lowMemoryKillerMinFreeKbytesAdjust">0</integer> </pre> -<h3 id="ksm">KSM (Kernel samepage merging)</h3> - -<p>KSM is a kernel thread that runs in the background and compares pages in -memory that have been marked <code>MADV_MERGEABLE</code> by user-space. If two pages are -found to be the same, the KSM thread merges them back as a single -copy-on-write page of memory.</p> - -<p>KSM will save memory over time on a running system, gaining memory duplication -at a cost of CPU power, which could have an impact on battery life. You should -measure whether the power tradeoff is worth the memory savings you get by -enabling KSM.</p> - -<p>To test KSM, we recommend looking at long running devices (several hours) and -seeing whether KSM makes any noticeable improvement on launch times and -rendering times.</p> - -<p>To enable KSM, enable <code>CONFIG_KSM</code> in the kernel and then add the -following lines to your` <code>init.<device>.rc</code> file:<br> - -<pre class="devsite-click-to-copy"> -write /sys/kernel/mm/ksm/pages_to_scan 100 -write /sys/kernel/mm/ksm/sleep_millisecs 500 -write /sys/kernel/mm/ksm/run 1 -</pre> - -<p>Once enabled, there are few utilities that will help in the debugging namely : -procrank, librank, & ksminfo. These utilities allow you to see which KSM -memory is mapped to what process, which processes use the most KSM memory. -Once you have found a chunk of memory that looks worth exploring you can use -the hat utility if it's a duplicate object on the dalvik heap. </p> - <h3 id="zram">Swap to zRAM</h3> <p>zRAM swap can increase the amount of memory available in the system by |