aboutsummaryrefslogtreecommitdiff
path: root/en/devices
diff options
context:
space:
mode:
authorBilly Lamberta <blamb@google.com>2017-10-23 21:18:48 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-10-23 21:18:48 +0000
commit96deba20c83e0d2756e4c7861622a554955fe8db (patch)
treed7e21f8d551fa33c6bc03dc13626a57040beed2d /en/devices
parent344332ce19b130799caee39340742bf31a291748 (diff)
parent3587851127f0703f29ac921d44c8696315a693b0 (diff)
downloadsource.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.html33
-rw-r--r--en/devices/architecture/kernel/modular-kernels.html2
-rw-r--r--en/devices/tech/dalvik/improvements.html25
-rw-r--r--en/devices/tech/debug/sanitizers.html2
-rw-r--r--en/devices/tech/perf/low-ram.html34
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 &amp; 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. --&gt;
&lt;integer name=&quot;config_lowMemoryKillerMinFreeKbytesAdjust&quot;&gt;0&lt;/integer&gt;
</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.&lt;device&gt;.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, &amp; 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