Commit af0576fc authored by Xavier Ducrohet's avatar Xavier Ducrohet Committed by Android (Google) Code Review
Browse files

Merge "Remove outdated PDK." into jb-dev

parents 2476301f 1e284c14
#
# Copyright (C) 2008 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Assemble the Platform Development Kit (PDK)
# (TODO) Figure out why $(ACP) builds with target pndk but not pdk_docs
pdk:
@echo "Package: $@ has targets pndk, pdk_docs and pdk_all"
pdk_all: pndk pdk_docs
@echo "Package: $^"
LOCAL_PATH := $(call my-dir)
#-------------------------------------------------------------------------------
# Make the Native Development Kit (Code examples)
# Allows vendors to build shared libraries without entire source tree.
# This include adds /pndk to LOCAL_PATH, so can't use it afterwards...
include $(LOCAL_PATH)/pndk/Pndk.mk
#-------------------------------------------------------------------------------
# Make the Plaftorm Development Kit Documentation.
# Doxygenize the header files to create html docs in the generatedDocs dir.
# Copy the appengine files, the template files and the generated html
# to the docs dir and zip everything up to the distribution directory.
# Run javadocs/droiddocs/clearsilver on the generatedDocs dir to get the right
# styles added to the html.
# Workspace directory
pdk_docs_intermediates := $(call intermediates-dir-for,PACKAGING,pdkdocs)
# Source directories for appengine, templates, config & header files
pdk_hosting_dir := development/pdk/hosting
pdk_templates_dir := development/pdk/docs
pdk_config_dir := development/pdk/doxygen_config
pdk_docsfile_dir := $(pdk_config_dir)/docsfiles
pdk_legacy_hardware_dir := hardware/libhardware_legacy/include/hardware_legacy
pdk_hardware_dir := hardware/libhardware/include/hardware
pdk_camera_dir := frameworks/base/include/camera
# Destination directory for docs (templates + doxygenated headers)
pdk_docs_dest_dir := $(pdk_docs_intermediates)/docs/porting
pdk_app_eng_root := $(pdk_docs_intermediates)/docs
# Working directory for source to be doxygenated
pdk_doxy_source_dir := $(pdk_docs_intermediates)/sources
# Working directory for html, et al. after doxygination
pdk_generated_source_dir := $(pdk_docs_intermediates)/generatedDocs/html
# Working directory for .dox files
pdk_doxy_docsfiles_dir := $(pdk_docs_intermediates)/docsfiles
# Doxygen version to use, so we can override it on the command line
# doxygen 1.5.6 working, the latest version get-apt installable on ghardy.
# with bug fix for </div> error.
doxygen_version = doxygen
#-------------------------------------------------------------------------------
# Header files to doxygenize.
# Add new header files to document here, also adjust the templates to have
# descriptions for the new headers and point to the new doxygen created html.
pdk_headers := \
$(pdk_legacy_hardware_dir)/AudioHardwareInterface.h \
$(pdk_hardware_dir)/gps.h \
$(pdk_legacy_hardware_dir)/wifi.h \
$(pdk_camera_dir)/CameraHardwareInterface.h \
$(pdk_hardware_dir)/sensors.h \
$(pdk_hardware_dir)/lights.h
# Create a rule to copy the list of PDK headers to be doxyginated.
# copy-one-header defines the actual rule.
$(foreach header,$(pdk_headers), \
$(eval _chFrom := $(header)) \
$(eval _chTo := $(pdk_doxy_source_dir)/$(notdir $(header))) \
$(eval $(call copy-one-header,$(_chFrom),$(_chTo))) \
$(eval all_copied_pdk_headers: $(_chTo)) \
)
_chFrom :=
_chTo :=
#-------------------------------------------------------------------------------
# Assemble all the necessary doxygen config files and the sources into the
# working directories
pdk_templates := $(shell find $(pdk_templates_dir) -type f)
# Create a rule to copy the list of PDK doc templates.
# copy-one-file defines the actual rule.
$(foreach template,$(pdk_templates), \
$(eval _chFrom := $(template)) \
$(eval _chTo := $(pdk_app_eng_root)/$(patsubst $(pdk_templates_dir)/%,%,$(template))) \
$(eval $(call copy-one-header,$(_chFrom),$(_chTo))) \
$(eval all_copied_pdk_templates: $(_chTo)) \
)
_chFrom :=
_chTo :=
# Copy newer doxygen config file (basic configs, should not change very often.)
pdk_doxygen_config_file := $(pdk_docs_intermediates)/pdk_config.conf
$(pdk_doxygen_config_file): $(pdk_config_dir)/pdk_config.conf
@echo "PDK: $@"
$(copy-file-to-target-with-cp)
# Copy newer doxygen override config file (may change these more often.)
pdk_doxygen_config_override_file := $(pdk_docs_intermediates)/overrideconfig.conf
$(pdk_doxygen_config_override_file): $(pdk_config_dir)/overrideconfig.conf
@echo "PDK: $@"
$(copy-file-to-target-with-cp)
# (TODO) Get the latest templates
# Copy newer doxygen html files.
$(pdk_docs_intermediates)/header.html: $(pdk_config_dir)/header.html
@echo "PDK: $@"
$(copy-file-to-target-with-cp)
$(pdk_docs_intermediates)/footer.html: $(pdk_config_dir)/footer.html
@echo "PDK: $@"
$(copy-file-to-target-with-cp)
# Copy newer doxygen .dox files
$(pdk_doxy_docsfiles_dir)/groups.dox: $(pdk_docsfile_dir)/groups.dox
@echo "PDK: $@"
$(copy-file-to-target-with-cp)
$(pdk_doxy_docsfiles_dir)/main.dox: $(pdk_docsfile_dir)/main.dox
@echo "PDK: $@"
$(copy-file-to-target-with-cp)
# All the files that we depend upon
all_pdk_docs_files := $(pdk_doxygen_config_override_file) \
$(pdk_doxygen_config_file) $(pdk_docs_intermediates)/header.html \
$(pdk_docs_intermediates)/footer.html $(pdk_doxy_docsfiles_dir)/groups.dox \
$(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
# We replace index.html with a template file so don't use the generated one
pdk_doxygen: all_copied_pdk_headers $(pdk_doxygen_config_override_file) \
$(pdk_doxygen_config_file) $(pdk_docs_intermediates)/header.html \
$(pdk_docs_intermediates)/footer.html $(pdk_doxy_docsfiles_dir)/groups.dox \
$(pdk_doxy_docsfiles_dir)/main.dox
@echo "Files for Doxygination: $^"
@mkdir -p $(pdk_generated_source_dir)
@rm -f $(pdk_generated_source_dir)/*
@cd $(pdk_docs_intermediates) && $(doxygen_version) pdk_config.conf
@mkdir -p $(pdk_docs_dest_dir)
@cd $(pdk_generated_source_dir) && chmod ug+rx *
@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)
@rm $(pdk_generated_source_dir)/*
# ==== docs for the web (on the google app engine server) =======================
# Run javadoc/droiddoc/clearsilver to get the formatting right
# make droiddocs run after we make our doxygen docs
$(pdk_docs_intermediates)/pdk-timestamp: pdk_doxygen all_copied_pdk_templates
@touch $(pdk_docs_intermediates)/pdk-timestamp
$(LOCAL_PATH)/pdk-timestamp: $(pdk_docs_intermediates)/pdk-timestamp
include $(CLEAR_VARS)
LOCAL_SRC_FILES := pdk-timestamp samples/samplejni/src/com/example/jniexample/JNIExample.java
LOCAL_MODULE_CLASS := development/pdk/pndk/samples/samplejni/src/com/example/jniexample
LOCAL_DROIDDOC_HTML_DIR := ../../../$(pdk_app_eng_root)
LOCAL_MODULE := online-pdk
LOCAL_DROIDDOC_OPTIONS:= \
-toroot / \
-hdf android.whichdoc online \
-hdf android.whichmodule $(LOCAL_MODULE)
LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR := build/tools/droiddoc/templates-pdk
LOCAL_DROIDDOC_CUSTOM_ASSET_DIR := assets
include $(BUILD_DROIDDOC)
# The docs output dir is: out/target/common/docs/online-pdk
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)
# Name the tar files
name := android_pdk_docs-$(REQUESTED_PRODUCT)
ifeq ($(TARGET_BUILD_TYPE),debug)
name := $(name)_debug
endif
name := $(name)-$(BUILD_NUMBER)
pdk_docs_tarfile := $(pdk_docs_intermediates)/$(name).tar
pdk_docs_tarfile_zipped := $(pdk_docs_tarfile).gz
.PHONY: pdk pdk_docs pdk_doxygen all_copied_pdk_headers all_copied_pdk_templates pdk-timestamp
pdk_docs: $(pdk_docs_tarfile_zipped) $(pdk_docs_tarfile)
@echo "PDK: Docs tarred and zipped"
# Put the pdk_docs zip files in the distribution directory
$(call dist-for-goals,pdk_docs,$(pdk_docs_tarfile_zipped))
# zip up tar files
%.tar.gz: %.tar
@echo "PDK docs: zipped $<"
$(hide) gzip -cf $< > $@
# tar up all the files to make the pdk docs.
$(pdk_docs_tarfile): $(DOCS_OUT_DIR)-timestamp $(OUT_DOCS)/app.yaml
@echo "PDK docs: $@"
@mkdir -p $(dir $@)
@rm -f $@
$(hide) tar rf $@ -C $(OUT_DOCS) $(LOCAL_MODULE) app.yaml
# Debugging reporting can go here, add it as a target to get output.
pdk_debug:
@echo "You are here: $@"
@echo "pdk headers copied: $(all_copied_pdk_headers)"
@echo "pdk headers: $(pdk_headers)"
@echo "pdk docs dest: $(pdk_docs_dest_dir)"
@echo "config dest: $(pdk_doxygen_config_file)"
@echo "config src: $(pdk_config_dir)/pdk_config.conf"
@echo "pdk templates: $(pdk_templates_dir)"
Building the pdk (platform development kit)
1) get a cupcake source tree with all the normal tools... and add doxygen
(We currently support version 1.4.6)
sudo apt-get install doxygen
Make sure that you are using the right version of java
sudo update-java-alternatives -s java-1.5.0-sun
If that doesn't work, go through the instructions on
http://source.android.com/source/download.html again.
2) from the root
. build/envsetup.sh
4) mkdir dist
mkdir logs
then build everything:
time make -j8 pdk pdk_all dist DIST_DIR=dist 2>&1 | tee logs/`date +%y%m%d-%H%M%S`
so you can have a record of the build commands in the logs directory.
5) the pdk and pndk tar file is put in the dist directory.
6) the pdk-docs are in
out/target/common/docs/online-pdk
--------------------------------------------------------------------------------
# Build Notes
The build target 'pdk' brings in the pdk/pndk make files into the build system.
Then there are three targets:
pdk_docs - which builds just the pdk documentation
pndk - which builds the platform's native development kit (native compiler, linker, etc.)
pdk_all - which builds the above two targets
To change which version of doxygen runs you can pass in the variable:
doxygen_version='<path/name_of_doxygen_executable>'
on the make line.
--------------------------------------------------------------------------------
# Testing
You must install google appengine. See: http://code.google.com/appengine/downloads.html
Here's the command to run the pdk-docs server locally:
python <path_to_appengine_installation>/dev_appserver.py --address 0.0.0.0 \
<path_to_cupcake_code>/android/out/target/common/docs
To verify it is working, you can access it with a browser locally on port 8080:
http://localhost:8080/online-pdk/guide/index.html
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 every time you login.
--------------------------------------------------------------------------------
# Deployment
To host the pdk docs on the internal appengine run:
/home/build/static/projects/apphosting/devtools/appcfg.py update <path_to_cupcake_src>/out/target/common/docs
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.
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/target/common/docs
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.
This directory contains the source for the source.android.com site contents.
The Platform Development Kit (PDK, a set of tools for the convenience of
engineers doing building devices) is also built as part of the site build.
Subdirectories include:
about -- general information about the Android Open Source Project
community -- information about the AOSP mailing lists
compatibility -- information about building compatible devices
downloads -- links to download files of interest
images -- images used in docs; note: this is NOT for UI assets/skins
porting -- tips & guides for porting the Android source to hardware
source -- how to access & use the Android source
This directory originated as the PDK home (hence the name) and grew to
encompass source.android.com.
<script type="text/javascript" language="JavaScript">
<!--
function nothing() {}
-->
</script>
<ul>
<li><a href="<?cs var:toroot ?>about/philosophy.html">Project Philosophy</a></li>
<li><a href="<?cs var:toroot ?>source/index.html">Getting Involved</a></li>
<li><a href="<?cs var:toroot ?>compatibility/index.html">Compatibility</a></li>
<li><a href="<?cs var:toroot ?>source/licenses.html">Licensing Information</a></li>
</ul>
<script type="text/javascript">
<!--
buildToggleLists();
//-->
</script>
page.title=About the Android Open Source Project
doc.type=about
doc.hidenav=true
@jd:body
<p>Android is an open-source software stack created for mobile phones and
other devices. The Android Open Source Project (AOSP), led by Google, is
tasked with the maintenance and further development of Android. Many device
manufacturers have brought to market devices running Android, and they are
readibly available around the world.</p>
<p>Our primary purpose is to build an excellent software platform for everyday
users. A number of companies have committed many engineers to achieve this
goal, and the result is a full production quality consumer product whose
source is open for customization and porting.</p>
<p>You can find more information about Android from these pages:</p>
<ul>
<li><a href="{@docRoot}about/philosophy.html">Our Project Philosophy and Goals</a></li>
<li><a href="{@docRoot}source/index.html">Interacting with the Project</a></li>
<li><a href="{@docRoot}compatibility/index.html">Android Compatibility</a></li>
<li><a href="{@docRoot}source/licenses.html">Licensing Information</a></li>
</ul>
page.title=Philosophy and Goals
doc.type=about
doc.hidenav=true
@jd:body
<p>Android is an open-source software stack for mobile phones and other
devices.</p>
<h2>Origin and Goal</h2>
<p>Android was originated by a group of companies known as the Open Handset
Alliance, led by Google. Today, many companies -- both original members of the
OHA and others -- have invested heavily in Android, typically in the form of
allocating significant engineering resources to improve Android and bring
Android devices to Market.</p>
<p>We created Android in response to our own experiences launching mobile
apps. We wanted to make sure that there would always be an open platform
available for carriers, OEMs, and developers to use to make their innovative
ideas a reality. We wanted to make sure that there was no central point of
failure, where one industry player could restrict or control the innovations
of any other. The solution we chose was an open and open-source platform.</p>
<p>The goal of the Android Open Source Project is to create a successful
real-world product that improves the mobile experience for end users.</p>
<h2>Governance Philosophy</h2>
<p>The companies that have invested in Android have done so on its merits,
because we believe that an open platform is necessary. Android is
intentionally and explicitly an open-source -- as opposed to free software --
effort: a group of organizations with shared needs has pooled
resources to collaborate on a single implementation of a shared product.
The Android philosophy is pragmatic, first and foremost. The objective is
a shared product that each contributor can tailor and customize.</p>
<p>Uncontrolled customization can, of course, lead to incompatible
implementations. To prevent this, the AOSP also maintains the Android
Compatibility Program, which spells out what it means to be "Android
compatible", and what is required of device builders to achieve that status.
Anyone can (and will!) use the Android source code for any purpose, and we
welcome all such uses. However, in order to take part in the shared
ecosystem of applications that we are building around Android, device builders
must participate in the Compatibility Program.</p>
<p>Though Android consists of multiple sub-projects, this is strictly a
project-management technique. We view and manage Android as a single,
holistic software product, not a "distribution", specification, or collection
of replaceable parts. Our intent is that device builders port
Android to a device; they don't implement a specification or curate a
distribution.</p>
<h2>How We Work</h2>
<p>We know that quality does not come without hard work. Along with many
partners, Google has contributed full-time engineers, product managers, UI
designers, Quality Assurance, and all the other roles required to bring
modern devices to market. We roll the open source administration and
maintenance into the larger product development cycle.</p>
<ul>
<li>At any given moment, there is a current latest release of the Android
platform. This typically takes the form of a branch in the tree.</li>
<li>Device builders and Contributors work with the current
latest release, fixing bugs, launching new devices, experimenting with new
features, and so on.</li>
<li>In parallel, Google works internally on the next version of the
Android platform and framework, working according to the product's needs and
goals. We develop the next version of Android by working with a device partner
on a flagship device whose specifications are chosen to push Android
in the direction we believe it should go.</li>
<li>When the "n+1"th version is ready, it will be published to the public
source tree, and become the new latest release.</li>
</ul>
<script type="text/javascript" language="JavaScript">
<!--
function nothing() {}
-->
</script>
<ul>
<li><h2>Discussion Groups</h2><ul>
<li><a href="http://groups.google.com/group/android-platform">android-platform</a> <span style="font-size: 75%; font-variant: small-caps">[off-site]</span></li>
<li><a href="http://groups.google.com/group/android-porting">android-porting</a> <span style="font-size: 75%; font-variant: small-caps">[off-site]</span></li>
<li><a href="http://groups.google.com/group/android-kernel">android-kernel</a> <span style="font-size: 75%; font-variant: small-caps">[off-site]</span></li>
<li><a href="http://groups.google.com/group/repo-discuss">repo-discuss</a> <span style="font-size: 75%; font-variant: small-caps">[off-site]</span></li>
<li><a href="http://groups.google.com/group/android-framework">android-framework</a> <span style="font-size: 75%; font-variant: small-caps">[off-site]</span></li>
</ul></li>
<li><h2>Other Links</h2><ul>
<li><a href="<?cs var:toroot ?>community/groups-charter.html">Groups Charter</a></li>
<li><a href="http://developer.android.com/community/index.html">App Developer Groups</a> <span style="font-size: 75%; font-variant: small-caps">[off-site]</span></li>
</ul></li>
</ul>
<script type="text/javascript">
<!--
buildToggleLists();
//-->
</script>
page.title=Android Discussion Groups Charter
doc.type=community
doc.hidenav=true
@jd:body
<h2>Audience</h2>
<p>These discussion groups are intended for developers working with the
Android platform. Everyone is welcome to join in, provided you follow our
community's policies described below. Our users help each other, and many
experts post to these groups, including members of the Open Handset Alliance.
</p>
<p>No topic is off-limits, provided it relates to Android in some way.
However, since these are very busy lists, search the archives before posting
your question; you may find your question has already been answered.
</p>
<h2>Mailing list rules</h2>
<p>We love simplicity and hate restrictions, so we keep our policies minimal.
The rules below describe what's expected of subscribers to the Android mailing
lists.
</p>
<ul><li><b>Please be friendly</b>
<br>Showing courtesy and respect to others is a vital part of the Android
culture, and we expect everyone participating in the Android community to join
us in accepting nothing less. Being courteous does not mean we can't
constructively disagree with each other, but it does mean that we must be
polite when we do so. There's never a reason to be antagonistic or dismissive
toward anyone; if you think there is, think again before you
post.<br><br>Mobile development is serious business, but it's also a lot of
fun. Let's keep it that way. Let's strive to be one of the friendliest
communities in all of open source.<br><br></li>
<li><b>Allowed discussion topics</b>
<br>Most of our groups are for technical discussions of Android or users
helping each other. Generally we don't put hard restrictions on the topics
discussed in the group: as long as the topic is relevant to Android in some
way, it's welcome on our groups. We welcome announcements and discussion of
products, libraries, publications, and other interesting Android-related news,
but <b>please do not cross-post</b>. Post only to the most relevant group for
your message. We even welcome (polite!) discussion of articles and ideas
critical of Android--after all, we can't improve if we don't listen.<br><br>
</li>
<li><b>Working Lists</b>
<br>Some of our groups are considered "working lists", by which we mean that the
list is intended to be used in support of the completion of specific tasks. On
these groups, we don't welcome off-topic conversations, and will generally ask
you to take general discussions to a different list. Since these are lists
where people are trying to get work done, we will be pretty aggressive about
keeping the noise level low. We ask that you respect our contributors' time
and keep general discussions to appropriate lists.<br><br>
</li>
<li><b>Spam</b>
<br>We hate spam almost as passionately as we love courtesy and respect, so we
reserve the right to limit discussions that amount to spam. Outright spam will
result in the spammer being immediately and permanently banned from the list.
<br><br></li>
</ul>
<p>The most important rule is friendliness. Remember: disrespect and rudeness
are not welcome in our community under any circumstances. We don't have a
formal policy on dealing with troublemakers, and we hope we never need
one.That said, we do pledge to do our best to be fair, and we will always try
to warn someone before banning him or her.
</p>
<h2>
Contacting the moderators
</h2>
<p>If you see anyone being rude, call them out on it. This is your group too, and you don't have to accept someone else being disrespectful just because it wasn't directed at you. Just remember to be polite and courteous yourself! Don't add fuel to the fire.
</p>
<p>But if you see an outrageous violation, want to report spam, feel very strongly about something, or even if you just want to chat, then contact the mailing list's owners. It's what we're here for!
</p>
page.title=Android Community
doc.type=community
doc.hidenav=true
@jd:body
<p>Welcome to the Android community!</p>
<p>The key to any community is, obviously, communication. Like most projects,
Android communicates via mailing lists. Because Android is an extremely large
project with many components, we have many discussion forums, each focusing on
a different topic.</p>
<p>Please check out the groups below, and join any that seem interesting to
you. Note that if you're a user looking for help with your Android device,
this page probably isn't for you; you should contact your carrier or retailer
for help with your phone.</p>
<p>Please note that if you're looking for information about building
applications for Android, you can find a separate set of groups for those at
our sister site, developer.android.com: <a
href="http://developer.android.com/community/index.html">http://developer.android.com/community/index.html</a></p>
<h2>Getting the Most from Our Lists</h2>
<p>Please consider the following before you post to our lists.</p>
<ol>
<li><b>Read the <a
href="{@docRoot}community/groups-charter.html">Charter
for our forums.</a></b> This explains the (few) rules and guidelines for our
community.<br></li>
<li><b>Search the group archives to see whether your questions have already
been discussed.</b></li> This avoids time-wasting redundant discussions.
<li><b>Use a clear, relevant message subject.</b> This helps everyone,
both those trying to answer your question as well as those who may be
looking for information in the future.</li>
<li><b>Give plenty of details in your post.</b> Code or log snippets,
pointers to screenshots, and similar details will get better results and
make for better discussions. For a great guide to phrasing your questions,
read <a href="http://www.catb.org/%7Eesr/faqs/smart-questions.html">How To
Ask Questions The Smart Way</a>.</li>
</ol>
<h2>Open Source Project discussions</h2>
<ul>
<li><b>android-platform</b><br/>
This list is for general discussion about the Android open-source project or
the platform technologies.<br/><br/>
Subscribe using Google Groups: <a
href="http://groups.google.com/group/android-platform">android-platform</a><br/>
Subscribe via email: <a href="mailto:android-platform+subscribe@googlegroups.com">android-platform+subscribe@googlegroups.com</a>
</li>
<li><b>android-building</b><br/>
Subscribe to this list for discussion and help on building the Android source
code, and on the build system. If you've just checked out the source code and
have questions about how to turn it into binaries, start here.<br/><br/>
Subscribe using Google Groups: <a
href="http://groups.google.com/group/android-building">android-building</a><br/>
Subscribe via email: <a href="mailto:android-building+subscribe@googlegroups.com">android-building+subscribe@googlegroups.com</a>
</li>
<li><b>android-porting</b><br/>
This list is for developers who want to port Android to a new device. If
you're wondering how to combine the Android source code with your hardware,
this is the right group for you. Discuss here the specifics of porting Android
to individual devices, from obtaining toolchains and merging kernel drivers
all the way to configuring or modifying applications for your specific
configuration.<br/><br/>
Subscribe using Google Groups: <a
href="http://groups.google.com/group/android-porting">android-porting</a><br/>
Subscribe via email: <a href="mailto:android-porting+subscribe@googlegroups.com">android-porting+subscribe@googlegroups.com</a>
</li>
<li><b>android-contrib</b><br/>
This list is for developers who want to contribute code to Android. This is a
working list, and is not appropriate for general discussion. We ask that
general discussion go to android-platform. Note: contributors
to the Android kernel should go to the android-kernel list, below.<br/><br/>
Subscribe using Google Groups: <a
href="http://groups.google.com/group/android-contrib">android-contrib</a><br/>
Subscribe via email: <a href="mailto:android-contrib+subscribe@googlegroups.com">android-contrib+subscribe@googlegroups.com</a>
</li>
<li><b>android-kernel</b><br/>
This list is for deveopers who want to contribute to the Linux kernel that
Android devices use. If you've downloaded the kernel code, if you know how to
compile it, if you want to write kernel code to specifically support Android,
this is your place. This group isn't for user-space topics (see
android-platform for that), and people will shake their fingers at you and
call you naughty if you ask user-space questions here.<br/><br/>
Subscribe using Google Groups: <a
href="http://groups.google.com/group/android-kernel">android-kernel</a><br/>
Subscribe via email: <a href="mailto:android-kernel+subscribe@googlegroups.com">android-kernel+subscribe@googlegroups.com</a>
</li>
</ul>
<h2>Using email with Google Groups</h2>
<p>Instead of using the <a href="http://groups.google.com/">Google Groups</a>
site, you can use your email client of choice to participate in the mailing lists.</p>
<p>To subscribe to a group without using the Google Groups site, use the link
under "subscribe via email" in the lists above.</p>
<p>To set up how you receive mailing list postings by email:</p>
<ol>
<li>Sign into the group via the Google Groups site. For example, for the android-platform group you would
visit <a href="http://groups.google.com/group/android-platform">http://groups.google.com/group/android-platform</a>.</li>
<li>Click "Edit my membership" on the right side.</li>
<li>Under "How do you want to read this group?" select one of the email options.</li>
</ol>
<h2>Android on IRC</h2>
<p>We also have a presence on IRC via <a href="http://freenode.net/">freenode</a>.
We maintain two official IRC channels on
<a href="irc://irc.freenode.net/">irc.freenode.net</a> (access via the web
at <a href="http://webchat.freenode.net/">freenode webchat</a>):</p>
<ul>
<li><b><a href="irc://irc.freenode.net/android">#android</a></b>
&mdash; dedicated to general Android discussion and porting concerns</li>
<li><b><a href="irc://irc.freenode.net/android-dev">#android-dev</a></b>
&mdash; dedicated to discussion about writing Android applications</li>
</ul>
<p>The channels above are official. There are a few other channels the
community is using, but are not official. These aren't official or officially
moderated/managed, so you use the channels below at your own risk. The Open
Handset Alliance doesn't endorse these channels, there's no warranty express
or implied, and so on. There may be more channels than just these listed.</p>
<ul>
<li><b><a href="irc://irc.freenode.net/android-firehose">#android-firehose</a></b>
&mdash; displays in real-time the commits to the Android Open Source Project</li>
<li><b><a href="irc://irc.freenode.net/android-fr">#android-fr</a></b>
&mdash; pour discuter d'Android en français</li>
<li><b><a href="irc://irc.freenode.net/android-offtopic">#android-offtopic</a></b>
&mdash; for, well, off-topic discussions</li>
<li><b><a href="irc://irc.freenode.net/android-root">#android-root</a></b>
&mdash; for discussion related to off-label uses of hardware</li>
</ul>
page.title=Permitted Version Strings for Android 2.1
doc.type=compatibility
@jd:body
<p>As described in Section 3.2.2 of the <a
href="{@docRoot}compatibility/android-2.1-cdd.pdf">Android 2.1 Compatibility
Definition</a>, only certain strings are allowable for the system property
<code>android.os.Build.VERSION.RELEASE</code>. The reason for this is that
applications and web sites may rely on predictable values for this string, and
so that end users can easily and reliably identify the version of Android
running on their devices.</p>
<p>Because subsequent releases of the Android software may revise this string,
but not change any API behavior, such releases may not be accompanied by a new
Compatibility Definition Document. This page lists the versions that are
allowable by an Android 2.1-based system. The only permitted values for
<code>android.os.Build.VERSION.RELEASE</code> for Android 2.1 are:</p>
<ul>
<li>2.1</li>
<li>2.1-update1</li>
</ul>
page.title=Permitted Version Strings for Android 2.2
doc.type=compatibility
@jd:body
<p>As described in Section 3.2.2 of the <a
href="{@docRoot}compatibility/android-2.2-cdd.pdf">Android 2.2 Compatibility
Definition</a>, only certain strings are allowable for the system property
<code>android.os.Build.VERSION.RELEASE</code>. The reason for this is that
applications and web sites may rely on predictable values for this string, and
so that end users can easily and reliably identify the version of Android
running on their devices.</p>
<p>Because subsequent releases of the Android software may revise this string,
but not change any API behavior, such releases may not be accompanied by a new
Compatibility Definition Document. This page lists the versions that are
allowable by an Android 2.2-based system.</p>
<p>The value of <code>android.os.Build.VERSION.RELEASE</code> for Android 2.2
MUST be one of the following strings:</p>
<ul>
<li>2.2</li>
<li>2.2.1</li>
</ul>
page.title=Permitted Version Strings for Android 2.3
doc.type=compatibility
@jd:body
<p>As described in Section 3.2.2 of the <a
href="{@docRoot}compatibility/android-2.3-cdd.pdf">Android 2.3 Compatibility
Definition</a>, only certain strings are allowable for the system property
<code>android.os.Build.VERSION.RELEASE</code>. The reason for this is that
applications and web sites may rely on predictable values for this string, and
so that end users can easily and reliably identify the version of Android
running on their devices.</p>
<p>Because subsequent releases of the Android software may revise this string,
but not change any API behavior, such releases may not be accompanied by a new
Compatibility Definition Document. This page lists the versions that are
allowable by an Android 2.2-based system.</p>
<p>The value of <code>android.os.Build.VERSION.RELEASE</code> for Android 2.3
MUST be one of the following strings:</p>
<ul>
<li>2.3.3</li>
</ul>
File deleted
File deleted
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
File deleted
<script type="text/javascript" language="JavaScript">
<!--
function nothing() {}
-->
</script>
<ul>
<li><h2>Getting Started</h2><ul>
<li><a href="<?cs var:toroot ?>compatibility/overview.html">Compatibility Overview</a></li>
<li><a href="<?cs var:toroot ?>compatibility/android-2.3.3-cdd.pdf">Current CDD</a></li>
<li><a href="<?cs var:toroot ?>compatibility/cts-intro.html">CTS Introduction</a></li>
<li><a href="<?cs var:toroot ?>compatibility/cts-development.html">CTS Development</a></li>
</ul></li>
<li><h2>More Information</h2><ul>
<li><a href="<?cs var:toroot ?>compatibility/downloads.html">Downloads</a></li>
<li><a href="<?cs var:toroot ?>faqs.html#compatibility">FAQs</a></li>
<li><a href="<?cs var:toroot ?>compatibility/contact-us.html">Contact Us</a></li>
</ul></li>
</ul>
<script type="text/javascript">
<!--
buildToggleLists();
//-->
</script>
page.title=Contact Us
doc.type=compatibility
@jd:body
<p>Thanks for your interest in Android compatibility!</p>
<p>If you have questions about Android compatibility that aren't covered in
this site, you can reach us in one of a few different ways. To get the most
out of any of these options, please first read "Getting the Most from Our
Lists" on the <a href="{@docRoot}community/index.html">Community page.</a></p>
<h3>For General Discussion</h3>
<p>The preferred way to reach us is via the <a
href="mailto:compatibility@android.com">compatibility@android.com
address</a>.</p>
<h3>For CTS Technical Questions</h3>
<p>If you have specific issues with the Compatibility Test Suite that require
you to disclose information you'd prefer not to be public, you can contact an
email address we've set up specifically this purpose: <a
href="mailto:cts@android.com">cts@android.com</a>. This email address is for
cases that require disclosure of confidential information only, so general
questions will be directed back to the public android-compatibility
list. Note also that this list is for specific technical questions; general
inquiries will also be directed back to the android-compatibility list.</p>
<h3>For Business Inquiries</h3>
<p>Finally, business inquiries about the compatibility program, including
requests to use branding elements and so on, can be sent to the address <a
href="mailto:android-partnerships@google.com">android-partnerships@google.com</a>. Like
the CTS address, this address is for specific, private inquiries; general
questions will be directed back to the android-compatibility list.</p>
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment