Merge branch 'readonly-p4-donut' into donut

This commit is contained in:
Mike Ritter
2009-04-14 13:58:45 -07:00
committed by The Android Open Source Project
24 changed files with 148 additions and 229 deletions

View File

@@ -16,7 +16,6 @@
# Assemble the Platform Development Kit (PDK) # Assemble the Platform Development Kit (PDK)
# (TODO) Figure out why $(ACP) builds with target ndk but not pdk_docs # (TODO) Figure out why $(ACP) builds with target ndk but not pdk_docs
# (TODO) Build doxygen (depend on latest version) -> line 25 </div> error
pdk: pdk:
@echo "Package: $@ has targets ndk, pdk_docs and pdk_all" @echo "Package: $@ has targets ndk, pdk_docs and pdk_all"
@@ -66,10 +65,8 @@ pdk_generated_source_dir := $(pdk_docs_intermediates)/generatedDocs/html
pdk_doxy_docsfiles_dir := $(pdk_docs_intermediates)/docsfiles pdk_doxy_docsfiles_dir := $(pdk_docs_intermediates)/docsfiles
# Doxygen version to use, so we can override it on the command line # Doxygen version to use, so we can override it on the command line
# doxygen 1.4.6 working, the latest version get-apt installable on goobuntu. # doxygen 1.5.6 working, the latest version get-apt installable on ghardy.
# (TODO) doxygen 1.5.6 generated source files not displayable # with bug fix for </div> error.
# doxygen_version='~pubengdocs/shared/doxy/doxygen.1.5.6.kcc'
# for latest version of doxygen on linux
doxygen_version = doxygen doxygen_version = doxygen
#------------------------------------------------------------------------------- #-------------------------------------------------------------------------------
@@ -142,29 +139,12 @@ $(pdk_doxy_docsfiles_dir)/main.dox: $(pdk_docsfile_dir)/main.dox
@echo "PDK: $@" @echo "PDK: $@"
$(copy-file-to-target-with-cp) $(copy-file-to-target-with-cp)
# Copy appengine server files
$(pdk_docs_intermediates)/app.yaml: $(pdk_hosting_dir)/app.yaml
@echo "PDK: $@"
$(copy-file-to-target-with-cp)
$(pdk_docs_intermediates)/pdk.py: $(pdk_hosting_dir)/pdk.py
@echo "PDK: $@"
$(copy-file-to-target-with-cp)
# Copy appengine server files for new system
$(OUT_DOCS)/app.yaml: $(pdk_hosting_dir)/app.yaml
@echo "PDK: $@"
$(copy-file-to-target-with-cp)
$(OUT_DOCS)/pdk.py: $(pdk_hosting_dir)/pdk.py
@echo "PDK: $@"
$(copy-file-to-target-with-cp)
# All the files that we depend upon # All the files that we depend upon
all_pdk_docs_files := $(pdk_doxygen_config_override_file) \ all_pdk_docs_files := $(pdk_doxygen_config_override_file) \
$(pdk_doxygen_config_file) $(pdk_docs_intermediates)/header.html \ $(pdk_doxygen_config_file) $(pdk_docs_intermediates)/header.html \
$(pdk_docs_intermediates)/footer.html $(pdk_doxy_docsfiles_dir)/groups.dox \ $(pdk_docs_intermediates)/footer.html $(pdk_doxy_docsfiles_dir)/groups.dox \
$(pdk_doxy_docsfiles_dir)/main.dox all_copied_pdk_templates $(pdk_doxy_docsfiles_dir)/main.dox all_copied_pdk_templates \
all_copied_pdk_headers
# Run doxygen and copy all output and templates to the final destination # Run doxygen and copy all output and templates to the final destination
# We replace index.html with a template file so don't use the generated one # We replace index.html with a template file so don't use the generated one
@@ -179,14 +159,17 @@ pdk_doxygen: all_copied_pdk_headers $(pdk_doxygen_config_override_file) \
@mkdir -p $(pdk_docs_dest_dir) @mkdir -p $(pdk_docs_dest_dir)
@cd $(pdk_generated_source_dir) && chmod ug+rx * @cd $(pdk_generated_source_dir) && chmod ug+rx *
@rm -f $(pdk_generated_source_dir)/index.html @rm -f $(pdk_generated_source_dir)/index.html
# Fix a doxygen bug: in *-source.html file insert '</div>\n' after line 25
@$(pdk_hosting_dir)/edoxfix.sh $(pdk_generated_source_dir)
@cp -fp $(pdk_generated_source_dir)/* $(pdk_docs_dest_dir) @cp -fp $(pdk_generated_source_dir)/* $(pdk_docs_dest_dir)
@rm $(pdk_generated_source_dir)/*
# ==== docs for the web (on the google app engine server) ======================= # ==== docs for the web (on the google app engine server) =======================
# Run javadoc/droiddoc/clearsilver to get the formatting right # Run javadoc/droiddoc/clearsilver to get the formatting right
# make droiddocs run after we make our doxygen docs # make droiddocs run after we make our doxygen docs
$(pdk_docs_intermediates)/pdk-timestamp: pdk_doxygen $(pdk_docs_intermediates)/pdk-timestamp: pdk_doxygen all_copied_pdk_templates
@touch $(pdk_docs_intermediates)/pdk-timestamp @touch $(pdk_docs_intermediates)/pdk-timestamp
$(LOCAL_PATH)/pdk-timestamp: $(pdk_docs_intermediates)/pdk-timestamp $(LOCAL_PATH)/pdk-timestamp: $(pdk_docs_intermediates)/pdk-timestamp
@@ -201,8 +184,6 @@ LOCAL_DROIDDOC_HTML_DIR := ../../../$(pdk_docs_dest_dir)
LOCAL_MODULE := online-pdk LOCAL_MODULE := online-pdk
LOCAL_DROIDDOC_OPTIONS := \ LOCAL_DROIDDOC_OPTIONS := \
$(framework_docs_LOCAL_DROIDDOC_OPTIONS) \
$(web_docs_sample_code_flags) \
-toroot /online-pdk/ \ -toroot /online-pdk/ \
-hdf android.whichdoc online-pdk -hdf android.whichdoc online-pdk
@@ -214,6 +195,15 @@ include $(BUILD_DROIDDOC)
# The docs output dir is: out/target/common/docs/online-pdk # The docs output dir is: out/target/common/docs/online-pdk
DOCS_OUT_DIR := $(OUT_DOCS)/$(LOCAL_MODULE) DOCS_OUT_DIR := $(OUT_DOCS)/$(LOCAL_MODULE)
# Copy appengine server files for new system
$(OUT_DOCS)/app.yaml: $(pdk_hosting_dir)/app.yaml
@echo "PDK: $@"
$(copy-file-to-target-with-cp)
$(OUT_DOCS)/pdk.py: $(pdk_hosting_dir)/pdk.py
@echo "PDK: $@"
$(copy-file-to-target-with-cp)
# Name the tar files # Name the tar files
name := android_pdk_docs-$(REQUESTED_PRODUCT) name := android_pdk_docs-$(REQUESTED_PRODUCT)
ifeq ($(TARGET_BUILD_TYPE),debug) ifeq ($(TARGET_BUILD_TYPE),debug)
@@ -222,17 +212,14 @@ endif
name := $(name)-$(BUILD_NUMBER) name := $(name)-$(BUILD_NUMBER)
pdk_docs_tarfile := $(pdk_docs_intermediates)/$(name).tar pdk_docs_tarfile := $(pdk_docs_intermediates)/$(name).tar
pdk_docs_tarfile_zipped := $(pdk_docs_tarfile).gz pdk_docs_tarfile_zipped := $(pdk_docs_tarfile).gz
new_pdk_docs_tarfile := $(pdk_docs_intermediates)/new-$(name).tar
new_pdk_docs_tarfile_zipped := $(new_pdk_docs_tarfile).gz
.PHONY: pdk pdk_docs pdk_doxygen all_copied_pdk_headers all_copied_pdk_templates pdk-timestamp .PHONY: pdk pdk_docs pdk_doxygen all_copied_pdk_headers all_copied_pdk_templates pdk-timestamp
pdk_docs: $(pdk_docs_tarfile_zipped) $(new_pdk_docs_tarfile) pdk_docs: $(pdk_docs_tarfile_zipped) $(pdk_docs_tarfile)
@echo "PDK: Docs tarred and zipped" @echo "PDK: Docs tarred and zipped"
# Put the pdk_docs zip files in the distribution directory # Put the pdk_docs zip files in the distribution directory
$(call dist-for-goals,pdk_docs,$(pdk_docs_tarfile_zipped)) $(call dist-for-goals,pdk_docs,$(pdk_docs_tarfile_zipped))
$(call dist-for-goals,pdk_docs,$(new_pdk_docs_tarfile_zipped))
# zip up tar files # zip up tar files
%.tar.gz: %.tar %.tar.gz: %.tar
@@ -240,20 +227,11 @@ $(call dist-for-goals,pdk_docs,$(new_pdk_docs_tarfile_zipped))
$(hide) gzip -cf $< > $@ $(hide) gzip -cf $< > $@
# tar up all the files to make the pdk docs. # tar up all the files to make the pdk docs.
# old version $(pdk_docs_tarfile): $(DOCS_OUT_DIR)-timestamp $(OUT_DOCS)/app.yaml $(OUT_DOCS)/pdk.py
$(pdk_docs_tarfile): pdk_doxygen all_copied_pdk_templates \
$(pdk_docs_intermediates)/pdk.py $(pdk_docs_intermediates)/app.yaml
@echo "PDK: $@"
@mkdir -p $(dir $@)
@rm -f $@
$(hide) tar rf $@ -C $(pdk_docs_intermediates) docs pdk.py app.yaml
# new version
$(new_pdk_docs_tarfile): $(DOCS_OUT_DIR)-timestamp
@echo "PDK docs: $@" @echo "PDK docs: $@"
@mkdir -p $(dir $@) @mkdir -p $(dir $@)
@rm -f $@ @rm -f $@
$(hide) tar rf $@ -C $(OUT_DOCS) $(LOCAL_MODULE) $(hide) tar rf $@ -C $(OUT_DOCS) $(LOCAL_MODULE) pdk.py app.yaml
# Debugging reporting can go here, add it as a target to get output. # Debugging reporting can go here, add it as a target to get output.
pdk_debug: pdk_debug:

View File

@@ -28,45 +28,73 @@ then build everything:
so you can have a record of the build commands in the logs directory. so you can have a record of the build commands in the logs directory.
5) the pdk tar file is put in the dist directory. 5) the pdk and ndk tar file is put in the dist directory.
6) the pdk-docs are in 6) the pdk-docs are in
out/target out/target/common/docs/online-pdk
--------------------------------------------------------------------------------
# Build Notes
The build target 'pdk' brings in the pdk/ndk make files into the build system. The build target 'pdk' brings in the pdk/ndk make files into the build system.
Then there are three targets: Then there are three targets:
pdk_docs - which builds just the pdk documentation pdk_docs - which builds just the pdk documentation
ndk - which builds the native development kit (native compiler, linker, etc.) ndk - which builds the native development kit (native compiler, linker, etc.)
pdk_all - which builds the above two targets pdk_all - which builds the above two targets
To chnage which version of doxygen runs you can pass in the variable: To change which version of doxygen runs you can pass in the variable:
doxygen_version='<path/name_of_doxygen_executable>' doxygen_version='<path/name_of_doxygen_executable>'
on the make line. on the make line.
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
# Testing # Testing
You must install google appengine. See: http://code.google.com/appengine/downloads.html You must install google appengine. See: http://code.google.com/appengine/downloads.html
Here's the command to run the pdk-docs server locally: Here's the command to run the pdk-docs server locally:
python <path_to_appengine_installation>/dev_appserver.py --address 0.0.0.0 \ python <path_to_appengine_installation>/dev_appserver.py --address 0.0.0.0 \
<path_to_cupcake_code>/android/out/target/common/docs/online-pdk <path_to_cupcake_code>/android/out/target/common/docs
To verify it is working you can access it with a browser loacally on port 8080: To verify it is working you can access it with a browser loacally on port 8080:
http://localhost:8080/index.html http://localhost:8080/index.html
TODO: index.html needs correct links.
TODO: app.yaml not working for redirecting, getting extra '.' in html names... NOTE: If you are trying to get to the appengine local testing instance remotely
you will have to ssh tunnel into your linux box as appengine only serves the web
host locally.
On a Windows machine to check your current port forwarding settings:
1. Start putty.
2. Click on your session in the list and hit load (this loads the settings so you can edit them)
3. Go to SSH -> tunnels and look at the Forwarded ports box
L8080 localhost:8080
Means that you can point your webbrowser on your laptop to http://localhost:8080/ and it will show you the same thing as on your workstation for http://localhost:8080/
To add port forwarding
1. Start putty.
2. Click on your session in the list and hit load (this loads the settings so you can edit them)
3. Go to SSH -> tunnels.
4. Pick an unused port on your laptop (8080, 8888, something like that) and put it in the "source port box"
5. In the destination box, put localhost:8888 (replace with the actual port number the service is running on)
6. Hit add.
7. Go back to "Session" and save your new settings so this configuration will happen everytime you login.
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
# Deployment # Deployment
To host the pdk docs on the interanl appengine run: To host the pdk docs on the interanl appengine run:
/home/build/static/projects/apphosting/devtools/appcfg.py update <path_to_cupcake_src>/out/common/docs /home/build/static/projects/apphosting/devtools/appcfg.py update <path_to_cupcake_src>/out/common/docs
where the docs directory contains: pdk.py, app.yaml, and the online-pdk directory, where the docs directory contains: pdk.py, app.yaml, and the online-pdk directory,
all of which are tarred up by the Pdk.mk file when using the target pdk_docs. all of which are tarred up by the Pdk.mk file when using the target pdk_docs.
# Deployment
To host the pdk docs on the external appengine run: To host the pdk docs on the external appengine run:
/home/build/static/projects/apphosting/devtools/appcfg.py -s pdk-docs.appspot.com update <path_to_cupcake_src>/out/common/docs /home/build/static/projects/apphosting/devtools/appcfg.py -s pdk-docs.appspot.com update <path_to_cupcake_src>/out/common/docs
where the docs directory contains: pdk.py, app.yaml, and the online-pdk directory, where the docs directory contains: pdk.py, app.yaml, and the online-pdk directory,

View File

@@ -1,3 +1,8 @@
V 0.9 MWR Apr 6, 2009
#####################
* New files for new css files using droiddoc/clearsilver
V 0.3 - June 9, 2008 V 0.3 - June 9, 2008
#################### ####################

View File

@@ -53,4 +53,4 @@ include $(BUILD_SHARED_LIBRARY)
<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="audio_sub_system.html">click here</a>.</p> <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="audio_sub_system.html">click here</a>.</p>
<iframe onLoad="resizeHeight();" src="_audio_hardware_interface_8h.html" scrolling="no" scroll="no" id="doxygen" marginwidth="0" marginheight="0" frameborder="0" style="width:100%;"></iframe> <iframe onLoad="resizeDoxFrameHeight();" src="_audio_hardware_interface_8h.html" scrolling="no" scroll="no" id="doxygen" marginwidth="0" marginheight="0" frameborder="0" style="width:100%;"></iframe>

View File

@@ -1,25 +1,15 @@
page.title=Bluetooth page.title=Bluetooth
pdk.version=1.0
@jd:body @jd:body
<div id="qv-wrapper">
<div id="qv">
<a name="toc"/> <a name="toc"/>
<div style="padding:10px">
<a href="#androidBluetoothIntro">Introduction</a><br/>
<a href="#androidBluetoothPorting">Porting</a><br/><div style="padding-left:40px">
<h2>In this document</h2> <a href="#androidBluetoothPortingDriver">UART Driver</a><br/>
<a href="#androidBluetoothPortingPowerOnOff">Bluetooth Power On / Off</a><br/></div>
<ol> <a href="#androidBluetoothTools">Tools</a><br/></div></font></div>
<li><a href="#androidBluetoothIntro">Introduction</a></li>
<li><a href="#androidBluetoothPorting">Porting</a>
<ol>
<li><a href="#androidBluetoothPortingDriver">UART Driver</a></li>
<li><a href="#androidBluetoothPortingPowerOnOff">Bluetooth Power On / Off</a></li>
</ol>
</li>
<li><a href="#androidBluetoothTools">Tools</a></li>
</ol>
</div>
</div>
<a name="androidBluetoothIntro"></a><h2>Introduction</h2> <a name="androidBluetoothIntro"></a><h2>Introduction</h2>
@@ -77,6 +67,3 @@ Solid elements represent Android blocks and dashed elements represent partner-sp
<li><code>dbus-monitor</code></li> <li><code>dbus-monitor</code></li>
</ul> </ul>
</p> </p>

View File

@@ -1,4 +1,5 @@
page.title=Bring Up page.title=Bring Up
pdk.version=1.0
@jd:body @jd:body
<p>Once your code is built and you have verified that all necessary directories exist, power on and test your device with basic bring up, as described below. Bring up tests are typically designed to stress certain aspects of your system and allow you to characterize the device's behavior. </p> <p>Once your code is built and you have verified that all necessary directories exist, power on and test your device with basic bring up, as described below. Bring up tests are typically designed to stress certain aspects of your system and allow you to characterize the device's behavior. </p>
@@ -6,7 +7,6 @@ page.title=Bring Up
<h3>1. Confirm a Clean Installation of a Basic Linux Kernel </h3> <h3>1. Confirm a Clean Installation of a Basic Linux Kernel </h3>
<p>Before considering Android-specific modifications to the Linux kernel, verify that you can build, deploy, and boot a core Linux kernel on your target hardware. </p> <p>Before considering Android-specific modifications to the Linux kernel, verify that you can build, deploy, and boot a core Linux kernel on your target hardware. </p>
<p>&nbsp;</p> <p>&nbsp;</p>
<h3>2. Modify Your Kernel Configuration to Accommodate Android Drivers</h3> <h3>2. Modify Your Kernel Configuration to Accommodate Android Drivers</h3>
<p>Your kernel configuration file should include the following:</p> <p>Your kernel configuration file should include the following:</p>
<pre class="prettyprint"> <pre class="prettyprint">
@@ -356,5 +356,3 @@ service akmd /sbin/akmd
user akmd user akmd
group akmd group akmd
</pre> </pre>

View File

@@ -27,7 +27,7 @@ pdk.version=1.0
PRODUCT_NAME := &lt;first_product_name&gt; PRODUCT_NAME := &lt;first_product_name&gt;
PRODUCT_DEVICE := &lt;board_name&gt;</pre></li> PRODUCT_DEVICE := &lt;board_name&gt;</pre></li>
<li>In the <code>products</code> directory, create an <code>AndroidProducts.mk</code> file that point to (and is responsible for finding) the individual product make files.<BR> <li>In the <code>products</code> directory, create an <code>AndroidProducts.mk</code> file that point to (and is responsible for finding) the individual product make files.<BR>
<pre class="prettyprint"> <pre class="prettypring">
# #
# This file should set PRODUCT_MAKEFILES to a list of product makefiles # This file should set PRODUCT_MAKEFILES to a list of product makefiles
# to expose to the build system. LOCAL_DIR will already be set to # to expose to the build system. LOCAL_DIR will already be set to

View File

@@ -1,26 +1,16 @@
page.title=Camera Subsystem page.title=Camera
pdk.version=1.0
@jd:body @jd:body
<div id="qv-wrapper">
<div id="qv">
<a name="toc"/> <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">
<h2>In this document</h2> <a href="#androidCameraSequenceDiagramsPreview">Preview</a><br/>
<a href="#androidCameraSequenceDiagramsTakePic">Taking a Picture</a><br/></div>
<ol> <a href="#androidCameraInterfaceIntro">Interface</a><br/></div></font></div>
<li><a href="#androidCameraIntroduction">Introduction</a></li>
<li><a href="#androidCameraBuildingDriver">Building a Camera Library</a></li>
<li><a href="#androidCameraSequenceDiagrams">Sequence Diagrams</a>
<ol>
<li><a href="#androidCameraSequenceDiagramsPreview">Preview</a></li>
<li><a href="#androidCameraSequenceDiagramsTakePic">Taking a Picture</a></li>
</ol>
</li>
<li><a href="#androidCameraInterfaceIntro">Interface</a></li>
</ol>
</div>
</div>
<a name="androidCameraIntroduction"></a><h2>Introduction</h2> <a name="androidCameraIntroduction"></a><h2>Introduction</h2>
@@ -82,6 +72,4 @@ include $(BUILD_SHARED_LIBRARY)
<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="camera.html">click here</a>.</p> <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="camera.html">click here</a>.</p>
<iframe onLoad="resizeDoxFrameHeight();" src="CameraHardwareInterface_8h.html " scrolling="no" scroll="no" id="doxygen" marginwidth="0" marginheight="0" frameborder="0" style="width:100%;"></iframe> <iframe onLoad="resizeDoxFrameHeight();" src="_camera_hardware_interface_8h.html" scrolling="no" scroll="no" id="doxygen" marginwidth="0" marginheight="0" frameborder="0" style="width:100%;"></iframe>

View File

@@ -1,12 +1,15 @@
page.title=Display Drivers page.title=Display Drivers
pdk.version=1.0
@jd:body @jd:body
<a name="toc"/> <a name="toc"/>
<div style="padding:10px"> <div style="padding:10px">
<a href="#androidDisplayDriverIntroduction">Introduction</a><br/> <a href="#androidDisplayDriverIntroduction">Introduction</a><br/>
<a href="#androidDisplayDriverFunctionality">Functionality</a><br/> <a href="#androidDisplayDriverFunctionality">Functionality</a><br/>
<a href="#androidDisplayDriversSourceTemplate">Implementing Your Own Driver (Driver Template)</a><br/> <a href="#androidDisplayDriversSourceTemplate">Implementing Your Own Driver (Driver Template)</a><br/>
<a href="#androidDisplayDriversTroubleshooting">Troubleshooting</a><br/></div></font> <a href="#androidDisplayDriversTroubleshooting">Troubleshooting</a><br/></div></font></div>
<a name="androidDisplayDriverIntroduction"></a><h2>Introduction</h2> <a name="androidDisplayDriverIntroduction"></a><h2>Introduction</h2>
@@ -335,6 +338,4 @@ MODULE_LICENSE("GPL");
<li><strong>Arrow keys</strong>: When an arrow key is pressed, the desired icon doesn't get highlighted. For example, if you browse through icons in the Applications menu, you might notice that icons aren't highlighted as expected when you use the arrow key to navigate between options.</li> <li><strong>Arrow keys</strong>: When an arrow key is pressed, the desired icon doesn't get highlighted. For example, if you browse through icons in the Applications menu, you might notice that icons aren't highlighted as expected when you use the arrow key to navigate between options.</li>
</ul> </ul>
<p>Both problems are caused by an incorrect implementation of the frame buffer's page flipping. Key events are captured, but the graphical interface appears to drop every other frame. </p> <p>Both problems are caused by an incorrect implementation of the frame buffer's page flipping. Key events are captured, but the graphical interface appears to drop every other frame. </p>
<p>Android relies on a double buffer to smoothly render page flips (please see <a href="androidDisplayDriverFunctionality">Functionality</a> for details). <p>Android relies on a double buffer to smoothly render page flips (please see <a href="androidDisplayDriverFunctionality">Functionality</a> for details).</p>

View File

@@ -1,11 +1,12 @@
page.title=GPS page.title=GPS
pdk.version=1.0
@jd:body @jd:body
<a name="toc"/> <a name="toc"/>
<div style="padding:10px"> <div style="padding:10px">
<a href="#androidGpsIntroduction">Introduction</a><br/> <a href="#androidGpsIntroduction">Introduction</a><br/>
<a href="#androidGPSBuildingDriver">Building a GPS Library</a><br/> <a href="#androidGPSBuildingDriver">Building a GPS Library</a><br/>
<a href="#androidGPSInterface">Interface</a><br/></div> <a href="#androidGPSInterface">Interface</a><br/></div></font></div>
<a name="androidGpsIntroduction"></a><h2>Introduction</h2> <a name="androidGpsIntroduction"></a><h2>Introduction</h2>
@@ -47,3 +48,9 @@ include $(BUILD_SHARED_LIBRARY)
<p><span class="lh2"><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>
<iframe onLoad="resizeDoxFrameHeight();" src="gps_8h.html" scrolling="no" scroll="no" id="doxygen" marginwidth="0" marginheight="0" frameborder="0" style="width:100%;"></iframe>

View File

@@ -1,4 +1,3 @@
home=true
page.title=Welcome to the Android Porting Guide page.title=Welcome to the Android Porting Guide
pdk.version=1.0 pdk.version=1.0
@jd:body @jd:body

View File

@@ -1,4 +1,5 @@
page.title=Instrumentation Testing page.title=Instrumentation Testing
pdk.version=1.0
@jd:body @jd:body
<a name="toc"/> <a name="toc"/>
@@ -29,7 +30,7 @@ page.title=Instrumentation Testing
<a href="#androidInstrumentationTestingCreatingTestCase">New InstrumentationTestCase</a><br/> <a href="#androidInstrumentationTestingCreatingTestCase">New InstrumentationTestCase</a><br/>
<a href="#androidInstrumentationFrameworkTestCase">Exploring a Test Case</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="#androidTestingKindsofTests">Deciding Kinds of Tests to Write</a><br/></div>
<a href="#androidInstrumentationFrameworkTroubleshooting">Troubleshooting</a><br/></div> <a href="#androidInstrumentationFrameworkTroubleshooting">Troubleshooting</a><br/></div></font></div>
<a name="androidInstrumentationFrameworkIntro"></a><h2>Introduction</h2> <a name="androidInstrumentationFrameworkIntro"></a><h2>Introduction</h2>
@@ -318,27 +319,22 @@ include $(BUILD_PACKAGE)
<a name="androidTestingContentManifest"></a><h3>Content of Manifest</h3> <a name="androidTestingContentManifest"></a><h3>Content of Manifest</h3>
<p>Use the following example to create an <code>AndroidManifest.xml</code> file that declares the instrumentation. Specify that the framework supplied InstrumentationTestRunner targets 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> <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> <pre>
# Add appropriate copyright banner here # Add appropriate copyright banner here
&lt;manifest xmlns:android="http://schemas.android.com/apk/res/android" &lt;manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android.apis.tests"&gt; package="com.android.samples.tests"&gt;
&lt;!-- We add an application tag here just so that we can indicate that &lt;uses-permission android:name="android.permission.RUN_INSTRUMENTATION" /&gt;
this package needs to link against the android.test library,
which is needed when building test cases. -->
&lt;application>
&lt;uses-library android:name="android.test.runner" />
&lt;/application>
&lt;!-- &lt;!--
This declares that this app uses the instrumentation test runner targeting This declares that this app uses the instrumentation test runner targeting
the package of com.example.android.apis. To run the tests use the command: the package of com.android.samples. To run the tests use the command:
"adb shell am instrument -w com.example.android.apis.tests/android.test.InstrumentationTestRunner" "adb shell am instrument -w com.android.samples.tests/android.test.InstrumentationTestRunner"
--> --&gt;
&lt;instrumentation android:name="android.test.InstrumentationTestRunner" &lt;instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.android.apis" android:targetPackage="com.android.samples"
android:label="Tests for Api Demos."/> android:label="Tests for Api Demos."/&gt;
&lt;/manifest&gt; &lt;/manifest&gt;
</pre> </pre>
@@ -374,6 +370,8 @@ public class FrameworkInstrumentationTestRunner extends InstrumentationTestRunne
</pre> </pre>
<p> Next, in an appropriate <code>AndroidManifest.xml</code>, define the instrumentation for the derived class with the appropriate <code>android:targetPackage</code> set. For example, the snippet below defines the instrumentation runner for the framework tests.</p> <p> Next, in an appropriate <code>AndroidManifest.xml</code>, define the instrumentation for the derived class with the appropriate <code>android:targetPackage</code> set. For example, the snippet below defines the instrumentation runner for the framework tests.</p>
<pre class="prettify"> <pre class="prettify">
&lt;uses-permission android:name="android.permission.RUN_INSTRUMENTATION" /&gt;
&lt;instrumentation android:name="android.tests.FrameworkInstrumentationTestRunner" &lt;instrumentation android:name="android.tests.FrameworkInstrumentationTestRunner"
android:targetPackage="com.google.android.frameworktest" android:targetPackage="com.google.android.frameworktest"
android:label="framework instrumentation test runner" /&gt; android:label="framework instrumentation test runner" /&gt;
@@ -511,4 +509,3 @@ D/AndroidRuntime( 688): Shutting down VM
E/AndroidRuntime( 688): ERROR: thread attach failed E/AndroidRuntime( 688): ERROR: thread attach failed
</pre> </pre>
<p>It's possible that the instrumentation apk isn't installed on your device or that the package name is incorrect in the Manifest file. </p> <p>It's possible that the instrumentation apk isn't installed on your device or that the package name is incorrect in the Manifest file. </p>

View File

@@ -1,6 +1,8 @@
page.title=Keymaps and Keyboard Input page.title=Keymaps and Keyboard Input
pdk.version=1.0
@jd:body @jd:body
<a name="toc"/> <a name="toc"/>
<div style="padding:10px"> <div style="padding:10px">
<a href="#androidKeymapIntro">Introduction</a><br/> <a href="#androidKeymapIntro">Introduction</a><br/>
@@ -17,7 +19,7 @@ page.title=Keymaps and Keyboard Input
<a href="#androidKeymapKeyCharMapExample">Example of a Key Character Map File</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="#androidKeymapKeyCharMapResourceBinaryFileFormat">Resource Binary File Format</a><br/></div>
<a href="#androidKeymapDriverTemplate">Implementing Your Own Driver (Driver Template)</a><br/> <a href="#androidKeymapDriverTemplate">Implementing Your Own Driver (Driver Template)</a><br/>
<a href="#androidKeymapKeyCharMapSampleImplementation">Sample Implementation</a><br/></div> <a href="#androidKeymapKeyCharMapSampleImplementation">Sample Implementation</a><br/></div></font></div>
<a name="androidKeymapIntro"></a><h2>Introduction</h2> <a name="androidKeymapIntro"></a><h2>Introduction</h2>
@@ -505,5 +507,3 @@ I/KeyInputQueue( 1548): Device added: id=0x10000, name=partnerxx_keypad, classes
I/KeyInputQueue( 1548): Keymap: partnerxx_keypad.kl I/KeyInputQueue( 1548): Keymap: partnerxx_keypad.kl
</pre> </pre>
<p>The snippet above contains artificial line breaks to maintain a print-friendly document.</p> <p>The snippet above contains artificial line breaks to maintain a print-friendly document.</p>

View File

@@ -1,6 +1,10 @@
page.title=Power Management page.title=Power Management
pdk.version=1.0
@jd:body @jd:body
<a name="toc"/> <a name="toc"/>
<div style="padding:10px"> <div style="padding:10px">
<a href="#androidPowerIntro">Introduction</a><br/> <a href="#androidPowerIntro">Introduction</a><br/>
@@ -9,7 +13,7 @@ page.title=Power Management
<a href="#androidPowerWakeLocksDefinitions">Types of Wake Locks</a><br/> <a href="#androidPowerWakeLocksDefinitions">Types of Wake Locks</a><br/>
<a href="#androidPowerWakeLockExample">Exploring a Wake Lock Example</a><br/></div> <a href="#androidPowerWakeLockExample">Exploring a Wake Lock Example</a><br/></div>
<a href="#androidPowerPowerManagerClass">PowerManager class</a><br/> <a href="#androidPowerPowerManagerClass">PowerManager class</a><br/>
<a href="#androidPowerKernelRegistration">Registering Drivers with the PM Driver</a><br/></div> <a href="#androidPowerKernelRegistration">Registering Drivers with the PM Driver</a><br/></div></font></div>
<a name="androidPowerIntro"></a><h2>Introduction</h2> <a name="androidPowerIntro"></a><h2>Introduction</h2>
@@ -18,7 +22,7 @@ page.title=Power Management
<p>The image below illustrates the Android power management architecture. </p> <p>The image below illustrates the Android power management architecture. </p>
<p><img src='androidPMArchitecture.gif'></p> <p><img src='androidPMArchitecture.gif'></p>
<p>Solid elements represent Android blocks and dashed elements represent partner-specific blocks.</p> Solid elements represent Android blocks and dashed elements represent partner-specific blocks.
@@ -103,6 +107,3 @@ android_register_early_suspend(android_early_suspend_t *handler)
android_register_early_resume(android_early_resume_t *handler) android_register_early_resume(android_early_resume_t *handler)
</pre> </pre>
<p>It is critical in a drive to return immediately and not wait for anything to happen in the call back.</p> <p>It is critical in a drive to return immediately and not wait for anything to happen in the call back.</p>

View File

@@ -3,7 +3,6 @@ pdk.version=1.0
@jd:body @jd:body
<p>While Android is designed to support a wide variety of hardware platforms and configurations, this section provides recommended minimum device requirements.</p> <p>While Android is designed to support a wide variety of hardware platforms and configurations, this section provides recommended minimum device requirements.</p>
<table border=1 cellpadding=2 cellspacing=0> <table border=1 cellpadding=2 cellspacing=0>
<tbody><tr> <tbody><tr>
<th scope="col">Feature</th> <th scope="col">Feature</th>
@@ -58,6 +57,3 @@ pdk.version=1.0
<li>WiFi</li> <li>WiFi</li>
<li>GPS</li> <li>GPS</li>
</ul> </ul>

View File

@@ -1,4 +1,5 @@
page.title=Radio Layer Interface page.title=Radio Layer Interface
pdk.version=1.0
@jd:body @jd:body
<a name="toc"/> <a name="toc"/>
@@ -15,7 +16,7 @@ page.title=Radio Layer Interface
<a href="#androidTelephonyRILFunctions">RIL Functions</a><br/><div style="padding-left:40px"> <a href="#androidTelephonyRILFunctions">RIL Functions</a><br/><div style="padding-left:40px">
<a href="#androidRilFunctionsSolicited">RIL Solicited Command Requests</a><br/> <a href="#androidRilFunctionsSolicited">RIL Solicited Command Requests</a><br/>
<a href="#androidRilFunctionsUnsolicited">RIL Unsolicited Commands</a><br/></div></div> <a href="#androidRilFunctionsUnsolicited">RIL Unsolicited Commands</a><br/></div></div></font></div>
<a name="androidTelephonyIntro"></a><h2>Introduction</h2> <a name="androidTelephonyIntro"></a><h2>Introduction</h2>
@@ -221,4 +222,3 @@ RIL_RadioFunctions;
</ul></td> </ul></td>
</tr> </tr>
</table></p> </table></p>

View File

@@ -1,19 +0,0 @@
<div id="footer">
<?cs if:reference||guide ?>
<div id="copyright">
<?cs call:custom_copyright() ?>
</div>
<div id="build_info">
<?cs call:custom_buildinfo() ?>
</div>
<?cs elif:!hide_license_footer ?>
<div id="copyright">
<?cs call:custom_cc_copyright() ?>
</div>
<?cs /if ?>
<div id="footerlinks">
<?cs call:custom_footerlinks() ?>
</div>
</div> <!-- end footer -->

View File

@@ -1,37 +0,0 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="shortcut icon" type="image/x-icon" href="<?cs var:toroot ?>favicon.ico" />
<title><?cs
if:page.title ?><?cs
var:page.title ?><?cs
if:sdk.version ?> (<?cs
var:sdk.version ?>)<?cs
/if ?> | <?cs
/if ?>Android Developers</title><?cs
if:guide||sdk ?>
<link href="<?cs var:toroot ?>assets/android-developer-docs-devguide.css" rel="stylesheet" type="text/css" /><?cs
else ?>
<link href="<?cs var:toroot ?>assets/android-developer-docs.css" rel="stylesheet" type="text/css" /><?cs
/if ?>
<script src="<?cs var:toroot ?>assets/search_autocomplete.js" type="text/javascript"></script>
<script src="<?cs var:toroot ?>reference/lists.js" type="text/javascript"></script>
<script src="<?cs var:toroot ?>assets/jquery-resizable.min.js" type="text/javascript"></script>
<script src="<?cs var:toroot ?>assets/android-developer-docs.js" type="text/javascript"></script>
<script type="text/javascript">
setToRoot("<?cs var:toroot ?>");
</script><?cs
if:reference ?>
<script src="<?cs var:toroot ?>navtree_data.js" type="text/javascript"></script>
<script src="<?cs var:toroot ?>assets/navtree.js" type="text/javascript"></script><?cs
/if ?>
<noscript>
<style type="text/css">
body{overflow:auto;}
#body-content{position:relative; top:0;}
#doc-content{overflow:visible;border-left:3px solid #666;}
#side-nav{padding:0;}
#side-nav .toggle-list ul {display:block;}
#resize-packages-nav{border-bottom:3px solid #666;}
</style>
</noscript>
</head>

View File

@@ -1,3 +0,0 @@
<?cs call:custom_masthead() ?>
<?cs call:custom_left_nav() ?>

View File

@@ -1,8 +0,0 @@
<html>
<head>
<meta http-equiv="refresh" content="0;url=packages.html">
</head>
<body>
<?cs include:"analytics.cs" ?>
</body>
</html>

View File

@@ -1,11 +0,0 @@
</div> <!-- end body-content --> <?cs # normally opened by header.cs ?>
<script type="text/javascript">
init(); /* initialize android-developer-docs.js */
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-5831155-1");
pageTracker._trackPageview();
</script>

View File

@@ -1,11 +1,12 @@
page.title=Wi-Fi page.title=Wi-Fi
pdk.version=1.0
@jd:body @jd:body
<a name="toc"/> <a name="toc"/>
<div style="padding:10px"> <div style="padding:10px">
<a href="#androidWifiIntroduction">Introduction</a><br/> <a href="#androidWifiIntroduction">Introduction</a><br/>
<a href="#androidWifiBuildingDriver">Building a Wi-Fi Library</a><br/> <a href="#androidWifiBuildingDriver">Building a Wi-Fi Library</a><br/>
<a href="#androidWifiInterface">Interface</a><br/></div> <a href="#androidWifiInterface">Interface</a><br/></div></font></div>
<a name="androidWifiIntroduction"></a><h2>Introduction</h2> <a name="androidWifiIntroduction"></a><h2>Introduction</h2>
@@ -28,7 +29,7 @@ page.title=Wi-Fi
<pre class="prettify"> <pre class="prettify">
LOCAL_SHARED_LIBRARIES += libnetutils LOCAL_SHARED_LIBRARIES += libnetutils
ifeq ($(TARGET_DEVICE),acme) ifeq ($(TARGET_PRODUCT),acme)
LOCAL_SRC_FILES += wifi/wifi_mywifi.c LOCAL_SRC_FILES += wifi/wifi_mywifi.c
else else
LOCAL_SRC_FILES += wifi/wifi.c LOCAL_SRC_FILES += wifi/wifi.c
@@ -44,6 +45,3 @@ endif
<iframe onLoad="resizeDoxFrameHeight();" src="wifi_8h.html" scrolling="no" scroll="no" id="doxygen" marginwidth="0" marginheight="0" frameborder="0" style="width:100%;"></iframe> <iframe onLoad="resizeDoxFrameHeight();" src="wifi_8h.html" scrolling="no" scroll="no" id="doxygen" marginwidth="0" marginheight="0" frameborder="0" style="width:100%;"></iframe>

14
pdk/hosting/edoxfix.sh Executable file
View File

@@ -0,0 +1,14 @@
#!/bin/bash
# $1 = output directory of generated docs: out/target/product/generic/obj/PACKAGING/pdkdocs_intermediates/generatedDocs/html
# fix a bug in doxygen 1.5.6 and higher...
# insert the line: '</div>\n' after line 25 in each generated source file:
echo \</div\> > $1/div.tmp
for f in `find $1 -name '*-source.html' -print`
do
head -n 25 $f > $f.head.tmp
let count=$(wc -l $f | cut -d\ -f 1 )
count=$(($count-25))
tail -n $count $f > $f.tail.tmp
cat $f.head.tmp $1/div.tmp $f.tail.tmp > $f
done
rm $1/*.tmp