Merge "Docs: Make clear logging mode is optional"
diff --git a/src/compatibility/5.1/CDD_README.txt b/src/compatibility/5.1/CDD_README.txt
index f6901a2..7de944d 100644
--- a/src/compatibility/5.1/CDD_README.txt
+++ b/src/compatibility/5.1/CDD_README.txt
@@ -1,28 +1,28 @@
-WKTHMLTOPDF README
-==================
+CDD GENERATION README
+=======================
Or, how I stopped hating the cdd and learned to love html-to-pdf conversions.
OVERVIEW
==================
-TL:DR This document describes how to create a CDD.pdf from the CDD.html file. You need to generate a cover file and a body file, then use Adobe Acrobat to insert the cover page into the body.pdf.
+TL:DR This document describes how to create a CDD PDF from the CDD HTML file. You need to generate a cover file and a body file, then use a PDF editor to insert the cover page into the body.pdf.
The Android Compatibilty Definition Document (CDD) is maintained as an html file but distributed as a .pdf. The partner team updates the CDD for every new major Android release and the APE doc team posts the new .pdf to source.android.com in http://source.android.com/compatibility/.
-To create the pdf from the html file, use wkhtmltopdf (http://wkhtmltopdf.org/) plus a little bit of Adobe Acrobat. You can do the conversion on a Mac or Linux (or even Windows); you just need to download the wkhtmltopdf pkg for your system. However, since you must use Adobe Acrobat Pro (not Reader) to insert the cover page, you must perform this step on a Mac or Windows box (none of the Linux PDF apps can do the swap successfully and still maintain the PDF bookmarks and links)
+To create the pdf from the html file, use wkhtmltopdf (http://wkhtmltopdf.org/) plus a little bit of PDF editing. You can do the conversion on a Mac or Linux (or even Windows); you just need to download the wkhtmltopdf pkg for your system. However, you must perform the editing in a professional PDF editor; for Mac and Windows this is Adobe Acrobat Pro; for Linux this is PDF Studio 10 (none of the free Linux PDF apps can do the swap successfully and still maintain the PDF bookmarks and links).
1. INSTALL WKHTMLTOPDF
-====================
-Go to http://wkhtmltopdf.org/ and download the app for your system. It's command line only.
+=======================
+Go to http://wkhtmltopdf.org/ and download the app for your system OS. It's command line only.
2. GENERATE COVER PDF
-======================
+=======================
Syntax:
-wkthmltopdf [page-size] [page-margins] cover path-to-html path-to-pdf
+wkhtmltopdf [page-size] [page-margins] cover path-to-html path-to-pdf
page-size
Set to letter.
@@ -33,19 +33,18 @@
Ex. -B 0in -T 0in -L 0in -R 0in
path-to-html
-The full path (from root, including the filename) to the cover html file. You will need to update the cover text to specify the release name , number, and date. You might also need to swap the image out for the image associated with the release (store images in compatibility/images).
-Ex:
-/usr/local/google/home/hvm/Projects/internal/lmp-mr1-dev/docs/source.android.com/src/compatibility/5.1/android-cdd-cover_5_1.html
+The full path to the cover html file. You will need to update the cover text to specify the release name , number, and date. You might also need to swap the image out for the image associated with the release (store images in compatibility/images).
+Ex: docs/source.android.com/src/compatibility/5.1/android-cdd-cover_5_1.html
path-to-pdf
-The full path (from root, including the filename) to where you want the output pdf file to reside. If the pdf file is NOT open (in Preview or some other app), running the command will silently overwrite the existing .pdf.
-Ex.
-/usr/local/google/home/hvm/Projects/internal/lmp-mr1-dev/docs/source.android.com/src/compatibility/5.1/android-cdd-cover.pdf
+The full path to where you want the output pdf file to reside. If the pdf file is NOT open (in Preview or some other app), running the command will silently overwrite the existing .pdf.
+Ex. docs/source.android.com/src/compatibility/5.1/android-cdd-cover.pdf
+Example cover command run from top-level project:
+wkhtmltopdf -s letter -B 0in -T 0in -L 0in -R 0in cover docs/source.android.com/src/compatibility/5.1/android-cdd-cover_5_1.html docs/source.android.com/src/compatibility/5.1/android-cdd-cover.pdf
-Example cover command:
-
-wkhtmltopdf -s letter -B 0in -T 0in -L 0in -R 0in cover /usr/local/google/home/hvm/Projects/internal/lmp-mr1-dev/docs/source.android.com/src/compatibility/5.1/android-cdd-cover_5_1.html /usr/local/google/home/hvm/Projects/internal/lmp-mr1-dev/docs/source.android.com/src/compatibility/5.1/android-cdd-cover.pdf
+Example cover command run from 5.1 release folder:
+wkhtmltopdf -s letter -B 0in -T 0in -L 0in -R 0in cover android-cdd-cover_5_1.html /android-cdd-cover.pdf
3. GENERATE BODY PDF
@@ -59,35 +58,37 @@
Ex. -B 1in -T 1in -L .75in -R .75in
path-to-html
-The full path (from root, including the filename) to the body html file. This is the main cdd.html, which will change with each release.
-Ex.
-/usr/local/google/home/hvm/Projects/internal/lmp-mr1-dev/docs/source.android.com/src/compatibility/5.1/android-5.1-cdd.html
+The full path to the body html file. This is the main cdd.html, which will change with each release.
+Ex. docs/source.android.com/src/compatibility/5.1/android-5.1-cdd.html
path-to-footer
-The full path (from root, including the filename) to the footer html file. This is a simple html file that contains the android logo and some javascript to calculate the page number and count. The footer should NOT change from release to release.
-Ex.
---footer-html /usr/local/google/home/hvm/Projects/internal/lmp-mr1-dev/docs/source.android.com/src/compatibility/5.1/android-cdd-footer.html
-
+The full path to the footer html file. This is a simple html file that contains the android logo and some javascript to calculate the page number and count. The footer should NOT change from release to release.
+Ex. --footer-html docs/source.android.com/src/compatibility/5.1/android-cdd-footer.html
path-to-pdf
-The full path (from root, including the filename) to where you want the output pdf file to reside. If the pdf file is NOT open (in Preview or some other app), running the command will silently overwrite the existing .pdf.
-Ex.
-/usr/local/google/home/hvm/Projects/internal/lmp-mr1-dev/docs/source.android.com/src/compatibility/5.1/android-cdd-body.pdf
+The full path to where you want the output pdf file to reside. If the pdf file is NOT open (in Preview or some other app), running the command will silently overwrite the existing .pdf.
+Ex. docs/source.android.com/src/compatibility/5.1/android-cdd-body.pdf
+Example body command run from top-level project:
+wkhtmltopdf -B 1in -T 1in -L .75in -R .75in page docs/source.android.com/src/compatibility/5.1/android-5.1-cdd.html --footer-html docs/source.android.com/src/compatibility/5.1/android-cdd-footer.html docs/source.android.com/src/compatibility/5.1/android-cdd-body.pdf
-Example body command:
+Example body command run from 5.1 release folder:
+wkhtmltopdf -B 1in -T 1in -L .75in -R .75in page android-5.1-cdd.html --footer-html android-cdd-footer.html android-cdd-body.pdf
-wkhtmltopdf -B 1in -T 1in -L .75in -R .75in page /usr/local/google/home/hvm/Projects/internal/lmp-mr1-dev/docs/source.android.com/src/compatibility/5.1/android-5.1-cdd.html --footer-html /usr/local/google/home/hvm/Projects/internal/lmp-mr1-dev/docs/source.android.com/src/compatibility/5.1/android-cdd-footer.html /usr/local/google/home/hvm/Projects/internal/lmp-mr1-dev/docs/source.android.com/src/compatibility/5.1/android-cdd-body.pdf
-
-4. CREATE CSS PDF
+4. CREATE CDD PDF
==================
-A. Open the body.pdf in Adobe Acrobat Pro (you *cannot* use Acrobat Reader for this task).
-B. Select Tools > Replace, then open the cover.pdf file and replace page 1 of the body.pdf with page 1 of the cover.pdf.
+A. Open the body.pdf:
+ On a Mac or Windows, use Adobe Acrobat Pro (you *cannot* use Acrobat Reader for this task).
+ On Ubuntu, use PDF Studio 10 (other free pdf programs *cannot* handle the merge + bookmarks).
+B. Replace page 1 of the body.pdf with page 1 of the cover.pdf. For example, if you are using Adobe Acrobat Pro:
+ 1. Open the body.pdf in Adobe Acrobat Pro.
+ 2. Select Tools > Pages > Replace.
+ 2. Open the cover.pdf file.
+ 3. Replace page 1 of the body.pdf with page 1 of the cover.pdf.
C. Save the new file as the android-cdd_x_x.pdf (where X_X is the number of the release, such as 5.1).
QUESTIONS?
==================
- For details on wkhtmltopdf, see http://wkhtmltopdf.org/usage/wkhtmltopdf.txt.
-- all cdd html, css, and current pdf files are in docs/source.android.com/src/compatibility/release-number (currently 5.1).
-- all cdd images are in docs/source.android.com/src/compatibility/images.
-- all files currently in the lmp-dev-mr1 branch.
\ No newline at end of file
+- CDD html, css, and pdf files are in docs/source.android.com/src/compatibility/release.
+- CDD images are in docs/source.android.com/src/compatibility/images.
\ No newline at end of file
diff --git a/src/compatibility/CDD_README.txt b/src/compatibility/CDD_README.txt
index a702444..7de944d 100644
--- a/src/compatibility/CDD_README.txt
+++ b/src/compatibility/CDD_README.txt
@@ -22,7 +22,7 @@
Syntax:
-wkthmltopdf [page-size] [page-margins] cover path-to-html path-to-pdf
+wkhtmltopdf [page-size] [page-margins] cover path-to-html path-to-pdf
page-size
Set to letter.
@@ -75,12 +75,16 @@
Example body command run from 5.1 release folder:
wkhtmltopdf -B 1in -T 1in -L .75in -R .75in page android-5.1-cdd.html --footer-html android-cdd-footer.html android-cdd-body.pdf
-4. CREATE CSS PDF
+4. CREATE CDD PDF
==================
A. Open the body.pdf:
On a Mac or Windows, use Adobe Acrobat Pro (you *cannot* use Acrobat Reader for this task).
On Ubuntu, use PDF Studio 10 (other free pdf programs *cannot* handle the merge + bookmarks).
-B. Replace page 1 of the body.pdf with page 1 of the cover.pdf.
+B. Replace page 1 of the body.pdf with page 1 of the cover.pdf. For example, if you are using Adobe Acrobat Pro:
+ 1. Open the body.pdf in Adobe Acrobat Pro.
+ 2. Select Tools > Pages > Replace.
+ 2. Open the cover.pdf file.
+ 3. Replace page 1 of the body.pdf with page 1 of the cover.pdf.
C. Save the new file as the android-cdd_x_x.pdf (where X_X is the number of the release, such as 5.1).
QUESTIONS?
diff --git a/src/compatibility/cts/setup.jd b/src/compatibility/cts/setup.jd
index 6e13ede..3ebbb9f 100644
--- a/src/compatibility/cts/setup.jd
+++ b/src/compatibility/cts/setup.jd
@@ -24,6 +24,29 @@
</div>
</div>
+<h2 id=physical_environment>Physical environment</h2>
+<h3 id=wifi>Wi-Fi and IPv6</h3>
+<p>CTS tests require a Wi-Fi network that supports IPv6, can treat the Device
+Under Test (DUT) as an isolated client, and has an internet
+connection. An isolated client refers to a
+configuration where the DUT does not have visibility to the
+broadcast/multinetwork messages on that subnetwork, either by a Wi-Fi AP
+configuration or by running the DUT on an isolated sub-network without
+other devices being connected.</p>
+
+<p>If you don’t have access to a native IPv6 network, an IPv6 carrier network,
+or a VPN to pass some tests depending on IPv6, you may instead use a Wi-Fi
+access point and an IPv6 tunnel. See Wikipedia <a
+href="http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers">list of IPv6
+tunnel brokers</a>.</p>
+
+<h3 id=ble_beacons>Bluetooth LE beacons</h3>
+<p>If the DUT supports the Bluetooth LE feature, then at least three
+Bluetooth LE beacons should be placed within five meters of the DUT for Bluetooth
+LE scan testing. Those beacons can be any kind, do not need to be
+configured or emit anything specific, and can include iBeacon,
+Eddystone, or even devices simulating BLE beacons.</p>
+
<h2 id=desktop_setup>Desktop machine setup</h2>
<h3 id=adb>ADB and AAPT</h3>
<p>Before running the CTS, make sure you have recent versions of both <a
@@ -129,18 +152,9 @@
<li>Turn on the location setting if there is a GPS or Wi-Fi / Cellular network
feature on the device: <strong>Settings > Location</strong>
<li>Connect to a Wi-Fi network that supports IPv6, can treat the Device
-Under Test (DUT) as an <em>isolated client</em> (see note below), and has an
+Under Test (DUT) as an <em>isolated client</em> (see the <a
+href="physical_environment">Physical Environment</a> section above), and has an
internet connection: <strong>Settings > Wi-Fi</strong>
-<p class="note"><strong>Tip:</strong> If you don’t have access to a native
-IPv6 network, an IPv6 carrier network,
-or a VPN to pass some tests depending on IPv6, you may instead use a
-Wi-Fi
- access point and an IPv6 tunnel. See Wikipedia <a href="http://en.wikipedia.org/wiki/List_of_IPv6_tunnel_brokers">list of IPv6 tunnel brokers</a>.</p>
-<p class="note"><strong>Note:</strong> An isolated client refers to a
-configuration where the DUT does not have visibility to the
-broadcast/multinetwork messages on that subnetwork, either by a Wi-Fi AP
-configuration or by running the DUT on an isolated sub-network without
-other devices being connected.</p>
<li>Make sure no lock pattern or password is set on the device: <strong>Settings > Security > Screen
lock = 'None'</strong>
<li>Enable <strong>USB debugging</strong> on your device: <strong>Settings > Developer options > USB debugging</strong>.
diff --git a/src/devices/graphics/index.jd b/src/devices/graphics/index.jd
index 1c5b025..3690d2c 100644
--- a/src/devices/graphics/index.jd
+++ b/src/devices/graphics/index.jd
@@ -132,7 +132,7 @@
<p>The graphics memory allocator is needed to allocate memory that is requested
by image producers. See the <a
-href="{@docRoot}devices/graphics.html#gralloc">Gralloc HAL</a> section for more
+href="{@docRoot}devices/graphics/architecture.html#gralloc_HAL">Gralloc HAL</a> section for more
information.</p>
<h2 id="data_flow">Data flow</h2>
diff --git a/src/devices/tech/ota/device_code.jd b/src/devices/tech/ota/device_code.jd
index 0133705..197866e 100755
--- a/src/devices/tech/ota/device_code.jd
+++ b/src/devices/tech/ota/device_code.jd
@@ -522,11 +522,12 @@
</table>
<p>The installing animation is represented as a single PNG image with
-different frames of the animation interlaced by row. For example, for a
-7-frame animation that is 200x200, create a single 200x1400 image where first
-frame is rows 0, 7, 14, 21, ...; the second frame is rows 1, 8, 15, 22, ...;
-etc. The combined image includes a text chunk that indicates the number of
-animation frames. The tool <code>bootable/recovery/interlace-frames.py</code>
+different frames of the animation interlaced by row (which is why Figure 2
+appears squished). For example, for a 7-frame animation that is 200x200, create
+a single 200x1400 image where first frame is rows 0, 7, 14, 21, ...; the second
+frame is rows 1, 8, 15, 22, ...; etc. The combined image includes a text chunk
+that indicates the number of animation frames. The tool
+<code>bootable/recovery/interlace-frames.py</code>
takes a set of input frames and combines them into the necessary composite
image used by recovery.</p>
diff --git a/src/devices/tech/power/values.jd b/src/devices/tech/power/values.jd
index 912b2b6..e75d50a 100644
--- a/src/devices/tech/power/values.jd
+++ b/src/devices/tech/power/values.jd
@@ -33,6 +33,12 @@
the values (deriving differences from other baseline power uses as appropriate).
</p>
+<p>As the goal of a power profile is to estimate battery drain appropriately,
+power profile values are given in current (amps). The Android framework
+multiplies the current by the time for which the subsystem was active and
+computes the mAh value, which is then used to estimate the amount of battery
+drained by the application/subsystem.</p>
+
<h2 id="multiple-cpus">Devices with heterogeneous CPUs</h2>
<p>The power profile for devices with CPU cores of heterogeneous architecture
diff --git a/src/source/developing.jd b/src/source/developing.jd
index 1ccb12e..4085df0 100644
--- a/src/source/developing.jd
+++ b/src/source/developing.jd
@@ -25,7 +25,7 @@
</div>
<p>To work with the Android code, you will need to use both Git and Repo. In most situations, you can use Git instead of Repo, or mix Repo and Git commands to form complex commands. Using Repo for basic across-network operations will make your work much simpler, however.</p>
-<p><strong>Git</strong> is an open source version-control system designed to handle very large projects that are distributed over multiple repositories. In the context of Android, we use Git for local operations such as local branching, commits, diffs, and edits. One of the challenges in setting up the Android project was figuring out how to best support the outside community--from the hobbiest community to large OEMs building mass-market consumer devices. We wanted components to be replaceable, and we wanted interesting components to be able to grow a life of their own outside of Android. We first chose a distributed revision control system, then further narrowed it down to Git.</p>
+<p><strong>Git</strong> is an open source version-control system designed to handle very large projects that are distributed over multiple repositories. In the context of Android, we use Git for local operations such as local branching, commits, diffs, and edits. One of the challenges in setting up the Android project was figuring out how to best support the outside community--from the hobbyist community to large OEMs building mass-market consumer devices. We wanted components to be replaceable, and we wanted interesting components to be able to grow a life of their own outside of Android. We first chose a distributed revision control system, then further narrowed it down to Git.</p>
<p><strong>Repo</strong> is a repository management tool that we built on top of Git. Repo
unifies the many Git repositories when necessary, does the uploads to our
<a href="https://android-review.googlesource.com/">revision control system</a>, and