* Added in-page TOC to all pages.
* Removed "Introduction" title from all pages.
diff --git a/pdk/docs/guide/audio.jd b/pdk/docs/guide/audio.jd
index ae97e21..0467d89 100755
--- a/pdk/docs/guide/audio.jd
+++ b/pdk/docs/guide/audio.jd
@@ -7,14 +7,12 @@
<h2>In this document</h2>
<a name="toc"/>
<ul>
-<li><a href="#androidAudioSubSystemIntroduction">Introduction</a></li>
<li><a href="#androidAudioBuildingDriver">Building an Audio Library</a></li>
<li><a href="#androidAudioInterface">Interface</a></li>
</ul>
</div>
</div>
-<a name="androidAudioSubSystemIntroduction"></a><h2>Introduction</h2>
<p>AudioHardwareInterface serves as the glue between proprietary audio drivers and the Android AudioFlinger service, the core audio service that handles all audio-related requests from applications.</p>
<p><img src="images/android_audio_architecture.gif"></p>
@@ -23,7 +21,7 @@
-<a name="androidAudioBuildingDriver"></a><h2>Building an Audio Library</h2>
+<a name="androidAudioBuildingDriver"></a><h3>Building an Audio Library</h3>
<p>To implement an audio driver, create a shared library that implements the interface defined in <code>AudioHardwareInterface.h</code>. You must name your shared library <code>libaudio.so</code> so that it will get loaded from <code>/system/lib</code> at runtime. Place libaudio sources and <code>Android.mk</code> in <code>partner/acme/chipset_or_board/libaudio/</code>.</p>
<p>The following stub <code>Android.mk</code> file ensures that <code>libaudio</code> compiles and links to the appropriate libraries:</p>
@@ -52,7 +50,7 @@
</pre>
-<a name="androidAudioInterface"></a><h2>Interface</h2>
+<a name="androidAudioInterface"></a><h3>Interface</h3>
diff --git a/pdk/docs/guide/bluetooth.jd b/pdk/docs/guide/bluetooth.jd
index 5d5e806..e514ef0 100755
--- a/pdk/docs/guide/bluetooth.jd
+++ b/pdk/docs/guide/bluetooth.jd
@@ -2,20 +2,19 @@
pdk.version=1.0
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidBluetoothIntro">Introduction</a><br/>
-<a href="#androidBluetoothPorting">Porting</a><br/><div style="padding-left:40px">
-
-<a href="#androidBluetoothPortingDriver">UART Driver</a><br/>
-<a href="#androidBluetoothPortingPowerOnOff">Bluetooth Power On / Off</a><br/></div>
-<a href="#androidBluetoothCompiling">Compiling</a><br/>
-<a href="#androidBluetoothTroubleshooting">Troubleshooting</a><br/>
-<a href="#androidBluetoothTools">Tools</a><br/>
-<a href="#androidBluetoothFeatures">Feature Support</a><br/>
+<ul>
+<li><a href="#androidBluetoothPorting">Porting</a></li>
+<li><a href="#androidBluetoothCompiling">Compiling</a></li>
+<li><a href="#androidBluetoothTroubleshooting">Troubleshooting</a></li>
+<li><a href="#androidBluetoothTools">Tools</a></li>
+<li><a href="#androidBluetoothFeatures">Feature Support</a></li>
+</ul>
</div>
-
-<a name="androidBluetoothIntro"></a><h2>Introduction</h2>
+</div>
<p>Android's Bluetooth stack uses BlueZ version 3.36 for GAP, SDP, and RFCOMM profiles, and is a SIG-qualified Bluetooth 2.0 + EDR host stack.</p>
@@ -31,7 +30,7 @@
-<a name="androidBluetoothPorting"></a><h2>Porting</h2>
+<a name="androidBluetoothPorting"></a><h3>Porting</h3>
<p>BlueZ is Bluetooth 2.0 compatible and should work with any 2.0 chipset. There are two integration points:</p>
<p><ul>
@@ -41,13 +40,13 @@
</p>
-<a name="androidBluetoothPortingDriver"></a><h3>UART Driver</h3>
+<a name="androidBluetoothPortingDriver"></a><h4>UART Driver</h4>
<p>The BlueZ kernel sub-system attaches to your hardware-specific UART driver using the <code>hciattach</code> daemon.</p>
<p>For example, for MSM7201A, this is <code>drivers/serial/msm_serial.c</code>. You may also need to edit command line options to <code>hciattach</code> via <code>init.rc</code>.</p>
-<a name="androidBluetoothPortingPowerOnOff"></a><h3>Bluetooth Power On / Off</h3>
+<a name="androidBluetoothPortingPowerOnOff"></a><h4>Bluetooth Power On / Off</h4>
<p>The method for powering on and off your bluetooth chip varies from Android V 1.0 to post 1.0.</p>
@@ -58,14 +57,14 @@
</ul>
</p>
-<a name="androidBluetoothCompiling">Compiling</a><h3>Compiling</h3>
+<a name="androidBluetoothCompiling"></a><h4>Compiling</h4>
<p>To compile Android with Bluetooth support enabled, add the following line to <code>BoardConfig.mk</code>.
<pre>
BOARD_HAVE_BLUETOOTH := true
</pre>
-<a name="androidBluetoothTroubleshooting"></a><h2>Troubleshooting</h2>
+<a name="androidBluetoothTroubleshooting"></a><h3>Troubleshooting</h3>
<p><strong>Debugging</strong></p>
<p>To debug your bluetooth implementation, start by reading the logs (<code>adb logcat</code>) and look for ERRROR and WARNING messages regarding Bluetooth.
Andoird uses Bluez, which comes with some useful debugging tools. The snippet below provides examples in a suggested order:</p>
@@ -82,7 +81,7 @@
<p><strong>hciconfig -a and hcitool</strong></p>
<p>If you compile your own system.img for Android, and <code>hciconfig -a</code> works but <code>hcitool</code> scan doesn't, try installing the firmware for the Bluetooth chipset. This firmware isn't yet available in the open source codebase, but you can <code>adb pull</code> and then <code>adb push</code>it from a stock T-Mobile G1 (located in <code>/etc/firmware/brf6300.bin</code>).<br />
<a name="androidBluetoothTools"></a></p>
-<h2>Tools</h2>
+<h3>Tools</h3>
<p>BlueZ provides a rich set of command line tools for debugging and interacting with the Bluetooth sub-system, including:</p>
<p><ul>
@@ -96,7 +95,7 @@
</p>
<a name="androidBluetoothFeatures"></a>
-<h2>Feature Support</h2>
+<h3>Feature Support</h3>
<p>This section provides a change history of Bluetooth features added in each Android release and provides some rough guidance as to future features. </p>
<h4>Android 1.0 release</h4>
<h5>Platform features</h5>
diff --git a/pdk/docs/guide/build_cookbook.jd b/pdk/docs/guide/build_cookbook.jd
index b9d9f7c..fc34132 100755
--- a/pdk/docs/guide/build_cookbook.jd
+++ b/pdk/docs/guide/build_cookbook.jd
@@ -1,19 +1,26 @@
-page.title=<my_page_title>
-pdk.version=<current_PDK_version>
+page.title=Build Cookbook
+pdk.version=1.0
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px">
-<a href="http://wiki.corp.google.com/twiki/bin/view/Main/AndroidBuildCookbook#Building_a_simple_APK">Building a simple APK</a><br>
- <a href="http://wiki.corp.google.com/twiki/bin/view/Main/AndroidBuildCookbook#Building_a_APK_that_depends_on_a">Building a APK that depends on a static .jar file</a><br>
- <a href="http://wiki.corp.google.com/twiki/bin/view/Main/AndroidBuildCookbook#Building_a_APK_that_should_be_si">Building a APK that should be signed with the platform key</a><br>
- <a href="http://wiki.corp.google.com/twiki/bin/view/Main/AndroidBuildCookbook#Building_a_APK_that_should_be_si">Building a APK that should be signed with a specific vendor key</a><br>
- <a href="http://wiki.corp.google.com/twiki/bin/view/Main/AndroidBuildCookbook#Adding_a_prebuilt_APK">Adding a prebuilt APK</a><br>
- <a href="http://wiki.corp.google.com/twiki/bin/view/Main/AndroidBuildCookbook#Adding_a_Static_Java_Library">Adding a Static Java Library</a><br>
- </div>
-
+<ul>
+<li><a href="#simpleAPK">Simple APK</a></li>
+<li><a href="#APKJar">APK Dependent on static .jar file</a></li>
+ <li><a href="#APKPlatform">APK signed with the platform key</a></li>
+ <li><a href="#APKVendor">APK that signed with vendor key</a></li>
+ <li><a href="#prebuiltAPK">Prebuilt APK</a></li>
+ <li><a href="#staticJava">Adding a Static Java Library</a></li>
+ <li><a href="#mkVars">Android.mk variables</a></li>
+</ul>
+</div>
+</div>
+
+
<p>The Android Build Cookbook offers code snippets to help you quickly implement some common build tasks. For additional instruction, please see the other build documents in this section.</p>
-<h2><a name="Building_a_simple_APK" id="Building_a_simple_APK"></a>Building a simple APK</h2>
+<h3><a name="simpleAPK"></a>Building a simple APK</h3>
<pre>
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
@@ -27,7 +34,7 @@
# Tell it to build an APK
include $(BUILD_PACKAGE)
</pre>
-<h2><a name="Building_a_APK_that_depends_on_a" id="Building_a_APK_that_depends_on_a"></a>Building a APK that depends on a static .jar file</h2>
+<h3><a name="APKJar"></a>Building a APK that depends on a static .jar file</h3>
<pre>
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
@@ -44,7 +51,7 @@
# Tell it to build an APK
include $(BUILD_PACKAGE)
</pre>
-<h2><a name="Building_a_APK_that_should_be_si" id="Building_a_APK_that_should_be_si">Building a APK that should be signed with the platform key</a></h2>
+<h3><a name="APKPlatform"></a>Building a APK that should be signed with the platform key</h3>
<pre>
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
@@ -60,7 +67,7 @@
# Tell it to build an APK
include $(BUILD_PACKAGE)
</pre>
-<h2>Building a APK that should be signed with a specific vendor key</h2>
+<h3><a name="APKVendor"></a>Building a APK that should be signed with a specific vendor key</h3>
<pre>
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
@@ -76,7 +83,7 @@
# Tell it to build an APK
include $(BUILD_PACKAGE)
</pre>
-<h2><a name="Adding_a_prebuilt_APK" id="Adding_a_prebuilt_APK"></a>Adding a prebuilt APK</h2>
+<h3><a name="prebuiltAPK"></a>Adding a prebuilt APK</h3>
<pre>
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
@@ -89,7 +96,7 @@
include $(BUILD_PREBUILT)
</pre>
-<h2><a name="Adding_a_Static_Java_Library" id="Adding_a_Static_Java_Library"></a>Adding a Static Java Library</h2>
+<h3><a name="staticJava"></a>Adding a Static Java Library</h3>
<pre>
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
@@ -106,7 +113,7 @@
# Build a static jar file.
include $(BUILD_STATIC_JAVA_LIBRARY)
</pre>
-<h2><a name="Android_mk_variables" id="Android_mk_variables"></a>Android.mk Variables</h2>
+<h3><a name="mkVars"></a>Android.mk Variables</h3>
<p>These are the variables that you'll commonly see in Android.mk files, listed
alphabetically. First, a note on the variable naming: </p>
diff --git a/pdk/docs/guide/build_new_device.jd b/pdk/docs/guide/build_new_device.jd
index d914ebe..b21371d 100755
--- a/pdk/docs/guide/build_new_device.jd
+++ b/pdk/docs/guide/build_new_device.jd
@@ -1,15 +1,22 @@
-page.title=Building Android for a new Mobile Device
+page.title=Building Android for a new Device
pdk.version=1.0
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidOHDPortingDeviceBuildingProcess">Detailed Instructions</a><br/>
-<a href="#androidBuildNewFileTree">New Product File Tree</a><br/></div></font></div>
+<ul>
+<li><a href="#androidOHDPortingDeviceBuildingProcess">Detailed Instructions</a></li>
+<li><a href="#androidBuildNewFileTree">New Product File Tree</a></li>
+</ul>
+</div>
+</div>
-<a name="androidOHDPortingDeviceBuildingProcess"></a><h2>Detailed Instructions</h2>
+
+<a name="androidOHDPortingDeviceBuildingProcess"></a><h3>Detailed Instructions</h3>
<p>The directions below describe how to configure make files for new mobile devices and products.</p>
<ol>
@@ -104,7 +111,7 @@
<p>You should find new build binaries located in <code>/out/target/product/<board_name></code>.
-<a name="androidBuildNewFileTree"></a><h2>New Product File Tree</h2>
+<a name="androidBuildNewFileTree"></a><h3>New Product File Tree</h3>
<p>The file tree below illustrates what your own system should look like after completing the steps above.</p>
<p>
@@ -127,7 +134,7 @@
</ul>
</p>
-<a name="androidBuildSystemProductDefFiles"></a><h2>Product Definition Files</h2>
+<a name="androidBuildSystemProductDefFiles"></a><h3>Product Definition Files</h3>
<p>Product-specific variables are defined in product definition files. A product definition file can inherit from other product definition files, thus reducing the need to copy and simplifying maintenance.</p>
<p>Variables maintained in a product definition files include:</p>
@@ -244,7 +251,7 @@
</pre>
-<a name="androidBuildVariants"></a><h2>Build Variants</h2>
+<a name="androidBuildVariants"></a><h3>Build Variants</h3>
<p>
When building for a particular product, it's often useful to have minor
diff --git a/pdk/docs/guide/build_system.jd b/pdk/docs/guide/build_system.jd
index 36936aa..64216d8 100755
--- a/pdk/docs/guide/build_system.jd
+++ b/pdk/docs/guide/build_system.jd
@@ -3,34 +3,26 @@
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidBuildSystemIntroduction">Introduction</a><br/>
-<a href="#androidBuildSystemUnderstanding">Understanding Android's Build System</a><br/><div style="padding-left:40px">
-
-<a href="#androidBuildSystemOverview">Understanding the makefile</a><br/>
-<a href="#androidBuildSystemLayers">Layers</a><br/>
-<a href="#androidSourceSetupBuildingCodeBase">Building the Android Platform</a><br/><div style="padding-left:40px">
-
-<a href="#androidSourceSetupBuildingDeviceCodeBase">Device Code</a><br/>
-<a href="#androidBuildingCleaning">Cleaning Up</a><br/>
-<a href="#androidBuildingSpeeding">Speeding Up Rebuilds</a><br/>
-<a href="#androidBuildingTroubleshooting">Troubleshooting</a><br/></div>
-<a href="#androidSourceSetupBuildingKernel">Building the Android Kernel</a><br/><div style="padding-left:40px">
-
-<a href="#androidSourceSetupBuildingKernelCheckingBranch">Checking Out a Branch</a><br/>
-<a href="#androidSourceSetupBuildingKernelBranchLocation">Verifying Location</a><br/>
-<a href="#androidSourceSetupBuildingKernelBuild">Building the Kernel</a><br/></div></div></div>
-
-<a name="androidBuildSystemIntroduction"></a><h2>Introduction</h2>
+<ul>
+<li><a href="#androidBuildSystemOverview">Understanding the makefile</a></li>
+<li><a href="#androidBuildSystemLayers">Layers</a></li>
+<li><a href="#androidSourceSetupBuildingCodeBase">Building the Android Platform</a></li>
+<li><a href="#androidSourceSetupBuildingKernel">Building the Android Kernel</a></li>
+</ul>
+</div>
+</div>
<p>Android uses a custom build system to generate tools, binaries, and documentation. This document provides an overview of Android's build system and instructions for doing a simple build. </p>
<p>Android's build system is make based and requires a recent version of GNU Make (note that Android uses advanced features of GNU Make that may not yet appear on the GNU Make web site). Before continuing, check your version of make by running <code>% make -v</code>. If you don't have version 3.80 or greater, you need to <a href="http://www.gnu.org/software/make/">upgrade your version of make</a>. </p>
-<a name="androidBuildSystemUnderstanding"></a><h2>Understanding Android's Build System</h2>
-<a name="androidBuildSystemOverview"></a><h3>Understanding the makefile</h3>
+
+<a name="androidBuildSystemOverview"></a><h4>Understanding the makefile</h4>
<p>A makefile defines how to build a particular application. Makefiles typically include all of the following elements:</p>
<ol>
@@ -58,7 +50,7 @@
<p>The snippet above includes artificial line breaks to maintain a print-friendly document.</p>
-<a name="androidBuildSystemLayers"></a><h3>Layers</h3>
+<a name="androidBuildSystemLayers"></a><h4>Layers</h4>
<p>The build hierarchy includes the abstraction layers described in the table below.</p>
@@ -92,12 +84,12 @@
</tr>
</table>
-<a name="androidSourceSetupBuildingCodeBase"></a><h2>Building the Android Platform</h2>
+<a name="androidSourceSetupBuildingCodeBase"></a><h3>Building the Android Platform</h3>
<p>This section describes how to build the default version of Android. Once you are comfortable with a generic build, then you can begin to modify Android for your own target device.</p>
-<a name="androidSourceSetupBuildingDeviceCodeBase"></a><h3>Device Code</h3>
+<a name="androidSourceSetupBuildingDeviceCodeBase"></a><h4>Device Code</h4>
<p>To do a generic build of android, source <code>build/envsetup.sh</code>, which contains necessary variable and function definitions, as described below.</p>
<pre class="prettyprint">
@@ -117,12 +109,12 @@
</pre>
-<a name="androidBuildingCleaning"></a><h3>Cleaning Up</h3>
+<a name="androidBuildingCleaning"></a><h4>Cleaning Up</h4>
<p>Execute <code>% m clean</code> to clean up the binaries you just created. You can also execute <code>% m clobber</code> to get rid of the binaries of all combos. <code>% m clobber</code> is equivalent to removing the <code>//out/</code> directory where all generated files are stored.</p>
-<a name="androidBuildingSpeeding"></a><h3>Speeding Up Rebuilds</h3>
+<a name="androidBuildingSpeeding"></a><h4>Speeding Up Rebuilds</h4>
<p> The binaries of each combo are stored as distinct sub-directories of <code>//out/</code>, making it possible to quickly switch between combos without having to recompile all sources each time. </p>
<p> However, performing a clean rebuild is necessary if the build system doesn't catch changes to environment variables or makefiles. If this happens often, you should define the <code>USE_CCACHE</code> environment variable as shown below: </p>
@@ -134,7 +126,7 @@
<p><code>ccache</code> binaries are provided in <code>//prebuilt/...</code> and don't need to get installed on your system.</p>
-<a name="androidBuildingTroubleshooting"></a><h3>Troubleshooting</h3>
+<a name="androidBuildingTroubleshooting"></a><h4>Troubleshooting</h4>
<p>The following error is likely caused by running an outdated version of Java.</p>
<pre class="prettyprint">
@@ -155,7 +147,7 @@
<p>If you do have Java 1.5 or later and your receive this error, verify that you have properly updated your <code>PATH</code> variable.</p>
-<a name="androidSourceSetupBuildingKernel"></a><h2>Building the Android Kernel</h2>
+<a name="androidSourceSetupBuildingKernel"></a><h3>Building the Android Kernel</h3>
<p>This section describes how to build Android's default kernel. Once you are comfortable with a generic build, then you can begin to modify Android drivers for your own target device.</p>
@@ -168,7 +160,7 @@
<p>Then switch to the kernel directory <code>/home/joe/android/kernel</code>.
-<a name="androidSourceSetupBuildingKernelCheckingBranch"></a><h3>Checking Out a Branch</h3>
+<a name="androidSourceSetupBuildingKernelCheckingBranch"></a><h4>Checking Out a Branch</h4>
<p>The default branch is always <code>android</code>. To check out a different branch, execute the following:</p>
@@ -182,7 +174,7 @@
<p>To simplify code management, give your local branch the same name as the remote branch it is tracking (as illustrated in the snippet above). Switch between branches by executing <code>% git checkout <branchname></code>.</p>
-<a name="androidSourceSetupBuildingKernelBranchLocation"></a><h3>Verifying Location</h3>
+<a name="androidSourceSetupBuildingKernelBranchLocation"></a><h4>Verifying Location</h4>
<p>Find out which branches exist (both locally and remotely) and which one is active (marked with an asterisk) by executing the following:</p>
<pre class="prettyprint">
@@ -197,7 +189,7 @@
<p>To only see local branches, omit the <code>-a</code> flag.</p>
-<a name="androidSourceSetupBuildingKernelBuild"></a><h3>Building the Kernel</h3>
+<a name="androidSourceSetupBuildingKernelBuild"></a><h4>Building the Kernel</h4>
<p>To build the kernel, execute:</p>
<pre class="prettyprint">
diff --git a/pdk/docs/guide/camera.jd b/pdk/docs/guide/camera.jd
index 204c070..f4c9c85 100755
--- a/pdk/docs/guide/camera.jd
+++ b/pdk/docs/guide/camera.jd
@@ -2,24 +2,24 @@
pdk.version=1.0
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidCameraIntroduction">Introduction</a><br/>
-<a href="#androidCameraBuildingDriver">Building a Camera Library</a><br/>
-<a href="#androidCameraSequenceDiagrams">Sequence Diagrams</a><br/><div style="padding-left:40px">
-
-<a href="#androidCameraSequenceDiagramsPreview">Preview</a><br/>
-<a href="#androidCameraSequenceDiagramsTakePic">Taking a Picture</a><br/></div>
-<a href="#androidCameraInterfaceIntro">Interface</a><br/></div></font></div>
-
-<a name="androidCameraIntroduction"></a><h2>Introduction</h2>
+<ul>
+<li><a href="#androidCameraBuildingDriver">Building a Camera Library</a></li>
+<li><a href="#androidCameraSequenceDiagrams">Sequence Diagrams</a></li>
+<li><a href="#androidCameraInterfaceIntro">Interface</a></li>
+</ul>
+</div>
+</div>
<p>Android's camera subsystem connects the camera application to the application framework and user space libraries, which in turn communicate with the camera hardware layer that operates the physical camera.</p>
<p>The diagram below illustrates the structure of the camera subsystem.</p>
<p><img src="images/androidCameraArchitecture.gif"></p>
-<a name="androidCameraBuildingDriver"></a><h2>Building a Camera Library</h2>
+<a name="androidCameraBuildingDriver"></a><h3>Building a Camera Library</h3>
<p>To implement a camera driver, create a shared library that implements the interface defined in <code>CameraHardwareInterface.h</code>. You must name your shared library <code>libcamera.so</code> so that it will get loaded from <code>/system/lib</code> at runtime. Place libcamera sources and <code>Android.mk</code> in <code>partner/acme/chipset_or_board/libcamera/</code>.</p>
<p>The following stub <code>Android.mk</code> file ensures that <code>libcamera</code> compiles and links to the appropriate libraries:</p>
@@ -49,23 +49,23 @@
</pre>
-<a name="androidCameraSequenceDiagrams"></a><h2>Sequence Diagrams</h2>
+<a name="androidCameraSequenceDiagrams"></a><h3>Sequence Diagrams</h3>
-<a name="androidCameraSequenceDiagramsPreview"></a><h3>Preview</h3>
+<a name="androidCameraSequenceDiagramsPreview"></a><h4>Preview</h4>
<p>The following diagram illustrates the sequence of function calls and actions necessary for your camera to preview.</p>
<img src="images/cameraPreview.jpg">
-<a name="androidCameraSequenceDiagramsTakePic"></a><h3>Taking a Picture</h3>
+<a name="androidCameraSequenceDiagramsTakePic"></a><h4>Taking a Picture</h4>
<p>The following diagram illustrates the sequence of function calls and actions necessary for your camera to take a picture.</p>
<img src="images/cameraTakePicture.jpg">
-<a name="androidCameraInterfaceIntro"></a><h2>Interface</h2>
+<a name="androidCameraInterfaceIntro"></a><h3>Interface</h3>
diff --git a/pdk/docs/guide/customization.jd b/pdk/docs/guide/customization.jd
index a405113..9c39cd7 100755
--- a/pdk/docs/guide/customization.jd
+++ b/pdk/docs/guide/customization.jd
@@ -2,21 +2,22 @@
pdk.version=1.0
@jd:body
-<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidBootScreenCustomization">Boot Screen Customization</a><br/>
-<a href="#androidNetCustPlat">Network Customization Platform</a><br/><div style="padding-left:40px">
-
-<a href="#androidNetCustPlatNetworkConfig">Network Configuration</a><br/>
-<a href="#androidNetCustPlatAPNConfig">Build-time APN configuration</a><br/>
-<a href="#androidNetCustPlatAPNRunTime">APN configuration at run time</a><br/></div>
-<a href="#androidCustomizingPre-LoadedApps">Customizing pre-loaded applications</a><br/>
-<a href="#androidBrowserBookmarks">Customizing browser bookmarks</a><br/>
-<a href="#androidEmailProviderCustomization">Email Provider Customization</a><br/>
-<a href="#androidThemes">Platform Themes</a><br/><div style="padding-left:40px">
-
-<a href="#androidThemesStyles">Themes and Styles</a><br/>
-<a href="#androidThemesAnimations">Animations</a><br/></div></div></font></div>
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
+<a name="toc"/>
+<ul>
+<li><a href="#androidBootScreenCustomization">Boot Screen Customization</a></li>
+<li><a href="#androidNetCustPlat">Network Customization Platform</a></li>
+<li><a href="#androidCustomizingPre-LoadedApps">Customizing pre-loaded applications</a></li>
+<li><a href="#androidBrowserBookmarks">Customizing browser bookmarks</a></li>
+<li><a href="#androidEmailProviderCustomization">Email Provider Customization</a></li>
+<li><a href="#androidThemes">Platform Themes</a></li>
+</ul>
+</div>
+</div>
+
+
<a name="androidBootScreenCustomization"></a><h3>Boot Screen Customization</h3>
diff --git a/pdk/docs/guide/dalvik.jd b/pdk/docs/guide/dalvik.jd
index 30c92ef..948496a 100755
--- a/pdk/docs/guide/dalvik.jd
+++ b/pdk/docs/guide/dalvik.jd
@@ -1,16 +1,19 @@
page.title=Dalvik
pdk.version=1.0
@jd:body
-
-<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidDalvikIntroduction">Introduction</a><br/>
-<a href="#dalvikCoreLibraries">Core Libraries</a><br/>
-<a href="#dalvikJNICallBridge">JNI Call Bridge</a><br/>
-<a href="#dalvikInterpreter">Interpreter</a><br/></div></font>
-
-<a name="androidDalvikIntroduction"></a><h2>Introduction</h2>
-
+
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
+<a name="toc"/>
+<ul>
+<li><a href="#dalvikCoreLibraries">Core Libraries</a></li>
+<li><a href="#dalvikJNICallBridge">JNI Call Bridge</a></li>
+<li><a href="#dalvikInterpreter">Interpreter</a></li>
+</ul>
+</div>
+</div>
+
<p>
The Dalvik virtual machine is intended to run on a variety of platforms.
The baseline system is expected to be a variant of UNIX (Linux, BSD, Mac
@@ -23,7 +26,7 @@
</p>
-<a name="dalvikCoreLibraries"></a><h2>Core Libraries</h2>
+<a name="dalvikCoreLibraries"></a><h3>Core Libraries</h3>
<p>
The native code in the core libraries (chiefly <code>dalvik/libcore</code>,
@@ -37,7 +40,7 @@
</p>
-<a name="dalvikJNICallBridge"></a><h2>JNI Call Bridge</h2>
+<a name="dalvikJNICallBridge"></a><h3>JNI Call Bridge</h3>
<p>
Most of the Dalvik VM runtime is written in portable C. The one
@@ -82,7 +85,7 @@
or inter-argument 64-bit alignment restrictions.
</p>
-<a name="dalvikInterpreter"></a><h2>Interpreter</h2>
+<a name="dalvikInterpreter"></a><h3>Interpreter</h3>
<p>
The Dalvik runtime includes two interpreters, labeled "portable" and "fast".
diff --git a/pdk/docs/guide/debugging_gdb.jd b/pdk/docs/guide/debugging_gdb.jd
index fe63307..9717cf3 100755
--- a/pdk/docs/guide/debugging_gdb.jd
+++ b/pdk/docs/guide/debugging_gdb.jd
@@ -2,21 +2,23 @@
pdk.version=1.0
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px"> <a href="#intro">Introduction</a><br/>
- <a href="#gdb">Running gdb on the desktop</a><br/>
- <div style="padding-left:40px"> <a href="#gdbShort">Short Instructions</a><br/>
- <a href="#gdbDetailed">Detailed Instructions</a><br/>
- </div>
- <a href="#justInTime">Just-In-Time Debug Feature</a><br/>
+<ul>
+<li><a href="#gdb">Debugging</a></li>
+ <li><a href="#justInTime">Just-In-Time Debug Feature</a></li>
+</ul>
</div>
-<a name="intro"></a>
-<h3>Introduction</h3>
-<p>The current version of <code>envsetup.sh</code> has a <code>gdbclient</code> command that handles much of the setup. For example, to attach to the
+</div>
+
+<p>The current version of <code>envsetup.sh</code> has a <code>gdbclient</code> command that handles much of the setup. For example, to attach the
already-running <code>globaltime</code> application, execute the following, making sure that: 1) you do this from the same window used to build the software on the device you are debugging and 2) verify that the symbols in the object files in the build tree match up with what is installed on the device or emulator.</p>
<pre class="prettify">
gdbclient app_process :5039 globaltime
</pre>
+<a name="gdb"></a><h3>Debugging</h3>
<a name="gdbShort"></a>
<h4>Short Instructions</h4>
<p>Android runs <code>gdbserver</code> on the device and an ARM aware <code>gdb</code>, named <code>arm-eabi-gdb</code>, on the desktop machine.</p>
diff --git a/pdk/docs/guide/debugging_native.jd b/pdk/docs/guide/debugging_native.jd
index 435048b..5f9f0f7 100755
--- a/pdk/docs/guide/debugging_native.jd
+++ b/pdk/docs/guide/debugging_native.jd
@@ -3,18 +3,18 @@
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px">
- <a href="#Capturing_logs">Capturing logs</a><br/>
- <a href="#Debug_Scenarios">Debug Scenarios</a><br/>
- <div style="padding-left:40px">
- <a href="#Crash_but_no_exit_stuck">Crash but no exit...stuck</a><br/>
- <a href="#Blocked_in_a_syscall">Blocked in a syscall</a><br/>
- <a href="#Crash_in_C_C_code">Crash in C / C++ code</a>
- </div>
+<ul>
+<li><a href="#Capturing_logs">Capturing logs</a></li>
+<li><a href="#Debug_Scenarios">Debug Scenarios</a></li>
+</ul>
+</div>
</div>
-<a name="Capturing_logs"></a><h2>Capturing logs</h2>
+<a name="Capturing_logs"></a><h3>Capturing logs</h3>
<p>To capture log output:</p>
<ol>
@@ -24,7 +24,7 @@
</ol>
-<a name="Debug_Scenarios"></a><h2>Debug Scenarios</h2>
+<a name="Debug_Scenarios"></a><h3>Debug Scenarios</h3>
<pre class="prettify">
# command to device shell (via adb)
% command to host pc shell
@@ -32,7 +32,7 @@
<p>
</p>
-<a name="Crash_but_no_exit_stuck"></a><h3>Crash but no exit...stuck</h3>
+<a name="Crash_but_no_exit_stuck"></a><h4>Crash but no exit...stuck</h4>
<p>In this scenario, the GTalk app crashed but did not actually exit or seems stuck. Check the debug logs to see if there is anything unusual: </p>
@@ -237,7 +237,7 @@
#2 0x6b022c2c in shell (args=0x51b58) at extlibs/jamvm-1.4.1/src/thread.c:629
</pre>
-<a name="Crash_in_C_C_code"></a><h3>Crash in C / C++ code</h3>
+<a name="Crash_in_C_C_code"></a><h4>Crash in C / C++ code</h4>
<p>If it crashes, connect with <code>aproto</code> and run <code>logcat</code> on the device. You should see output like this:</p>
<pre class="prettify">
diff --git a/pdk/docs/guide/display_drivers.jd b/pdk/docs/guide/display_drivers.jd
index 94d5467..ac41c55 100755
--- a/pdk/docs/guide/display_drivers.jd
+++ b/pdk/docs/guide/display_drivers.jd
@@ -4,20 +4,23 @@
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidDisplayDriverIntroduction">Introduction</a><br/>
-<a href="#androidDisplayDriverFunctionality">Functionality</a><br/>
-<a href="#androidDisplayDriversSourceTemplate">Implementing Your Own Driver (Driver Template)</a><br/>
-<a href="#androidDisplayDriversTroubleshooting">Troubleshooting</a><br/></div></font></div>
-
-<a name="androidDisplayDriverIntroduction"></a><h2>Introduction</h2>
+<ul>
+<li><a href="#androidDisplayDriverFunctionality">Functionality</a></li>
+<li><a href="#androidDisplayDriversSourceTemplate">Implementing Your Own Driver (Driver Template)</a></li>
+<li><a href="#androidDisplayDriversTroubleshooting">Troubleshooting</a></li>
+</ul>
+</div>
+</div>
<p>This section describes how the display driver functions and offers a functional template designed to help you build your own device-specific driver.</p>
<p>Android relies on the standard frame buffer device (<code>/dev/fb0</code> or <code>/dev/graphics/fb0</code>) and driver as described in the <code>linux/fb.h</code> kernel header file. For more information regarding the standard Linux frame buffer, please see <a href="http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.24.y.git;a=blob;f=Documentation/fb/framebuffer.txt">The Frame Buffer Device</a> at <a href="http://kernel.org">http://kernel.org</a>.
-<a name="androidDisplayDriverFunctionality"></a><h2>Functionality</h2>
+<a name="androidDisplayDriverFunctionality"></a><h3>Functionality</h3>
<p>In Android, every window gets implemented with an underlying Surface object, an object that gets placed on the framebuffer by SurfaceFlinger, the system-wide screen composer. Each Surface is double-buffered. The back buffer is where drawing takes place and the front buffer is used for composition. </p>
<p> When <code>unlockCanvas()</code> is called, the back buffer is posted, which
@@ -32,7 +35,7 @@
<p>To maintain adequate performance, framebuffer memory should be cacheable. If you use write-back, flush the cache before the frame buffer is written from DMA to the LCD. If that isn't possible, you may use write-through. As a last resort, you can also use uncached memory with the write-bugger enabled, but performance will suffer.</p>
-<a name="androidDisplayDriversSourceTemplate"></a><h2>Implementing Your Own Driver (Driver Template)</h2>
+<a name="androidDisplayDriversSourceTemplate"></a><h3>Implementing Your Own Driver (Driver Template)</h3>
<p>The following sample driver offers a functional example to help you build your own display driver. Modify <code>PGUIDE_FB...</code> macros as desired to match the requirements of your own device hardware.</p>
<pre class="prettyprint">
@@ -330,7 +333,7 @@
</pre>
-<a name="androidDisplayDriversTroubleshooting"></a><h2>Troubleshooting</h2>
+<a name="androidDisplayDriversTroubleshooting"></a><h3>Troubleshooting</h3>
<p>Both of the following problems have a similar cause:</p>
<ul>
diff --git a/pdk/docs/guide/gps.jd b/pdk/docs/guide/gps.jd
index da57bef..3af7d7d 100755
--- a/pdk/docs/guide/gps.jd
+++ b/pdk/docs/guide/gps.jd
@@ -2,18 +2,21 @@
pdk.version=1.0
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidGpsIntroduction">Introduction</a><br/>
-<a href="#androidGPSBuildingDriver">Building a GPS Library</a><br/>
-<a href="#androidGPSInterface">Interface</a><br/></div></font></div>
-
-<a name="androidGpsIntroduction"></a><h2>Introduction</h2>
+<ul>
+<li><a href="#androidGPSBuildingDriver">Building a GPS Library</a></li>
+<li><a href="#androidGPSInterface">Interface</a></li>
+</ul>
+</div>
+</div>
<p>Android defines a user space C abstraction interface for GPS hardware. The interface header is defined in <code>include/hardware/gps.h</code>. In order to integate GPS with Android, you need to build a shared library that implements this interface. </p>
-<a name="androidGPSBuildingDriver"></a><h2>Building a GPS Library</h2>
+<a name="androidGPSBuildingDriver"></a><h3>Building a GPS Library</h3>
<p>To implement a GPS driver, create a shared library that implements the interface defined in <code>gps.h</code>. You must name your shared library <code>libgps.so</code> so that it will get loaded from <code>/system/lib</code> at runtime. Place GPS sources and Android.mk in <code>partner/acme/chipset_or_board/gps/</code> (where "acme" is your product name and "chipset_or_board" is your hardware target).</p>
@@ -44,11 +47,11 @@
</pre>
-<a name="androidGPSInterface"></a><h2>Interface</h2>
+<a name="androidGPSInterface"></a><h3>Interface</h3>
-<p><span class="lh2"><a name="androidDoxygenNote"></a></span>
+<p><span class="lh3"><a name="androidDoxygenNote"></a></span>
<p class="note"><strong>Note</strong>: This document relies on some Doxygen-generated content that appears in an iFrame below. To return to the Doxygen default content for this page, <a href="gps.html">click here</a>.</p>
diff --git a/pdk/docs/guide/instrumentation_testing.jd b/pdk/docs/guide/instrumentation_testing.jd
index 1302217..00c8248 100755
--- a/pdk/docs/guide/instrumentation_testing.jd
+++ b/pdk/docs/guide/instrumentation_testing.jd
@@ -2,37 +2,19 @@
pdk.version=1.0
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidInstrumentationFrameworkIntro">Introduction</a><br/>
-<a href="#androidInstrumentationTestingFramework">Instrumentation Framework</a><br/><div style="padding-left:40px">
-
-<a href="#androidInstrumentationTestingClasses">Classes</a><br/>
-<a href="#androidInstrumentationFrameworkamCommand">Understanding the am Command</a><br/></div>
-<a href="#androidInstrumentationFrameworkPlatform">Platform Test Suites</a><br/><div style="padding-left:40px">
-
-<a href="#androidTestingPlatformFramework">Framework Tests</a><br/>
-<a href="#androidTestingPlatformCoreLibrary">Core Library</a><br/></div>
-<a href="#androidInstrumentationFrameworkWritingRunning">Running Tests</a><br/><div style="padding-left:40px">
-
-<a href="#androidInstrumentationTestingRunningAll">All Tests with Default TestRunner behavior</a><br/>
-<a href="#androidTestingTestSinglePakcage">Running all Tests Under Single Package</a><br/>
-<a href="#androidTestingSingleTestSuite">Running a Single Test Suite</a><br/>
-<a href="#androidInstrumentationTestingRunningSingleTestCase">A Single Test Case</a><br/>
-<a href="#androidInstrumentationTestingRunningSingleTest">A Single Test</a><br/>
-<a href="#androidTestingDebugging">Attaching a debugger to your test</a><br/></div>
-<a href="#androidInstrumentationTestingCreating">Writing Tests</a><br/><div style="padding-left:40px">
-
-<a href="#androidTestingLocationFiles">Location of Files</a><br/>
-<a href="#androidTestingContentMakefile">Contents of makefile</a><br/>
-<a href="#androidTestingContentManifest">Content of Manifest</a><br/>
-<a href="#androidInstrumentationTestingCreatingTestRunner">New Instrumentation TestRunner</a><br/>
-<a href="#androidInstrumentationTestingCreatingTestCase">New InstrumentationTestCase</a><br/>
-<a href="#androidInstrumentationFrameworkTestCase">Exploring a Test Case</a><br/>
-<a href="#androidTestingKindsofTests">Deciding Kinds of Tests to Write</a><br/></div>
-<a href="#androidInstrumentationFrameworkTroubleshooting">Troubleshooting</a><br/></div>
-
-<a name="androidInstrumentationFrameworkIntro"></a><h2>Introduction</h2>
+<ul>
+<li><a href="#androidInstrumentationTestingFramework">Instrumentation Framework</a></li>
+<li><a href="#androidInstrumentationFrameworkPlatform">Platform Test Suites</a></li>
+<li><a href="#androidInstrumentationFrameworkWritingRunning">Running Tests</a></li>
+<li><a href="#androidInstrumentationTestingCreating">Writing Tests</a></li>
+<li><a href="#troubleshooting">Troubleshooting</a></li>
+</ul>
+</div>
+</div>
<p>This document describes how to use the Instrumentation Framework to write test cases. Instrumentation testing allows you to verify a particular feature or behavior with an automated JUnit TestCase. You can launch activities and providers within an application, send key events, and make assertions about various UI elements. </p>
<p>You should have a working knowledge of the following:</p>
@@ -45,11 +27,11 @@
<p> Each Android application runs in its own process. Instrumentation kills the application process and restarts the process with Instrumentation. Instrumentation gives a handle to the application context used to poke around the application to validate test assertions, allowing you to write test cases to test applications at a much lower level than UI screen shot tests. Note that Instrumentation cannot catch UI bugs. </p>
-<a name="androidInstrumentationTestingFramework"></a><h2>Instrumentation Framework</h2>
+<a name="androidInstrumentationTestingFramework"></a><h3>Instrumentation Framework</h3>
-<a name="androidInstrumentationTestingClasses"></a><h3>Classes</h3>
+<a name="androidInstrumentationTestingClasses"></a><h4>Classes</h4>
<p> The following classes help glue together <code>Instrumentation</code> with JUnit testing. </p>
<table>
@@ -95,7 +77,7 @@
</table>
-<a name="androidInstrumentationFrameworkamCommand"></a><h3>Understanding the am Command</h3>
+<a name="androidInstrumentationFrameworkamCommand"></a><h4>Understanding the am Command</h4>
<p>The am command is a command-line interface to the ActivityManager (see <a href="http://code.google.com/android/reference/android/app/ActivityManager.html">http://code.google.com/android/reference/android/app/ActivityManager.html</a> for details). <code>am</code> is used to start and instrument activities using the adb shell command, as shown in the snippet below:</p>
<pre class="prettify">
@@ -112,22 +94,22 @@
</pre>
-<a name="androidInstrumentationFrameworkPlatform"></a><h2>Platform Test Suites</h2>
+<a name="androidInstrumentationFrameworkPlatform"></a><h3>Platform Test Suites</h3>
<p>This section provides an overview for various unit and functional test cases that can be executed through the instrumentation framework.</p>
-<a name="androidTestingPlatformFramework"></a><h3>Framework Tests</h3>
+<a name="androidTestingPlatformFramework"></a><h4>Framework Tests</h4>
<p>Framework test cases test the Android application framework or specific Android application functionality that requires an Android runtime context. These tests can be found in <code>//device/tests</code> and <code>//device/apps/AndroidTests</code>.</p>
-<a name="androidTestingPlatformCoreLibrary"></a><h3>Core Library</h3>
+<a name="androidTestingPlatformCoreLibrary"></a><h4>Core Library</h4>
<p>Core library test cases test the Android library functionality that does not require an Android runtime context. These tests are split into Android library (android.* package space) tests at <code>//device/java/tests</code> and Java library (java.*, javax.*, etc. packages) tests at <code>//device/dalvik/libcore/.../tests</code>.</p>
-<a name="androidInstrumentationFrameworkWritingRunning"></a><h2>Running Tests</h2>
+<a name="androidInstrumentationFrameworkWritingRunning"></a><h3>Running Tests</h3>
<p>Each instrumentation test case is similar to an Android application with the distinction that it starts another application. For example, have a look in the <code>tests/Contacts</code> directory. </p>
<ul>
@@ -165,7 +147,7 @@
</pre>
-<a name="androidInstrumentationTestingRunningAll"></a><h3>All Tests with Default TestRunner behavior</h3>
+<a name="androidInstrumentationTestingRunningAll"></a><h4>All Tests with Default TestRunner behavior</h4>
<p>If no class or package is passed in to run, InstrumentationTestRunner will automatically find and run all tests under the package of the test application (as defined by the <code>android:targetPackage</code> attribute of the instrumentation defined in its manifest file).
</p>
@@ -183,7 +165,7 @@
</pre>
-<a name="androidTestingTestSinglePakcage"></a><h3>Running all Tests Under Single Package</h3>
+<a name="androidTestingTestSinglePakcage"></a><h4>Running all Tests Under Single Package</h4>
<p>If you have many tests under one package, use the <code>-e package <packagename></code> option to run all tests under that package without having to manually create a test suite.</p>
<pre>
@@ -197,7 +179,7 @@
</pre>
-<a name="androidTestingSingleTestSuite"></a><h3>Running a Single Test Suite</h3>
+<a name="androidTestingSingleTestSuite"></a><h4>Running a Single Test Suite</h4>
<p>If you prefer to explicitly state which tests comprise all of your tests, you can define a test suite and run that directly. By convention, all test packages in your system should have at least one suite called <code>AllTests</code> (see <code>AllTests.java</code>). To run all of the tests using the <code>AllTests</code> suite for the api demos test app:</p>
@@ -216,7 +198,7 @@
</pre>
-<a name="androidInstrumentationTestingRunningSingleTestCase"></a><h3>A Single Test Case</h3>
+<a name="androidInstrumentationTestingRunningSingleTestCase"></a><h4>A Single Test Case</h4>
<pre>
$ adb shell am instrument -w \
@@ -233,7 +215,7 @@
</pre>
-<a name="androidInstrumentationTestingRunningSingleTest"></a><h3>A Single Test</h3>
+<a name="androidInstrumentationTestingRunningSingleTest"></a><h4>A Single Test</h4>
<pre>
$ adb shell am instrument -w \
@@ -250,7 +232,7 @@
</pre>
-<a name="androidTestingDebugging"></a><h3>Attaching a debugger to your test</h3>
+<a name="androidTestingDebugging"></a><h4>Attaching a debugger to your test</h4>
<p>In order to debug your test code, instruct the controller to stop and wait for the debugger by adding <code>-e debug true</code> to your
command line. This causes the test runner to stop and wait for the debugger just before calling your <code>setUp()</code> method. For example,</p>
@@ -262,12 +244,12 @@
</pre>
-<a name="androidInstrumentationTestingCreating"></a><h2>Writing Tests</h2>
+<a name="androidInstrumentationTestingCreating"></a><h3>Writing Tests</h3>
<p>When writing tests, refer to the ApiDemos tests as models (located at <code>//device/samples/ApiDemos</code>). This section provides an overview of the test structure with ApiDemos.</p>
-<a name="androidTestingLocationFiles"></a><h3>Location of Files</h3>
+<a name="androidTestingLocationFiles"></a><h4>Location of Files</h4>
<p>Test packages should use the following structure and include <code>Android.mk</code>, <code>AndroidManifest.xml</code>, <code>AllTests.java</code>, and a src directory that mirrors the src directory of the tested application.</p>
<p>Files are located within a <code>tests</code> directory found in the root directory:</p>
@@ -291,7 +273,7 @@
</pre>
-<a name="androidTestingContentMakefile"></a><h3>Contents of makefile</h3>
+<a name="androidTestingContentMakefile"></a><h4>Contents of makefile</h4>
<p>The contents of the makefile are similar to a normal application with the addition of a <code>LOCAL_INSTRUMENTATION_FOR</code> declaration.<p />
<pre>
@@ -317,7 +299,7 @@
</pre>
-<a name="androidTestingContentManifest"></a><h3>Content of Manifest</h3>
+<a name="androidTestingContentManifest"></a><h4>Content of Manifest</h4>
<p>Use the following example to create an <code>AndroidManifest.xml</code> file that declares the instrumentation. Specify that the framework supplied Instrumentation TestRunner targest the package of your application, allowing the tests that are run with the instrumentation to get access to all of the classes of your application without having to build the source into the test app. The name of the test application is typically the same as your target application with <code>.tests</code> appended. </p>
<pre>
@@ -346,7 +328,7 @@
</pre>
-<a name="androidInstrumentationTestingCreatingTestRunner"></a><h3>New Instrumentation TestRunner</h3>
+<a name="androidInstrumentationTestingCreatingTestRunner"></a><h4>New Instrumentation TestRunner</h4>
<p>Create a class that derives from this class. You must override two abstract methods; one that returns the class loader of the target package, and another that defines all of the tests within the package. For example, the snippet below displays the test runner for the framework tests.</p>
<pre class="prettify">
@@ -378,7 +360,7 @@
</pre>
-<a name="androidInstrumentationTestingCreatingTestCase"></a><h3>New InstrumentationTestCase</h3>
+<a name="androidInstrumentationTestingCreatingTestCase"></a><h4>New InstrumentationTestCase</h4>
<p> To create a new test case, write a class that extends <code>InstrumentationTestCase</code> in the same application as your test runner. The following snippet illustrates an example <code>ActivityTestCase</code> that tests an activity named <code>MyActivity</code>.</p>
<pre class="prettify">
@@ -409,7 +391,7 @@
</pre>
-<a name="androidInstrumentationFrameworkTestCase"></a><h3>Exploring a Test Case</h3>
+<a name="androidInstrumentationFrameworkTestCase"></a><h4>Exploring a Test Case</h4>
<p> The test case described in this section adds and tests a new Contact. Note that you can send intents, register intent receivers, etc. </p>
<p><code>Instrumentation.java</code> has helper functions that send key events and strings, for example: </p>
@@ -481,7 +463,7 @@
</pre>
-<a name="androidTestingKindsofTests"></a><h3>Deciding Kinds of Tests to Write</h3>
+<a name="androidTestingKindsofTests"></a><h4>Deciding Kinds of Tests to Write</h4>
<p>Once you are bootstrapped with your test application, you can start writing tests. There are three of types of tests you may wish to write:</p>
<p><ul>
@@ -498,7 +480,7 @@
</p>
-<a name="androidInstrumentationFrameworkTroubleshooting"></a><h2>Troubleshooting</h2>
+<a name="troubleshooting"></a><h3>Troubleshooting</h3>
<p>If you run your test cases and nothing appears to happen, have a look at <code>adb logcat</code>. The following is a common problem:</p>
<pre class="prettify">
diff --git a/pdk/docs/guide/keymaps_keyboard_input.jd b/pdk/docs/guide/keymaps_keyboard_input.jd
index a71b5e9..e53149a 100755
--- a/pdk/docs/guide/keymaps_keyboard_input.jd
+++ b/pdk/docs/guide/keymaps_keyboard_input.jd
@@ -3,25 +3,19 @@
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidKeymapIntro">Introduction</a><br/>
-<a href="#androidKeymapFunctionality">Functionality</a><br/>
-<a href="#androidKeymapKeyLayoutMapTitle">Key Layout Map</a><br/><div style="padding-left:40px">
-
-<a href="#androidKeymapKeyLayoutMapSelection">Selection of a Key Layout Map</a><br/>
-<a href="#androidKeymapKeyLayoutMapFileFormat">File Format</a><br/>
-<a href="#androidKeymapKeyLayoutMapExample">Example of a Key Layout Map File</a><br/></div>
-<a href="#androidKeymapKeyCharMap">Key Character Map</a><br/><div style="padding-left:40px">
-
-<a href="#androidKeymapKeyCharMapSelection">Selection of a Key Character Map</a><br/>
-<a href="#androidKeymapKeyCharMapFileFormat">File Format</a><br/>
-<a href="#androidKeymapKeyCharMapExample">Example of a Key Character Map File</a><br/>
-<a href="#androidKeymapKeyCharMapResourceBinaryFileFormat">Resource Binary File Format</a><br/></div>
-<a href="#androidKeymapDriverTemplate">Implementing Your Own Driver (Driver Template)</a><br/>
-<a href="#androidKeymapKeyCharMapSampleImplementation">Sample Implementation</a><br/></div></font></div>
-
-<a name="androidKeymapIntro"></a><h2>Introduction</h2>
+<ul>
+<li><a href="#androidKeymapFunctionality">Functionality</a></li>
+<li><a href="#androidKeymapKeyLayoutMapTitle">Key Layout Map</a></li>
+<li><a href="#androidKeymapKeyCharMap">Key Character Map</a></li>
+<li><a href="#androidKeymapDriverTemplate">Implementing Your Own Driver (Driver Template)</a></li>
+<li><a href="#androidKeymapKeyCharMapSampleImplementation">Sample Implementation</a></li>
+</ul>
+</div>
+</div>
<p>This document describes how keyboard input gets translated into Android actions and how you can customize key layout and key character maps to match the needs of your own device. </p>
<p>Android uses the standard Linux input event device (<code>/dev/event0</code>) and driver as described in the <code>linux/input.h</code> kernel header file. For more information regarding standard Linux input drivers, please see <a href="http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.24.y.git;a=blob;f=Documentation/input/input.txt">Linux Input drivers</a> at <a href="http://kernel.org">http://kernel.org</a>.</p>
@@ -29,7 +23,7 @@
-<a name="androidKeymapFunctionality"></a><h2>Functionality</h2>
+<a name="androidKeymapFunctionality"></a><h3>Functionality</h3>
<p>Android's input event device is structured around an interrupt or polling routine that captures the device-specific scancode and converts it to a standard form acceptable to Linux (as defined in <code>input.h</code>) before passing it to the kernel with <code>input_event()</code>.</p>
<p>The keymap driver's other primary function is to establish a probe function that sets up the interrupt or polling function, handles hardware initialization, and attaches the driver to the input subsystem with <code>input_register_device()</code>.</p>
@@ -60,17 +54,17 @@
</table>
-<a name="androidKeymapKeyLayoutMapTitle"></a><h2>Key Layout Map</h2>
+<a name="androidKeymapKeyLayoutMapTitle"></a><h3>Key Layout Map</h3>
-<a name="androidKeymapKeyLayoutMapSelection"></a><h3>Selection of a Key Layout Map</h3>
+<a name="androidKeymapKeyLayoutMapSelection"></a><h4>Selection of a Key Layout Map</h4>
<p>Key layout maps are installed in <code>/system/usr/keylayout</code> and <code>/data/usr/keylayout</code>.</p>
<p>For each keyboard device xxx, set the <code>android.keylayout.xxx</code> system property (see <a href="build_new_device.html">Building New Device</a> for help setting system properties). If you don't specify a keylayout file, Android will default to <code>/system/usr/keylayout/qwerty.kl</code>.</p>
-<a name="androidKeymapKeyLayoutMapFileFormat"></a><h3>File Format</h3>
+<a name="androidKeymapKeyLayoutMapFileFormat"></a><h4>File Format</h4>
<p>Key layout maps are stored on the device as UTF-8 text files and have the following characteristics:</p>
<p><ul>
@@ -88,7 +82,7 @@
</p>
-<a name="androidKeymapKeyLayoutMapExample"></a><h3>Example of a Key Layout Map File</h3>
+<a name="androidKeymapKeyLayoutMapExample"></a><h4>Example of a Key Layout Map File</h4>
<p>The following code comes from <code>android/src/device/product/generic/tuttle2.kl</code> and is an example of a complete key layout file:</p>
<pre class="prettify">
@@ -171,17 +165,17 @@
</pre>
-<a name="androidKeymapKeyCharMap"></a><h2>Key Character Map</h2>
+<a name="androidKeymapKeyCharMap"></a><h3>Key Character Map</h3>
-<a name="androidKeymapKeyCharMapSelection"></a><h3>Selection of a Key Character Map</h3>
+<a name="androidKeymapKeyCharMapSelection"></a><h4>Selection of a Key Character Map</h4>
<p>Key character maps are installed in <code>/system/usr/keychars</code> and <code>/data/usr/keychars</code>.</p>
<p>For each keyboard device xxx, set the <code>android.keychar.xxx</code> system property to the full path of the desired keychar file. If you don't specify a keychar file, Android will default to <code>/system/usr/keychar/qwerty.kl</code>.
-<a name="androidKeymapKeyCharMapFileFormat"></a><h3>File Format</h3>
+<a name="androidKeymapKeyCharMapFileFormat"></a><h4>File Format</h4>
<p>Key character maps are stored on the device as binary resources in order to reduce loading time. Key character maps have the following characteristics:</p>
<p><ul>
@@ -220,7 +214,7 @@
</ul></p>
-<a name="androidKeymapKeyCharMapExample"></a><h3>Example of a Key Character Map File</h3>
+<a name="androidKeymapKeyCharMapExample"></a><h4>Example of a Key Character Map File</h4>
<p>The following code comes from <code>android/src/device/product/generic/tuttle2.kcm</code> and represents a complete key character file:</p>
<p>The type line indicates what kind of keyboard your device implements. Possible types include:</p>
@@ -299,7 +293,7 @@
</pre>
-<a name="androidKeymapKeyCharMapResourceBinaryFileFormat"></a><h3>Resource Binary File Format</h3>
+<a name="androidKeymapKeyCharMapResourceBinaryFileFormat"></a><h4>Resource Binary File Format</h4>
<p>The file snippet above gets converted to the following by the <code>makekcharmap</code> tool as part of the build process. You can <code>mmap</code> this file in and share the approximately 4k of memory that it uses between processes to minimize load time.</p>
<table>
@@ -359,7 +353,7 @@
</tbody></table>
-<a name="androidKeymapDriverTemplate"></a><h2>Implementing Your Own Driver (Driver Template)</h2>
+<a name="androidKeymapDriverTemplate"></a><h3>Implementing Your Own Driver (Driver Template)</h3>
<p>The following file, <code>pguide_events.c</code>, illustrates how to implement an Android keymap driver.</p>
<pre class="prettyprint">
@@ -485,7 +479,7 @@
</pre>
-<a name="androidKeymapKeyCharMapSampleImplementation"></a><h2>Sample Implementation</h2>
+<a name="androidKeymapKeyCharMapSampleImplementation"></a><h3>Sample Implementation</h3>
<p>Assume the following for the setup of a new keypad device:</p>
<pre class="prettify">
diff --git a/pdk/docs/guide/lights.jd b/pdk/docs/guide/lights.jd
index 5437e63..4f19c5d 100755
--- a/pdk/docs/guide/lights.jd
+++ b/pdk/docs/guide/lights.jd
@@ -1,15 +1,18 @@
page.title=Lights
pdk.version=1.0
@jd:body
-
-<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidLightsIntroduction">Introduction</a><br/>
-<a href="#androidLightsBuildingDriver">Building a Lights Library</a><br/>
-<a href="#androidLightsInterface">Interface</a><br/></div></font></div>
-
-<a name="androidLightsIntroduction"></a><h2>Introduction</h2>
-
+
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
+<a name="toc"/>
+<ul>
+<li><a href="#androidLightsBuildingDriver">Building a Lights Library</a></li>
+<li><a href="#androidLightsInterface">Interface</a></li>
+</ul>
+</div>
+</div>
+
<p>Android defines a user space C abstraction interface for LED hardware. The interface header is defined in
<code>hardware/libhardware/include/hardware/lights.h</code>.
In order to integrate LEDs with Android you need to build a shared library that implements this interface.
@@ -25,17 +28,17 @@
</ul>
</p>
-<a name="androidLightsBuildingDriver"></a><h2>Building a Lights Library</h2>
+<a name="androidLightsBuildingDriver"></a><h3>Building a Lights Library</h3>
<p> To implement a Lights driver, create a shared library that implements the interface defined in <code>lights.h</code>. You must name your shared library
<code>liblights.so</code> so that it will get loaded from <code>/system/lib</code> at runtime.
</p
-<a name="androidLightsInterface"></a><h2>Interface</h2>
+<a name="androidLightsInterface"></a><h3>Interface</h3>
-<p><span class="lh2"><a name="androidDoxygenNote"></a></span>
+<p><span class="lh3"><a name="androidDoxygenNote"></a></span>
<p class="note"><strong>Note</strong>: This document relies on some Doxygen-generated content that appears in an iFrame below. To return to the Doxygen default content for this page, <a href="lights.html">click here</a>.</p>
diff --git a/pdk/docs/guide/pdk_toc.cs b/pdk/docs/guide/pdk_toc.cs
index 3b79cef..f98f194 100644
--- a/pdk/docs/guide/pdk_toc.cs
+++ b/pdk/docs/guide/pdk_toc.cs
@@ -34,7 +34,7 @@
<li><a href="<?cs var:toroot ?>guide/wifi.html">Wi-Fi</a></li>
</ul>
</li>
-
+
<li><a href="<?cs var:toroot ?>guide/display_drivers.html">Display Drivers</a></li>
<li class="toggle-list">
<div><a href="javascript:nothing()">Input Devices</a></div>
@@ -42,7 +42,7 @@
<li><a href="<?cs var:toroot ?>guide/keymaps_keyboard_input.html">Keymaps and Keyboard</a></li>
</ul>
</li>
- <li><a href="<?cs var:toroot ?>guide/lights.html">LED</a></li>
+ <li><a href="<?cs var:toroot ?>guide/lights.html">Lights</a></li>
<li class="toggle-list">
<div><a href="javascript:nothing()">Multimedia</a></div>
<ul>
@@ -66,13 +66,6 @@
</ul>
</li>
- <li class="toggle-list">
- <div><a href="javascript:nothing()">Misc</a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>guide/lights.html">LEDs</a></li>
- </ul>
- </li>
-
</ul>
</li>
diff --git a/pdk/docs/guide/release_keys.jd b/pdk/docs/guide/release_keys.jd
index aa3a44b..a57cb10 100755
--- a/pdk/docs/guide/release_keys.jd
+++ b/pdk/docs/guide/release_keys.jd
@@ -2,7 +2,9 @@
pdk.version=1.0
@jd:body
<div id="qv-wrapper">
- <div id ="qv"> <a name="toc"/>
+ <div id ="qv">
+<h2>In this document</h2>
+<a name="toc"/>
<ul>
<li><a href="#intro">Introduction</a></li>
<li><a href="#generatingKeys">Generating keys</a></li>
diff --git a/pdk/docs/guide/sensors.jd b/pdk/docs/guide/sensors.jd
index 4463a95..79a2ad3 100755
--- a/pdk/docs/guide/sensors.jd
+++ b/pdk/docs/guide/sensors.jd
@@ -1,14 +1,17 @@
page.title=Sensors
pdk.version=1.0
@jd:body
-
-<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidSensorsIntroduction">Introduction</a><br/>
-<a href="#androidSensorsInterface">Interface</a><br/></div></font></div>
-
-<a name="androidSensorsIntroduction"></a><h2>Introduction</h2>
-
+
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
+<a name="toc"/>
+<ul>
+<li><a href="#androidSensorsInterface">Interface</a></li>
+</ul>
+</div>
+</div>
+
<p>Android defines a user space C abstraction interface for sensor hardware. The interface header is defined in
<code>hardware/libhardware/include/hardware/sensors.h</code>.
In order to integrate sensors with Android you need to build a shared library that implements this interface.
@@ -26,17 +29,17 @@
</ul>
</p>
-<a name="androidSensorBuildingDriver"></a><h2>Building a Sensor Library</h2>
+<a name="androidSensorBuildingDriver"></a><h3>Building a Sensor Library</h3>
<p> To implement a Sensors driver, create a shared library that implements the interface defined in <code>sensors.h</code>. You must name your shared library
<code>libsensors.so</code> so that it will get loaded from <code>/system/lib</code> at runtime.
</p
-<a name="androidSensorsInterface"></a><h2>Interface</h2>
+<a name="androidSensorsInterface"></a><h3>Interface</h3>
-<p><span class="lh2"><a name="androidDoxygenNote"></a></span>
+<p><span class="lh3"><a name="androidDoxygenNote"></a></span>
<p class="note"><strong>Note</strong>: This document relies on some Doxygen-generated content that appears in an iFrame below. To return to the Doxygen default content for this page, <a href="sensors.html">click here</a>.</p>
diff --git a/pdk/docs/guide/stk.jd b/pdk/docs/guide/stk.jd
index 32f165c..0ce0b4a 100755
--- a/pdk/docs/guide/stk.jd
+++ b/pdk/docs/guide/stk.jd
@@ -2,26 +2,20 @@
pdk.version=1.0
@jd:body
-<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidSTKIntro">Introduction</a><br/>
-<a href="#androidSTKRILRilUp">Communication from the RIL up</a><br/><div style="padding-left:40px">
-<a href="#androidSTKRILRilUpUnsol">RIL_UNSOL_STK_PROACTIVE_COMMAND</a><br/>
-<a href="#androidSTKRILRilUpEvent">RIL_UNSOL_STK_EVENT_NOTIFY</a><br/>
-<a href="#androidSTKRILRilUpUnsolSim">RIL_UNSOL_SIM_REFRESH</a><br/>
-<a href="#androidSTKRILRilUpRefresh">REFRESH (6.4.7)</a><br/>
-<a href="#androidSTKRILRilUpRilUnsol">RIL_UNSOL_STK_SESSION_END</a><br/></div>
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
+<a name="toc"/>
+<ul>
+<li><a href="#androidSTKRILRilUp">Communication from the RIL up</a></li>
+<li><a href="#androidSTKRILApplciationDown">Communication from the application down</a></li>
+<li><a href="#androidSTKTelephony">Telephony</a></li>
+<li><a href="#androidSTKFeatureList">Feature List</a></li>
+</ul>
+</div>
+</div>
-<a href="#androidSTKRILApplciationDown">Communication from the application down</a><br/><div style="padding-left:40px">
-
-<a href="#androidSTKRILApplciationDownTerminal">RIL_REQUEST_STK_SEND_TERMINAL_REPSONSE</a><br/>
-<a href="#androidSTKRILApplciationDownEnvelope">RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND</a><br/>
-<a href="#androidSTKRILApplciationDownFromSim">RIL_REQUEST_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM</a><br/></div>
-<a href="#androidSTKTelephony">Telephony</a><br/>
-<a href="#androidSTKFeatureList">Feature List</a><br/></div>
-
-<a name="androidSTKIntro"></a><h2>Introduction</h2>
-
+
<p>This document offers a high-level overview of the SIM Toolkit Application for Android 1.0 and is primarily of interest for implementors of the Radio Interface Layer (RIL). The STK is R96 compatible (3GPP TS 11.14 v5.9.0) and complies partially with R99 (3GPP TS 101.267 v8.17.0). See the <a href="androidSTKFeatureList">STK Feature List</a> for the complete feature list. </p>
<p>The Android STK implementation includes three layers:</p>
<ul>
@@ -42,7 +36,7 @@
<p>See the <a href="http://pdk-docs.prom.corp.google.com/docs/telephony.html">Android Platform Development Kit</a> for details.</p>
-<a name="androidSTKRILRilUp"></a><h3>Communication from the RIL up</h3>
+<a name="androidSTKRILRilUp"></a><h4>Communication from the RIL up</h4>
<p>Communication to the upper layers is done using the <code>RIL_UNSOL_xxx</code> family of commands defined in <code>/hardware/ril/include/ril.h</code>. The payload for each command is encoded using BER-TLV. As stated above, it is not necessary to remove extraneous fields. This allows the SIM to pass a complete command to the upper layers and simplifies STK RIL code. Below is the mapping from RIL_UNSOL_xxx commands to the SIM commands.</p>
@@ -182,7 +176,7 @@
<p>Sent by SIM to signal end of session. No content and no response.</p>
-<a name="androidSTKRILApplciationDown"></a><h3>Communication from the application down</h3>
+<a name="androidSTKRILApplciationDown"></a><h4>Communication from the application down</h4>
<p>Communication from the upper layers to the RIL uses the commands below (defined in <code>ril.h</code>):</p>
@@ -218,13 +212,13 @@
<p> This should cause the terminal response to be sent to the SIM.</p>
-<a name="androidSTKTelephony"></a><h2>Telephony</h2>
+<a name="androidSTKTelephony"></a><h3>Telephony</h3>
<p>STK Telephony is a protocol translation layer used to convert messages from BERL-TLV format to Application messages and back. </p>
<p>On the STK RIL side, STK Telphony receives raw buffer messages from RIL I/F and decodes them into a command parameters container before passing them on to the application. On the Application side, this layer receives application responses for commands and encodes them into raw buffer messages, which then get sent over the RIL I/F back to the SIM card.</p>
-<a name="androidSTKFeatureList"></a><h2>Feature List</h2>
+<a name="androidSTKFeatureList"></a><h3>Feature List</h3>
<table border="1" cellspacing="2" cellpadding="2">
<tr>
diff --git a/pdk/docs/guide/telephony.jd b/pdk/docs/guide/telephony.jd
index 647a33b..0fe5221 100755
--- a/pdk/docs/guide/telephony.jd
+++ b/pdk/docs/guide/telephony.jd
@@ -2,23 +2,18 @@
pdk.version=1.0
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidTelephonyIntro">Introduction</a><br/>
-<a href="#androidTelephonyRILInitialization">RIL Initialization</a><br/>
-<a href="#androidTelephonyRILIntro">RIL Interaction</a><br/><div style="padding-left:40px">
-
-<a href="#androidTelephonyRILSolicited">Solicited</a><br/>
-<a href="#androidTelephonyRILUnsolicited">Unsolicited</a><br/></div>
-<a href="#androidTelephonyRILImplementing">Implementing the RIL</a><br/><div style="padding-left:40px">
-
-<a href="#androidTelephonyRILInit">RIL_Init</a><br/></div>
-<a href="#androidTelephonyRILFunctions">RIL Functions</a><br/><div style="padding-left:40px">
-
-<a href="#androidRilFunctionsSolicited">RIL Solicited Command Requests</a><br/>
-<a href="#androidRilFunctionsUnsolicited">RIL Unsolicited Commands</a><br/></div></div></font></div>
-
-<a name="androidTelephonyIntro"></a><h2>Introduction</h2>
+<ul>
+<li><a href="#androidTelephonyRILInitialization">RIL Initialization</a></li>
+<li><a href="#androidTelephonyRILIntro">RIL Interaction</a></li>
+<li><a href="#androidTelephonyRILImplementing">Implementing the RIL</a></li>
+<li><a href="#androidTelephonyRILFunctions">RIL Functions</a></li>
+</ul>
+</div>
+</div>
<p>Android's Radio Interface Layer (RIL) provides an abstraction layer between Android telephony services (<a href="http://code.google.com/android/reference/android/telephony/package-descr.html">android.telephony</a>) and radio hardware. The RIL is radio agnostic, and includes support for Global System for Mobile communication (GSM)-based radios. </P>
@@ -36,7 +31,7 @@
</p>
-<a name="androidTelephonyRILInitialization"></a><h2>RIL Initialization</h2>
+<a name="androidTelephonyRILInitialization"></a><h3>RIL Initialization</h3>
<p>Android initializes the telephony stack and the Vendor RIL at startup as described in the sequence below:</p>
<p><ol>
@@ -57,7 +52,7 @@
<li><code>ro.ril.enable.3g.prefix=1</code>: adds the 3G prefix to the operator name.</li>
</ul></p>
-<a name="androidTelephonyRILIntro"></a><h2>RIL Interaction</h2>
+<a name="androidTelephonyRILIntro"></a><h3>RIL Interaction</h3>
<p>There are two forms of communication that the RIL handles:</p>
<ul>
@@ -66,7 +61,7 @@
</ul>
-<a name="androidTelephonyRILSolicited"></a><h3>Solicited</h3>
+<a name="androidTelephonyRILSolicited"></a><h4>Solicited</h4>
<p>The following snippet illustrates the interface for solicited commands:</p>
<pre class="prettify">
@@ -92,7 +87,7 @@
<p><img src="images/telephony_solicted_example.gif"></p>
-<a name="androidTelephonyRILUnsolicited"></a><h3>Unsolicited</h3>
+<a name="androidTelephonyRILUnsolicited"></a><h4>Unsolicited</h4>
<p>The following snippet illustrates the interface for unsolicited commands:</p>
<pre class="prettify">
@@ -111,7 +106,7 @@
<p><img src="images/telephony_unsolicted_example.gif"></p>
-<a name="androidTelephonyRILImplementing"></a><h2>Implementing the RIL</h2>
+<a name="androidTelephonyRILImplementing"></a><h3>Implementing the RIL</h3>
<p>To implement a radio-specific RIL, create a shared library that implements a set of functions required by Android to process radio requests. The required functions are defined in the RIL header (<code>/include/telephony/ril.h</code>).</p>
<p>The Android radio interface is radio-agnostic and the Vendor RIL can use any protocol to communicate with the radio. Android provides a reference Vendor RIL, using the Hayes AT command set, that you can use as a quick start for telephony testing and a guide for commercial vendor RILs. The source code for the reference RIL is found at <code>/commands/reference-ril/</code>.</p>
@@ -125,7 +120,7 @@
</p>
-<a name="androidTelephonyRILInit"></a><h3>RIL_Init</h3>
+<a name="androidTelephonyRILInit"></a><h4>RIL_Init</h4>
<p>Your Vendor RIL must define a RIL_Init function that provides a handle to the functions which will process all radio requests. RIL_Init will be called by the Android RIL Daemon at boot time to initialize the RIL.</p>
@@ -147,12 +142,12 @@
</pre>
-<a name="androidTelephonyRILFunctions"></a><h2>RIL Functions</h2>
+<a name="androidTelephonyRILFunctions"></a><h3>RIL Functions</h3>
<p><code>ril.h</code> defines RIL states and variables, such as <code>RIL_UNSOL_STK_CALL_SETUP</code>, <code>RIL_SIM_READY</code>, <code>RIL_SIM_NOT_READY</code>, as well as the functions described in the tables below. Skim the header file (<code>/device/include/telephony/ril.h</code>) for details.</p>
-<a name="androidRilFunctionsSolicited"></a><h3>RIL Solicited Command Requests</h3>
+<a name="androidRilFunctionsSolicited"></a><h4>RIL Solicited Command Requests</h4>
<p>The vendor RIL must provide the functions described in the table below to handle solicited commands. The RIL solicited command request types are defined in <code>ril.h</code> with the <code>RIL_REQUEST_</code> prefix. Check the header file for details.</p>
<p><table>
@@ -214,7 +209,7 @@
</table></p>
-<a name="androidRilFunctionsUnsolicited"></a><h3>RIL Unsolicited Commands</h3>
+<a name="androidRilFunctionsUnsolicited"></a><h4>RIL Unsolicited Commands</h4>
<p>The functions listed in the table below are call-back functions used by the Vendor RIL to invoke unsolicited commands on the Android platform. See <code>ril.h</code> for details. </p>
<p>
diff --git a/pdk/docs/guide/wakelock.jd b/pdk/docs/guide/wakelock.jd
index 1d8b425..ee59053 100755
--- a/pdk/docs/guide/wakelock.jd
+++ b/pdk/docs/guide/wakelock.jd
@@ -3,14 +3,17 @@
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px">
- <a href="#intro">Introduction</a><BR>
- <a href="#driverAPI">Driver API</a><br/>
- <a href="#userspaceAPI">User Space API</a><br/>
+<ul>
+<li><a href="#driverAPI">Driver API</a></li>
+<li><a href="#userspaceAPI">User Space API</a></li>
+</ul>
+</div>
</div>
- <a name="userspaceAPI"></a><h2>Introduction</h2>
<p>A locked wakelock, depending on its type, prevents the system from entering suspend or other low-power states. This document describes how to employ wakelocks. </p>
<p>There are two settings for a wakelock:</p>
<ul>
@@ -45,9 +48,9 @@
process-input-events +++ +++
</pre>
-<a name="driverAPI"></a><h2>Driver API</h2>
+<a name="driverAPI"></a><h3>Driver API</h3>
<p>A driver can use the wakelock API by adding a wakelock variable to its state and calling <code>wake_lock_init</code>, as illustrated in the snippet below:</p>
-<pre class="prettify">
+<pre>
struct state {
struct wakelock wakelock;
}
@@ -60,18 +63,18 @@
}
</pre>
<p> When the driver determines that it needs to run (usually in an interrupt handler), it calls <code>wake_lock</code>:</p>
-<pre class="prettify">
+<pre>
wake_lock(&state->wakelock);
</pre>
<p>When it no longer needs to run, it calls <code>wake_unlock</code>:</p>
-<pre class="prettify">
+<pre>
wake_unlock(&state->wakelock);
</pre>
<p> It can also call <code>wake_lock_timeout</code> to release the wakelock after a delay:</p>
-<pre class="prettify">
+<pre>
wake_lock_timeout(&state->wakelock, HZ);
</pre>
<p> This works whether or not the wakelock is already held. It is useful if the driver woke up other parts of the system that do not use wakelocks but still need to run. Avoid this when possible, since it will waste power if the timeout is long or may fail to finish needed work if the timeout is short.</p>
-<a name="userspaceAPI"></a><h2>User-space API</h2>
+<a name="userspaceAPI"></a><h3>User-space API</h3>
<p>Write <code>lockname</code> or <code>lockname timeout</code> to <code>/sys/power/wake_lock</code> lock and, if needed, create a wakelock. The timeout here is specified in nanoseconds. Write <code>lockname</code> to <code>/sys/power/wake_unlock</code> to unlock a user wakelock.</p>
<p> Do not use randomly generated wakelock names as there is no API to free a user-space wakelock.</p>
\ No newline at end of file
diff --git a/pdk/docs/guide/wifi.jd b/pdk/docs/guide/wifi.jd
index aaf0ace..5341954 100755
--- a/pdk/docs/guide/wifi.jd
+++ b/pdk/docs/guide/wifi.jd
@@ -2,18 +2,21 @@
pdk.version=1.0
@jd:body
+<div id="qv-wrapper">
+<div id="qv">
+<h2>In this document</h2>
<a name="toc"/>
-<div style="padding:10px">
-<a href="#androidWifiIntroduction">Introduction</a><br/>
-<a href="#androidWifiBuildingDriver">Building a Wi-Fi Library</a><br/>
-<a href="#androidWifiInterface">Interface</a><br/></div>
-
-<a name="androidWifiIntroduction"></a><h2>Introduction</h2>
+<ul>
+<li><a href="#androidWifiBuildingDriver">Building a Wi-Fi Library</a></li>
+<li><a href="#androidWifiInterface">Interface</a></li>
+</ul>
+</div>
+</div>
<p>Android uses wpa_supplicant as the platform interface to the Wi-Fi device. Your Wi-Fi driver must be compatible with the standard wpa_supplicant in addition to extensions added to the supplicant (specifically, the "DRIVER" commands described in <code>wifi.h/wifi_command()</code>).</p>
-<a name="androidWifiBuildingDriver"></a><h2>Building a Wi-Fi Library</h2>
+<a name="androidWifiBuildingDriver"></a><h3>Building a Wi-Fi Library</h3>
<p>To create a Wi-Fi driver for Android:</p>
<p><ul>
@@ -37,7 +40,7 @@
</pre>
-<a name="androidWifiInterface"></a><h2>Interface</h2>
+<a name="androidWifiInterface"></a><h3>Interface</h3>