Merge "Current files for source.android.com"

This commit is contained in:
Jean-Baptiste Queru
2011-01-26 08:23:47 -08:00
committed by Android Code Review
41 changed files with 10569 additions and 1238 deletions

View File

@@ -3,10 +3,10 @@ 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) 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>
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

View File

@@ -2,7 +2,7 @@ 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 similar
<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
@@ -16,12 +16,11 @@ 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>But the ultimate goal, of course, is to improve the mobile experience for
real users by facilitating innovation. Accordingly, the primary goal of the
AOSP is to make sure Android is a success as an end user product.</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 collectively believe that an open platform is necessary. Android is
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.
@@ -34,20 +33,19 @@ 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
can take advantage of the Compatibility Program.</p>
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. Conceptually, our notion is that device builders port
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 integrate the open source administration and
modern devices to market. We roll the open source administration and
maintenance into the larger product development cycle.</p>
<p>In a nutshell:</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>
@@ -56,18 +54,9 @@ 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. Some of the work from the current latest tree will promoted into these
releases.</li>
<li>When the "n+1"th version is determined to be nearing completion, it will
be published to the public source tree, and become the new latest
release.</li>
<li>Since Android is open source, nothing prevents device implementers from
shipping devices on older (obsolete) Android builds. However, active work will
be focused on the current platform release.</li>
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>
<p>To meet our goals, Android needs to achieve widespread, compatible
adoption. We believe that the best way to accomplish that is to make sure that
we ship high-quality, flagship devices with an intense product and end-user
focus. The "next release" of Android is driven by the product needs for the next
generation of mobile devices; the resulting excellent product is then released
to open source and becomes the new current version of the platform.</p>

View File

@@ -1,26 +1,66 @@
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.
<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>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.
<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>
<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 topics are technical discussions of Android or users helping each other, but this group is intended for discussions of<i>everything</i>
in the world of Android. We welcome announcements and discussion of products, libraries, publications, and other interesting Android-related news. We even welcome (polite!) discussion of articles and ideas critical of Android--after all, we can't improve if we don't listen. There are no restrictions on the subject matter, and we don't exclude discussions of commercial products if users are interested in talking about them.<br><br>However, 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>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>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

View File

@@ -1,7 +1,7 @@
page.title=Community
page.title=Android Community
doc.type=community
doc.hidenav=true
@jd:body
<h1>Android Community</h1>
<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
@@ -37,6 +37,14 @@ href="http://developer.android.com/community/index.html">http://developer.androi
<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
@@ -58,14 +66,14 @@ 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-platform</b><br/>
This list is for developers who want to contribute code to the Android
user-space projects, such as the core system libraries, the Android
services, the public APIs, or the built-in applications. Note: contributors
<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-platform">android-platform</a><br/>
Subscribe via email: <a href="mailto:android-platform+subscribe@googlegroups.com">android-platform+subscribe@googlegroups.com</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/>
@@ -88,27 +96,35 @@ site, you can use your email client of choice to participate in the mailing list
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-framework group you would
visit <a
href="http://groups.google.com/group/android-framework">http://groups.google.com/group/android-framework</a>.</li>
<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 Freenode. We maintain two official IRC
channels on irc.freenode.net:</p>
<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>#android</b> - dedicated to general Android discussion and porting concerns</li>
<li><b>#android-dev</b> - dedicated to discussion about writing Android applications</li>
<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.</p>
or implied, and so on. There may be more channels than just these listed.</p>
<ul>
<li><b>#android-offtopic</b> - for, well, off-topic discussions</li>
<li><b>#android-root</b> - for discussion related to off-label uses of hardware</li>
<li><b>#androidfra</b> - pour discuter d'Android en français</li>
<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>

View File

@@ -0,0 +1,19 @@
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>

View File

@@ -0,0 +1,20 @@
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>

View File

@@ -0,0 +1,20 @@
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</li>
<li>2.3.1</li>
</ul>

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

View File

@@ -7,12 +7,13 @@ function nothing() {}
<ul>
<li><h2>Getting Started</h2><ul>
<li><a href="<?cs var:toroot ?>compatibility/overview.html">Compatibility Overview</a></li>
<li><a href="">Current CDD</a></li>
<li><a href="<?cs var:toroot ?>compatibility/android-2.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 ?>downloads/index.html">Downloads</a></li>
<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>

View File

@@ -7,13 +7,12 @@ 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>Discussion Group</h3>
<h3>For General Discussion</h3>
<p>The preferred way to reach us is via the <a
href="http://groups.google.com/group/android-compatibility">android-compatibility
mailing list</a>. Use this list for all your compatibility-related questions.
Please be aware that this is a public forum.</p>
href="mailto:compatibility@android.com">compatibility@android.com
address</a>.</p>
<h3>CTS Technical Questions</h3>
<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
@@ -23,9 +22,9 @@ 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>Private Inquiries</h3>
<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:compatibility@android.com">compatibility@android.com</a>. Like
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>

View File

@@ -0,0 +1,130 @@
page.title=CTS Development
doc.type=compatibility
@jd:body
<h3>Initializing Your Repo Client</h3>
<p>Follow the
<a href="{@docRoot}source/download.html">instructions</a>
to get and build the Android source code but specify "-b froyo"
when issuing the "repo init" command. This assures that your CTS
changes will be included in the next CTS release and beyond.</p>
<h3>Setting Up Eclipse</h3>
<p>Follow the
<a href="{@docRoot}source/using-eclipse.html">instructions</a>
to setup Eclipse but execute the following command to generate the
.classpath file rather than copying the one from the development
project:</p>
<pre>
cd /path/to/android/root
./cts/development/ide/eclipse/genclasspath.sh &gt; .classpath
chmod u+w .classpath
</pre>
<p>This .classpath file will contain both the Android framework
packages and the CTS packages.</p>
<h3>Building and Running CTS</h3>
<p>Execute the following commands to build CTS and start the interactive
CTS console:</p>
<pre>
cd /path/to/android/root
make cts
cts
</pre>
<p>Provide arguments to CTS to immediately start executing a test:</p>
<pre>
cts start --plan CTS -p android.os.cts.BuildVersionTest
</pre>
<h3>Writing CTS Tests</h3>
<p>CTS tests use JUnit and the Android testing APIs. Review the
<a href="http://d.android.com/guide/topics/testing/testing_android.html">Testing
and Instrumentation</a> tutorial while perusing the existing tests under the
"cts/tests/tests" directory. You will see that CTS tests mostly follow the same
conventions used in other Android tests.</p>
<p>Since CTS runs across many production devices, the tests must follow
these rules:</p>
<ul>
<li>Must take into account varying screen sizes, orientations, and
keyboard layouts.</li>
<li>Only use public API methods. In other words, avoid all classes,
methods, and fields that are annotated with the "hide" annotation.</li>
<li>Avoid relying upon particular view layouts or depend on the
dimensions of assets that may not be on some device.</li>
<li>Don't rely upon root privileges.</li>
</ul>
<h4>Test Naming and Location</h4>
<p>Most CTS test cases target a specific class in the Android API. These tests
have Java package names with a "cts" suffix like "android.view.cts" and class
names with the "Test" suffix like "ViewTest." Each test case consists of
multiple tests, where each test usually exercises a particular API method of
the API class being tested. Each test is annotated with a @TestTargetNew
annotation to indicate what API method is being exercised. These tests are
arranged in a directory structure where tests are grouped into different
categories like "widgets" and "views."</p>
<p>For example, the CTS test for "android.widget.TextView" is
"android.widget.cts.TextVietTest" found under the
"cts/tests/tests/widget/src/android/widget/cts" directory with its
Java package name as "android.widget.cts" and its class name as
"TextViewTest." The "TextViewTest" class has a test called "testSetText"
that exercises the "setText" method and a test named "testSetSingleLine" that
calls the "setSingleLine" method. Each of those tests have @TestTargetNew
annotations indicating what they cover.</p>
<p>Some CTS tests do not directly correspond to an API class but are placed in
the most related package possible. For instance, the CTS test,
"android.net.cts.ListeningPortsTest," is in the "android.net.cts," because it
is network related even though there is no "android.net.ListeningPorts" class.
Thus, use your best judgement when adding new tests and refer to other tests
as examples.</p>
<h4>New Test Packages</h4>
<p>When adding new tests, there may not be an existing directory to place your
test. In that case, refer to the example under "cts/tests/tests/example" and
create a new directory. Furthermore, make sure to add your new package's
module name from its Android.mk to "CTS_COVERAGE_TEST_CASE_LIST" in
"cts/CtsTestCaseList.mk." This Makefile is used by "build/core/tasks/cts.mk"
to glue all the tests together to create the final CTS package.</p>
<h4>Test Stubs and Utilities</h4>
<p>Some tests use additional infrastructure like separate activities
and various utilities to perform tests. These are located under the
"cts/tests/src" directory. These stubs aren't separated into separate test
APKs like the tests, so the "cts/tests/src" directory does not have additional
top level directories like "widget" or "view." Follow the same principle of
putting new classes into a package with a name that correlates to the purpose
of your new class. For instance, a stub activity used for testing OpenGL like
"GLSurfaceViewStubActivity" belongs in the "android.opengl.cts" package under
the "cts/tests/src/android/opengl" directory.</p>
<h3>Other Tasks</h3>
<p>Besides adding new tests there are other ways to contribute to CTS:</p>
<ul>
<li>Fix or remove tests annotated with BrokenTest and KnownFailure.</li>
</ul>
<h3>Submitting Your Changes</h3>
<p>Follow the
<a href="{@docRoot}source/submit-patches.html">Android
contributors' workflow</a> to contribute changes to CTS. A reviewer
will be assigned to your change, and your change should be reviewed shortly!</p>

View File

@@ -13,10 +13,14 @@ Android .apk files to run on the actual device target.</li>
<h3>Workflow</h3>
<ol>
<li>Obtain the CTS source code. The CTS is included in the Android source code available from the Android
Open Source Project. (To get a copy of that source code, <a
href="{@docRoot}source/download.html">read this page.</a></li>
<li><a href="{@docRoot}compatibility/downloads.html">Download</a> the CTS.
<li>Attach at least one device (or emulator) to your machine.</li>
<li>For CTS 2.1 R2 and beyond, setup your device (or emulator) to run the accessibility tests:
<ol>
<li>adb install -r android-cts/repository/testcases/CtsDelegatingAccessibilityService.apk</li>
<li>On the device, enable Settings &gt; Accessibility &gt; Accessibility &gt; Delegating Accessibility Service</li>
</ol>
</li>
<li>Launch the CTS. The CTS test harness loads the test plan onto the attached devices. For each test in the test harness:
<ul>
<li>The test harness pushes a .apk file to each device, executes the test through instrumentation, and records test results.</li>

View File

@@ -0,0 +1,60 @@
page.title=Android Compatibility Downloads
doc.type=compatibility
@jd:body
<p>Thanks for your interest in Android Compatibility! The links below allow
you to access the key documents and information.</p>
<h2>Android 2.3</h2>
<p>Android 2.3 is the release of the development milestone code-named
Gingerbread. Android 2.3 is the current version of Android. Source code for
Android 2.3 is found in the 'gingerbread' branch in the open-source tree. A
CTS release for Android 2.3 has not yet been prepared, but one will be
available soon.
</p>
<ul>
<li><a href="{@docRoot}compatibility/android-2.3-cdd.pdf">Android 2.3 Compatibility Definition Document (CDD)</a></li>
<li><a href="http://dl.google.com/dl/android/cts/android-cts-2.3_r1-x86.zip">Android 2.3 R1 Compatibility Test Suite (CTS)</a></li>
</ul>
<h2>Android 2.2</h2>
<p>Android 2.2 is the release of the development milestone code-named
FroYo. Source code for Android 2.2 is found in the 'froyo' branch in the
open-source tree.
</p>
<ul>
<li><a href="{@docRoot}compatibility/android-2.2-cdd.pdf">Android 2.2 Compatibility Definition Document (CDD)</a></li>
<li><a href="http://dl.google.com/dl/android/cts/android-cts-2.2_r4-x86.zip">Android 2.2 R4 Compatibility Test Suite (CTS)</a></li>
</ul>
<h2>Android 2.1</h2>
<p>Android 2.1 is the release of the development milestone code-named
Eclair. Source code for Android 2.1 is found in the 'eclair' branch in the
open-source tree. Note that for technical reasons, there is no compatibility
program for Android 2.0 or 2.0.1, and new devices must use Android 2.1.
</p>
<ul>
<li><a href="{@docRoot}compatibility/android-2.1-cdd.pdf">Android 2.1 Compatibility Definition Document (CDD)</a></li>
<li><a href="http://dl.google.com/dl/android/cts/android-cts-2.1_r5-x86.zip">Android 2.1 R5 Compatibility Test Suite (CTS)</a></li>
</ul>
<h2>Android 1.6</h2>
<p>Android 1.6 was the release of the development milestone code-named Donut.
Android 1.6 was obsoleted by Android 2.1. Source code for Android 1.6 is found
in the 'donut' branch in the open-source tree.
<ul>
<li><a href="{@docRoot}compatibility/android-1.6-cdd.pdf">Android 1.6 Compatibility Definition Document (CDD)</a></li>
</ul>
<h2>Compatibility Test Suite Manual</h2>
<p>The CTS user manual is applicable to any CTS version, but CTS 2.1 R2 and
beyond require
<a href="{@docRoot}compatibility/cts-intro.html">additional steps</a>
to run the accessibility tests.
<ul>
<li><a href="{@docRoot}compatibility/android-cts-manual-r4.pdf">Compatibility Test Suite (CTS) User Manual</a></li>
</ul>
<h2>Older Android Versions</h2>
<p>There is no Compatibility Program for older versions of Android, such as Android
1.5 (known in development as Cupcake). New devices intended to be Android
compatible must ship with Android 1.6 or later.</p>

View File

@@ -1,17 +1,21 @@
page.title=Android Compatibility
doc.type=compatibility
@jd:body
<p>Android is an open source product, and anyone can use the source code to build
devices. The purpose of the Android compatibility program is to help Android
device implementations remain compatible with all apps.</p>
<p>A device is considered compatible if existing and new third-party
applications run correctly on it. Poor device implementations that change APIs
or alter behaviors will break these apps and so are not compatible. The
Android compatibility program's aim is to ensure that these APIs are
consistently implemented across devices.</p>
<p>The latest version of the Android source code and compatibility program is
1.6, which roughly corresponded to the Donut branch. The compatibility
program for Android 2.x (corresponding to Eclair) is coming soon.</p>
<p>Android's purpose is to establish an open platform for developers to build
innovative mobile apps. Three key components work together to realize this
platform.</p>
<p>The Android Compatibility Program defines the technical details of Android
platform and provides tools used by OEMs to ensure that developers apps run
on a variety of devices. The Android SDK provides built-in tools that
Developers use to clearly state the device features their apps require. And
Android Market shows apps only to those devices that can properly run
them.</p>
<p>These pages describe the Android Compatibility Program and how to get
access to compatibility information and tools. The latest version of the
Android source code and compatibility program is 2.3, which
corresponded to the Gingerbread branch.</p>
<h2>Why build compatible Android devices?</h2>
<h3>Users want a customizable device.</h3>
<p>A mobile phone is a highly personal, always-on, always-present gateway to
@@ -20,7 +24,7 @@ extending its functionality. That's why Android was designed as a robust
platform for running after-market applications.</p>
<h3>Developers outnumber us all.</h3>
<p>No device manufacturer can hope to write all the software that anyone could
<p>No device manufacturer can hope to write all the software that a person could
conceivably need. We need third-party developers to write the apps users want,
so the Android Open Source Project aims to make it as easy and open as
possible for developers to build apps.</p>
@@ -38,30 +42,23 @@ increasing the incentive for developers to build more of those apps.</p>
sure your device is compatible with Android. For more details about the
Android compatibility program in general, see <a
href="{@docRoot}compatibility/overview.html">the program overview</a>.</p>
<p>Building a compatible device is a four-step process:</p>
<p>Building a compatible device is a three-step process:</p>
<ol>
<li><b>Obtain the Android software stack source code</b><p>This is the
<li><b>Obtain the Android software source code</b><p>This is the
<a href="{@docRoot}source/index.html">source code for the Android
platform</a>, that you port to your hardware.</p></li>
<li><b>Comply with Android Compatibility Definition Document</b><p>
This document enumerates the software and the hardware features of
<li><b>Comply with Android Compatibility Definition Document (CDD)</b><p>
The CDD enumerates the software and hardware requirements of
a compatible Android device.</p></li>
<li><b>Pass the Compatibility Test Suite (CTS)</b><p>You can use the CTS
(included in the Android source code) as an ongoing aid to compatibility
during the development process.</p></li>
<li><b>Submit CTS report</b><p>[Optional] You can also submit your CTS report,
so that it can be validated and recorded.</p><p><i>Note:
the submission system is currently under construciton, and is not currently
available.</i></p></li>
</ol>
<h2>Benefits of compatibility</h2>
<p>By submitting a validated CTS report, you receive public recognition of
your device's compatibility. This also opens up additional options you can
pursue such as use of the Android branding, access to Android Market, and
more.</p>
<p>As a consequence of some legal quirks, we aren't able to offer automatic
licensing of either the Android Market or branding. To actually obtain access
to these programs, you will need to <a
href="{@docRoot}compatibility/contact-us.html">contact us</a> to obtain a
license.</p>
<h2>Joining the Ecosystem</h2>
<p>Once you've built a compatible device, you may wish to include Android
Market to provide your users access to the third-party app ecosystem.
Unfortunately, for a variety of legal and business reasons, we aren't able to
automatically license Android Market to all compatible devices. To inquire
about access about Android Market, you can <a
href="{@docRoot}compatibility/contact-us.html">contact us</a></p>

View File

@@ -35,11 +35,13 @@ manufacturers the flexibility to create unique devices that are nonetheless
compatible.</p></li>
<li><b>Minimize costs and overhead associated with
compatibility.</b><p>Ensuring compatibility should be easy and inexpensive to
device manufacturers. The testing tool (CTS) is free and will soon be available
in open source. CTS is designed to be used for continuous self-testing during
the device development process to eliminate the cost of changing your workflow
or sending your device to a third party for testing. Meanwhile, there are no
required certifications, and thus no corresponding costs and fees.</p></li>
device manufacturers. The testing tool (CTS) is free, open source, and
available for <a href="{@docRoot}compatibility/downloads.html">download</a>.
CTS is designed to be used for continuous self-testing
during the device development process to eliminate the cost of changing your
workflow or sending your device to a third party for testing. Meanwhile, there
are no required certifications, and thus no corresponding costs and
fees.</p></li>
</ul>
<p>The Android compatibility program consists of three key components:</p>
<ul>
@@ -76,8 +78,9 @@ corresponding CDD and stay within its guidelines. For additional details,
simply examine <a href="">the latest CDD</a>.</p>
<h3>Compatibility Test Suite (CTS)</h3>
<p>The CTS is a free, commercial-grade test suite, available along with the
Android source code. The CTS represents the "mechanism" of compatibility.</p>
<p>The CTS is a free, commercial-grade test suite, available for
<a href="{@docRoot}compatibility/downloads.html">download</a>.
The CTS represents the "mechanism" of compatibility.</p>
<p>The CTS runs on a desktop machine and executes test cases directly on
attached devices or an emulator. The CTS is a set of unit tests designed to be
integrated into the daily workflow (such as via a continuous build system) of

View File

@@ -1,21 +0,0 @@
<script type="text/javascript" language="JavaScript">
<!--
function nothing() {}
-->
</script>
<ul>
<li><h2>PDK</h2><ul>
<li><a href="">PDK 1.6</a></li>
</ul></li>
<li><h2>Compatibility</h2><ul>
<li><a href="">Android 1.6</a></li>
</ul></li>
</ul>
<script type="text/javascript">
<!--
buildToggleLists();
//-->
</script>

View File

@@ -1,44 +0,0 @@
page.title=Downloads
doc.type=downloads
doc.hidenav=true
@jd:body
<p>This page provides access to various downloads. Note that if you're looking
for the Android SDK (for application developers), you should visit <a
href="http://developer.android.com/sdk/index.html">developer.android.com</a>.</p>
<h2>Compatibility</h2>
<p>The Compatibility Definition Document can be downloaded below. The
Compatibility Test Suite is available in the open-source tree.</p>
<table class="download">
<tr>
<th>Item</th>
<th>File</th>
<th>Size</th>
</tr>
<tr>
<td>Android CDD 2.1</td>
<td><a href="">android-cdd-2.1.pdf</a></td>
<td>23070805 bytes</td>
</tr>
<tr class="alt-color">
<td>Android CTS 2.1 Manual</td>
<td><a href="">android-cts-manual-2.1.0.pdf</a></td>
<td>23070805 bytes</td>
</tr>
<tr>
<td>Android CDD 1.6</td>
<td><a href="">android-cdd-1.6.pdf</a></td>
<td>23070805 bytes</td>
</tr>
<tr class="alt-color">
<td>Android CTS 1.6 Manual</td>
<td><a href="">android-cts-manual-1.6.4.pdf</a></td>
<td>23070805 bytes</td>
</tr>
</table>
<p>For more information on how to build an Android-compatible device, see the
<a href="{@docRoot}compatibility/index.html">Compatibility</a> page. Note that
there is no compatibility program for Android 1.5 and earlier. Note also that
there is no compatibility program for Android 2.0, since it was superceded by
Android 2.1 after only a few weeks.
</p>

View File

@@ -74,8 +74,8 @@ benefit.</p>
<p>Finally, Google works on the next version of the Android platform in tandem
with developing a flagship device. This branch pulls in changes from the
experimental and stable branches as appropriate.</p>
<p>You can find more information on this topic at our Branches Releases
page.</p>
<p>You can find more information on this topic at our <a
href="{@docRoot}source/code-lines.html">Branches and Releases</a> page.</p>
<h3>Why are parts of Android developed in private?</h3>
<p>It typically takes over a year to bring a device to market, but of course
@@ -86,16 +86,16 @@ benefit.</p>
<p>To address this, some parts of the next version of Android including the
core platform APIs are developed in a private branch. These APIs constitute
the next version of Android. Our aim is to focus attention on the current
stable version of the Android source code, while we refine the next version
of the platform using the flagship Android devices. This allows developers
stable version of the Android source code, while we create the next version
of the platform as driven by flagship Android devices. This allows developers
and OEMs to focus on a single version without having to track unfinished
future work just to keep up.Other parts of the Android system that aren't
future work just to keep up. Other parts of the Android system that aren't
related to application compatibility are developed in the open, however.
It's our intention to move more of these parts to open development over
time.</p>
<h3>When are source code releases made?</h3>
<p>When they are ready. Some parts of Android are developed in the open, and
<p>When they are ready. Some parts of Android are developed in the open,
so that source code is always available. Other parts are developed first in
a private tree, and that source code is released when the next platform
version is ready.</p>
@@ -143,8 +143,7 @@ benefit.</p>
"Android compatible devices" from devices that merely run derivatives of the
source code. We welcome all uses of the Android source code, but only
Android compatible devices -- as defined and tested by the Android
Compatibility Program -- may call themselves "Android" and participate in
the Android ecosystem.</p>
Compatibility Program -- may participate in the Android ecosystem.</p>
<h3>How can I contribute to Android?</h3>
<p>There are a number of ways you can contribute to Android. You can report
@@ -170,8 +169,9 @@ benefit.</p>
<p>Once submitted, changes need to be accepted by a designated Approver.
Approvers are typically Google employees, but the same approvers are
responsible for all submissions, regardless of origin.</p>
<p>You can find more information on this topic at the Submitting Patches
page.</p>
<p>You can find more information on this topic at the <a
href="{@docRoot}source/submit-patches.html">Submitting Patches</a>
page.</p>
<a name="compatibility"></a><h2>Compatibility</h2>
<h3>What does "compatibility" mean?</h3>
@@ -185,7 +185,7 @@ benefit.</p>
<p>In other words, compatibility is a prerequisite to participate in the
Android apps ecosystem. Anyone is welcome to use the Android source code,
but if the device isn't compatible, it's not considered part of the Android
ecosystem, and irrelevant to developers.</p>
ecosystem.</p>
<h3>What is the role of Android Market in compatibility?</h3>
<p>Devices that are Android compatible may seek to license the Android Market
@@ -200,11 +200,11 @@ benefit.</p>
Compatibility Definition Document (CDD) spells out the specific device
configurations that will be considered compatible.</p>
<p>For example, though the Android source code could be ported to run on a
device that doesn't have a camera, the CDD requires that in order to be
compatible, all devices must have a camera. This allows developers to rely
on a consistent set of device capabilities when writing their apps.</p>
phone that doesn't have a camera, the CDD requires that in order to be
compatible, all phones must have a camera. This allows developers to rely
on a consistent set of capabilities when writing their apps.</p>
<p>The CDD will evolve over time to reflect market realities. For instance,
the 1.6 CDD only allows cell phones, but the 2.x CDD allows devices to omit
the 1.6 CDD only allows cell phones, but the 2.1 CDD allows devices to omit
telephony hardware, allowing for non-phone devices such as tablet-style
music players to be compatible. As we make these changes, we will also
augment Android Market to allow developers to retain control over where
@@ -214,13 +214,10 @@ benefit.</p>
devices.</p>
<h3>If my device is compatible, does it automatically have access to Android Market and branding?</h3>
<p>Android Market is a service operated by Google. For legal and business
reasons, Google isn't able to make that service available in all parts of
the world. Similarly, Google is unable to license the Android trademark for
use in all cases.</p>
<p>As a result, achieving compatibility does not automatically entitle a
device to include Android Market or use the Android name. Device
manufacturers should contact Google to obtain access to those tools.</p>
<p>Android Market is a service operated by Google. Achieving compatibility is
a prerequisite for obtaining access to the Android Market software and branding.
Device manufacturers should contact Google to obtain access to Android
Market.</p>
<h3>If I am not a manufacturer, how can I get Android Market?</h3>
<p>Android Market is only licensed to handset manufacturers shipping devices.
@@ -229,9 +226,9 @@ benefit.</p>
<h3>How can I get access to the Google apps for Android, such as Maps?</h3>
<p>The Google apps for Android, such as YouTube, Google Maps and Navigation,
Gmail, and so on are not part of Android, and are licensed separately.
Contact android-partnerships@google.com for inquiries related to those
apps.</p>
Gmail, and so on are Google properties that are not part of Android, and
are licensed separately. Contact android-partnerships@google.com for
inquiries related to those apps.</p>
<h3>Is compatibility mandatory?</h3>
<p>No. The Android Compatibility Program is optional. Since the Android source
@@ -246,7 +243,7 @@ benefit.</p>
test a device.</p>
<h3>How long does compatibility take?</h3>
<p>The process is automatic. The Compatibility Test Suite generates a report
<p>The process is automated. The Compatibility Test Suite generates a report
that can be provided to Google to verify compatibility. Eventually we intend
to provide self-service tools to upload these reports to a public database.</p>
@@ -271,12 +268,15 @@ benefit.</p>
generally have much effect on third-party apps. As such, device builders are
free to customize the user interface as much as they like. The Compatibility
Definition Document does restrict the degree to which OEMs may alter the
system user interface for the few areas that do impact third-party apps.</p>
system user interface for areas that do impact third-party apps.</p>
<h3>When are compatibility definitions released for new Android versions?</h3>
<p>Our goal is to release new versions of Android Compatibility Definition
Documents (CDDs) once the corresponding Android platform version has
converged enough to permit it. Since the CDDs</p>
converged enough to permit it. While we can't release a final draft of a CDD
for an Android software version before the first flagship device ships with
that software, final CDDs will always be released after the first device.
However, wherever practical we will make draft versions of CDDs available.</p>
<h3>How are device manufacturers' compatibility claims validated?</h3>
<p>There is no validation process for Android device compatibility. However,

Binary file not shown.

Before

Width:  |  Height:  |  Size: 233 KiB

After

Width:  |  Height:  |  Size: 339 KiB

View File

@@ -1,7 +1,27 @@
page.title=Welcome to Android
home=true
@jd:body
<div style="float: left; width: 45%; font-size: 1.3em;">
<div style="float: right; width: 35%;">
<h3 style="padding-top: 0px;">News</h3>
<p><b>Compatibility Definition for Android 2.3</b><br/>
The Compatibility Definition Document for Android 2.3 has been published.
The 2.3 CDD allows device manufacturers to use the Android source code to ship
a significantly wider variety of devices, including devices with extra-large
screens, such as tablets. A release of the Compatibility Test Suite is not
yet available, but will be soon. For more information, <a
href="{@docRoot}compatibility/index.html">visit the Compatibility page.</a>
</p>
<p><b>Source Code Available for Android 2.3</b><br/>
The source code for the Android 2.3 platform and software stack has been
released! This release allows OEMs to begin preparing Android 2.3 for
installation on new and existing devices, and allows hobbyists, enthusiasts,
and researchers to develop custom builds. For information on how to obtain the
software,
<a href="{@docRoot}source/download.html">visit our 'Getting the Source' page.</a>
</p>
</div>
<img style="float: right; padding-right: 1.5em;" src="{@docRoot}images/home-bugdroid.png" alt="Android Mascot"/>
<div style="font-size: 1.3em;">
<p>Here you can find the information and source code you need to build an
Android-compatible device.</p>
<p>Android is an open-source software stack for mobile devices, and a
@@ -12,51 +32,40 @@ home=true
created Android, and made its source code open.</p>
<p><a href="{@docRoot}about/index.html">Learn more &raquo;</a></p>
</div>
<div style="float: right; width: 35%;">
<h3 style="padding-top: 0px;">News</h3>
<p><b>Site redesign</b><br/>
You're looking at the new and improved source.android.com! We've updated
the layout and site design, and also added new information. We hope you find
these improvements helpful.</p>
<p><b>Introducing the Compatibility Program</b><br/>
We're pleased to introduce the Android Compatibility Program. We've released
two tools -- the Compatibility Definition Document and the Compatibility Test
Suite -- to help device manufacturers build compatible devices. Full details
of the Compatibility Program will be available in the first quarter of 2010.</p>
</div>
<img style="float: right; padding-right: 1.5em;" src="{@docRoot}images/home-bugdroid.png" alt="Android Mascot"/>
<div style="clear: both;"/>
<table border="0" style="border: 0px; margin: 0px; padding: 0px;"><tr><td align="center" style="border: 0px; margin: 0px; padding: 0px;">
<div class="rebox lil" style="float: left; width: 30%; margin: 1em;">
<h2 style="color: white; background-color: #95C0D0; border: 0px;">Get Involved</h2>
<h2 style="color: white; background-color: #95C0D0; border: 0px;">Source</h2>
<div class="p">
<p><img src="images/lil-wrench.png" alt="" style="margin: 1em;"/>
<p><img src="images/lil-wrench.png" alt="" style="margin: 1em; margin-bottom: 5em;"/>
If you're interested in contributing to the Android source code or helping
out with the project in some other way, click here.</p>
<p><a href="{@docRoot}source/index.html">More &raquo;</a></p>
out with the open-source project, our Source pages have the information
you need.</p>
<p><a href="{@docRoot}source/index.html">Get Involved &raquo;</a></p>
</div>
</div>
<div class="rebox lil" style="float: left; width: 30%; margin: 1em;">
<h2 style="color: white; background-color: #95C0D0; border: 0px;">Build a Device</h2>
<h2 style="color: white; background-color: #95C0D0; border: 0px;">Porting</h2>
<div class="p">
<p><img src="images/lil-wrench.png" alt="" style="margin: 1em;"/>
If you're an engineer building a device intended to run the Android
software stack, click here to find porting information and tips.</p>
<p><a href="{@docRoot}porting/index.html">More &raquo;</a></p>
<p><img src="images/lil-wrench.png" alt="" style="margin: 1em; margin-bottom: 5em;"/>
If you're an engineer building a device
intended to run the Android software stack, look at our Porting pages for
information and tips.</p>
<p><a href="{@docRoot}porting/index.html">Build a Device &raquo;</a></p>
</div>
</div>
<div class="rebox lil" style="float: left; width: 30%; margin: 1em;">
<h2 style="color: white; background-color: #95C0D0; border: 0px;">Compatibility</h2>
<div class="p">
<p><img src="images/lil-wrench.png" alt="" style="margin: 1em;"/>
If you're an OEM or other organization building an Android device, click
here to find out how to ensure that your device is fully compatible, and
how to take advantage of the benefits of compatibility.</p>
<p><a href="{@docRoot}compatibility/index.html">More &raquo;</a></p>
<p><img src="images/lil-wrench.png" alt="" style="margin: 1em; margin-bottom: 5em;"/>
If you're an organization building an Android device, you'll want to check out our
Compatibility pages to find out how to take advantage of the benefits of
compatibility.</p>
<p><a href="{@docRoot}compatibility/index.html">Get Compatible &raquo;</a></p>
</div>
</div>
</td></tr></table>

View File

@@ -17,7 +17,8 @@ doc.type=porting
</div>
</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>
<p>Android's Bluetooth stack uses BlueZ for GAP, SDP, and RFCOMM profiles, and
is a SIG-qualified Bluetooth stack. </p>
<p>Bluez is GPL licensed, so the Android framework interacts with userspace bluez code through D-BUS IPC to avoid proprietary code.</p>
@@ -33,7 +34,7 @@ Solid elements represent Android blocks and dashed elements represent partner-sp
<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>BlueZ is Bluetooth 2.1 compatible and should work with any 2.1 chipset and is backward compatibile with older Bluetooth versions. There are two integration points:</p>
<p><ul>
<li>UART driver</li>
<li>Bluetooth Power On / Off</li>
@@ -67,7 +68,7 @@ BOARD_HAVE_BLUETOOTH := true
<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.
<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>
<pre>
hciconfig -a # print BT chipset address and features. Useful to check if you can communicate with your BT chipset.
@@ -158,14 +159,79 @@ sdptool records ADDRESS # request the SDP records of another BT device.
<li>QDID B015261: Host stack (SDP, L2CAP, GAP, RFCOMM, SPP, AVCTP, AVRCP, GAVDP, AVDTP, A2DP)</li>
<li>QDID B015262: EPL for HTC Sapphire (HSP, HFP)</li>
</ul>
<h4>Android 2.0/2.1 release (eclair)</h4>
<h4>Platform features</h4>
<ul>
<li>Based on Bluez 4.47 with Linux Kernel 2.6.29</li>
<li>Bluetooth 2.1+EDR host stack</li>
<ul>
<li>Support for auto-pairing with '0000' devices</li>
<li>Support for Simple Secure Pairing</li>
</ul>
<li>Headset Profile 1.1 in Audio Gateway role</li>
<li>Handsfree Profile 1.5 in Audio Gateway role</li>
<ul>
<li>Three-way calling </li>
<li>Phonebook over AT commands </li>
<li>Volume synchronization</li>
<li>eSCO</li>
<li>Extensive bug fixes and compatibility improvements</li>
</ul>
<li>Stereo Bluetooth (A2DP 1.2) in Source role</li>
<ul>
<li>AVDTP 1.2 in Acceptor and Initiator roles</li>
<li>GAVDTP 1.0 in Acceptor and Initiator roles</li>
<li>44.1 khz, stereo, software SBC codec</li>
</ul>
<li>Remote Control (AVRCP 1.0) in Target role</li>
<ul>
<li>AVCTP 1.3 in Target role</li>
<li>play/pause/stop/prev/next</li>
</ul>
<li> Object Push Profile version 1.1 </li>
<ul>
<li>Adds ability to transfer pictures, videos</li>
<li>Transfer of contacts using vCard is not supported in this release.</li>
</ul>
<li>Phone Book Address Profile version 1.0</li>
<ul>
<li>Phone Book Server Equipment (PSE) role supported</li>
</ul>
<li>Using Java Bluetooth APIs, an Android application can peform the
following:</li>
<ul>
<li>Scan for other Bluetooth devices </li>
<li>Query the local Bluetooth adapter for paired Bluetooth devices </li>
<li>Establish RFCOMM channels </li>
<li>Connect to other devices through service discovery </li>
<li>Transfer data to and from other devices </li>
<li>Manage multiple connections </li>
</ul>
<li>Support for Bluetooth enabled car and desk docks</li>
<ul>
<li>Framework support for routing Phone Call Audio and A2DP streaming using
car and desk docks. </li>
</ul>
</ul>
<h4>Android 2.2 release (Froyo)</h4>
<h4>Platform features</h4>
<ul>
<li>Based on Bluez 4.47 with Linux Kernel 2.6.32</li>
<li>No new profiles added.</li>
<li>Added ability to share contacts using vCard</li>
<li>Added ability to export all contacts - useful to transfer contacts to car kits </li>
<li>Improved compatibility with headsets and car kits. </li>
</ul>
<h5>&nbsp;</h5>
<h4>Future releases</h4>
<p>This section offers a rough guide of which features the team is developing for the next release. This feature list may change without notice. It isn't possible to post scheduling advice to the mailing lists.</p>
<ul>
<li>Java Bluetooth API</li>
<li>Bluez 4.x with Linux Kernel 2.6.29</li>
<li>More profiles...</li>
<li>Bluetooth 2.1+EDR</li>
<li>Improved compatibility with headsets and car kits</li>
<li>Bluetooth emulator support</li>
<li>Bluetooth Low Energy </li>
</ul>
<p><strong>Development Notes</strong></p>
@@ -184,10 +250,4 @@ BNEP</code> support is compiled into the kernel with cupcake. <br />
While not officially supported, you should be able to run <code>dund</code> or <code>pand</code> daemons and, using <code>pppd</code> or <code>iptables</code>, test tethering support. Next steps include plubming the DBUS APIs to these daemons up into the Android Java framework and adding code to setup the network paths via <code>pppd</code> and / or <code>iptables</code>.<br />
<br />
</li>
<li><strong>Emulator Support</strong><br />
The Android emulator does not support Bluetooth at this time and there currently aren't any plans for its support.<br />
<br />
</li>
<li><strong>Bluetooth 2.1 and Simple Pairing Support</strong><br />
In order to support these features, Android needs to move to a Bluez 4.x version. This change is not scheduled at this time.</li>
</ul>

View File

@@ -137,13 +137,7 @@ spinlock because no other thread can release it.
(gdb) set scheduler-locking on
</pre>
<p>
Ignore SIGUSR1 if you're using JamVM. Shouldn't hurt if you're not.
</p>
<pre class="prettify">
(gdb) handle SIGUSR1 noprint
(gdb) where
#0 __futex_wait () at system/klibc/android/atomics_arm.S:88
#1 0x53010eb8 in pthread_cond_timedwait (cond=0x12081c, mutex=0x120818, abstime=0xffffffff)
@@ -239,7 +233,7 @@ Previous frame identical to this frame (corrupt stack?)
</pre>
<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>
<p>If it crashes, connect with <code>adb</code> and run <code>logcat</code> on the device. You should see output like this:</p>
<pre class="prettify">
I/ActivityManager( 188): Starting activity: Intent { component=com.android.calendar.MonthScreen }

View File

@@ -335,7 +335,7 @@ $ adb shell am instrument -w \
<pre class="prettify">
public class FrameworkInstrumentationTestRunner extends InstrumentationTestRunner {
@Override
&#64;Override
public TestSuite getAllTests() {
InstrumentationTestSuite suite = new InstrumentationTestSuite(this);
@@ -345,7 +345,7 @@ public class FrameworkInstrumentationTestRunner extends InstrumentationTestRunne
return suite;
}
@Override
&#64;Override
public ClassLoader getLoader() {
return FrameworkInstrumentationTestRunner.class.getClassLoader();
}
@@ -373,7 +373,7 @@ public class ButtonPressTest extends ActivityTestCase&lt;MyActivity&gt; {
super("com.example", MyActivity.class);
}
@Override
&#64;Override
public void setUp() throws Exception {
super.setUp();
mLeftButton = (Button) getActivity().findViewById(R.id.leftButton);

View File

@@ -3,10 +3,10 @@ doc.type=source
@jd:body
<p><i>The information on this page is a bit out of date. We'll update this
page as soon as we can.</i></p>
<div>The basic manifest for cupcake (and above) defines which projects are
<div>The basic manifest for 1.6 defines which projects are
needed to do a generic build for the emulator or for unlocked Dream devices
(e.g. the Android Dev Phone 1). You need to have an appropriate device running
a matching official image.<br><br>To build donut or master for dream (your
a matching official image.<br><br>To build donut for dream (your
device needs to be an ADP1 running an official 1.6 system):<br><ol><li>Follow
the <a href="{@docRoot}source/download.html">normal steps</a>
to setup repo and check out the sources.
@@ -22,17 +22,6 @@ to setup repo and check out the sources.
</li>
<li>from this point, the fastboot tool (which is put automatically in your path) can be used to flash a device: boot the device into the bootloader by holding the back key while pressing the power key, and run "fastboot -w flashall".<br></li>
</ol>
To build cupcake for dream (your device needs to be an ADP1 running an official 1.5 system):<br><ol><li>Follow the <a href="{@docRoot}source/download.html">normal steps</a>
to setup repo and check out the sources.
</li>
<li>At the root of your source tree, run ". build/envsetup.sh" like you normally would for an emulator build.
</li>
<li>Run "make adb" if you don't already have adb in your path.<br></li>
<li>in vendor/htc/dream-open/ there is a script called "extract-files.sh" that must be run (from that directory) to extract some proprietary binaries from your device (*). You only need to do this once.<br></li>
<li>run "lunch htc_dream-eng" to specifically configure the build system for dream (the default is the equivalent of "lunch generic-eng", which doesn't contain dream-specific files).<br></li>
<li>run make from the top of the source tree.
</li>
<li>from this point, the fastboot tool (which is put automatically in your path) can be used to flash a device: boot the device into the bootloader by holding the back key while pressing the power key, and run "fastboot -w flashall".<br></li>
</ol>
* The Dream device software contains some proprietary binaries.For contractual reasons, these cannot be redistributed to be used directly with the Android Open-Source Project, but the provided script may be used to extract these binaries from your development device so that they can be correctly included in your build.These libraries include the openGL|ES library, the Qualcomm camera library, the HTC Radio Interface Library, etc.
<p>Note: these instructions work for the sapphire (ADP2) build target, as
well. Simply replace "dream" with "sapphire" above.</p>
</div>

View File

@@ -15,7 +15,7 @@ moment.</p>
<h3>Notes and Explanations</h3>
<ul>
<li>A <i>release</i> corresponds to a formal version of the Android platform, such
as 1.5, 2.0, and so on. Generally speaking, a release of the platform
as 1.5, 2.1, and so on. Generally speaking, a release of the platform
corresponds to a version of the <code>SdkVersion</code> field used in
AndroidManifest.xml files, and defined in <code>frameworks/base/api</code> in
the source tree.</li>
@@ -23,34 +23,37 @@ the source tree.</li>
stack is pulling code. These include obvious projects such as the Linux kernel
and WebKit, but over time we are migrating some of the semi-autonomous
Android projects (such as Dalvik, the Android SDK tools, Bionic, and so on) to
work as "upstream" projects. These will be developed entirely in the public
tree, and snapshots will be periodically pulled into releases.</li>
<li>The diagram refers to "Eclair" and "Flan"; however, they are simply
work as "upstream" projects. Generally, these projects are developed entirely in
the public tree. For some upstream projects, development is done by contributing
directly to the upstream project itself. See
<a href="{@docRoot}source/submit-patches.html#upstream-projects">Upstream Projects</a>
for details. In both cases, snapshots will be periodically pulled into releases.</li>
<li>The diagram refers to "Eclair" and "FroYo"; however, they are simply
placeholders, and the diagram actually reflects the overall release and
branching strategy.</li>
<li>At all times, the Release code-line (which may actually consist of
<li>At all times, a release code-line (which may actually consist of
more than one actual branch in git) is considered the sole canonical source
code for a given Android platform. OEMs and other groups building devices
should pull only from a Release branch.</li>
<li>We will be setting up an "Experimental" code-line to capture changes from
code for a given Android platform version. OEMs and other groups building devices
should pull only from a release branch.</li>
<li>We will set up "experimental" code-lines to capture changes from
the community, so that they can be iterated on, with an eye toward stability.</li>
<li>Changes that prove stable will eventually be pulled into a Release
<li>Changes that prove stable will eventually be pulled into a release
branch. Note that this will only apply to bug fixes, app improvements, and
other things that do not affect the APIs of the platform.</li>
<li>Changes will be pulled into Release branches from upstream projects
(include the Android "upstream" projects) as necessary.</li>
<li>Changes will be pulled into release branches from upstream projects
(including the Android "upstream" projects) as necessary.</li>
<li>The "n+1"th version (that is, next major version of the framework and
platform APIs) will be developed by Google internally. (See below for
details.)</li>
<li>Changes will be pulled from upstream, Release, and Experimental branches
platform APIs) will be developed by Google internally. See below for
details.</li>
<li>Changes will be pulled from upstream, release, and experimental branches
into Google's private branch as necessary.</li>
<li>When the platform APIs for the next version have stabilized and been fully
tested, Google will cut a release of the next platform version. (This
specifically refers to a new <code>SdkVersion</code>.) This will also
correspond to the internal code-line being made a public Release branch, and the
correspond to the internal code-line being made a public release branch, and the
new current platform code-line.</li>
<li>When a new platform version is cut, a corresponding Experimental
code-line.</li>
<li>When a new platform version is cut, a corresponding experimental
code-line will be created at the same time.</li>
</ul>
<h3>About Private Code-Lines</h3>
<p>The source management strategy above includes a code-line that Google will
@@ -62,9 +65,9 @@ deal with more extant platform versions than strictly necessary. Meanwhile,
Google retains responsibility for the strategic direction of Android as a
platform and a product. Our approach is based on focusing on a small number of
flagship devices to drive features, and secure protections of Android-related
intellectual property through patents and the like.</p>
intellectual property.</p>
<p>As a result, Google frequently has possession of confidential
information of third parties, and we must refrain from revealing patentable
information of third parties, and we must refrain from revealing sensitive
features until we've secured the appropriate protections. Meanwhile, there are
real risks to the platform arising from having too many platform versions
extant at once. For these reasons, we have structured the open-source project

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,7 @@
page.title=Using Repo and Git
doc.type=source
@jd:body
<div>
<p>To work with the Android code, you will need to use both Git and Repo.<br></p>
<ul><li><i>Git</i>
is an open-source version-control system designed to handle very large projects that are distributed over multiple repositories. In the context of Android, we use Git for local operations such as local branching, commits, diffs, and edits.<br><br></li>
@@ -22,8 +23,8 @@ Already a Git user?
In most situations, you can use Git instead of Repo, or mix Repo and Git
commands to form complex commands. Using Repo for basic across-network
operations will make your work much simpler, however.
<br></div>
<div><div><h2>
<br>
<div><h2>
Task reference <br></h2>
The task list below shows a summary of how to do common Repo and Git tasks.
For complete quick-start information and examples, see <a
@@ -34,7 +35,7 @@ Installing Repo <br></h3>
$ curl http://android.git.kernel.org/repo &gt; ~/bin/repo <div>$ chmod a+x ~/bin/repo</div>
$ mkdir <i>working-directory-name</i>
<br>$ cd <i>working-directory-name <br></i>
$ repo init-u git://android.git.kernel.org/platform/manifest.git <br><br><h3>
$ repo init -u git://android.git.kernel.org/platform/manifest.git <br><br><h3>
Synchronizing your client
</h3>
To synchronize the files for all available projects:<br>$ repo sync <br><br>To
@@ -115,7 +116,7 @@ init
</h3>
repo init -u <i>url</i>
[<i>options</i>
]<br><br><div>Installs Repo in the current directory. This creates a .repo/ directory that contains Git repositories for the Repo source code and the standard Android manifest files. The .repo/ directory also containsmanifest.xml, which is a symlink to the selected manifest in the .repo/manifests/ directory.<br><br>The -u argument specifies a URL from which to retrieve a manifest repository. For example:<br>$ repo init -u git://android.git.kernel.org/platform/manifest.git <br><br>To select a manifest file within the repository, use the -m option. (If no manifest name is selected, the default is default.xml.)For example:<br>$ repo init -ugit://android.git.kernel.org/platform/manifest.git-m dalkvik-plus.xml <br><br>To specify a revision, that is, a particular manifest-branch, use the -b option. For example:<br>$ repo init -ugit://android.git.kernel.org/platform/manifest.git-b release-1.0<br><br>To see other repo init options, run <br>$ repo help init <br><br><b>Note:</b>
]<br><br><div>Installs Repo in the current directory. This creates a .repo/ directory that contains Git repositories for the Repo source code and the standard Android manifest files. The .repo/ directory also containsmanifest.xml, which is a symlink to the selected manifest in the .repo/manifests/ directory.<br><br>The -u argument specifies a URL from which to retrieve a manifest repository. For example:<br>$ repo init -u git://android.git.kernel.org/platform/manifest.git <br><br>To select a manifest file within the repository, use the -m option. (If no manifest name is selected, the default is default.xml.)For example:<br>$ repo init -u git://android.git.kernel.org/platform/manifest.git-m dalkvik-plus.xml <br><br>To specify a revision, that is, a particular manifest-branch, use the -b option. For example:<br>$ repo init -u git://android.git.kernel.org/platform/manifest.git-b release-1.0<br><br>To see other repo init options, run <br>$ repo help init <br><br><b>Note:</b>
For all remaining Repo commands, the current working directory must either be the parent directory of .repo/ or a subdirectory of the parent directory.<br><br></div>
<h3>
sync
@@ -316,4 +317,3 @@ Documentation on specific tasks:
At intervals, you use git commit to save a snapshot of the staged files and a log message that describes the change.<br><br><i>Manifest</i>
<br>A manifest file that contains a list of repositories and a mapping of where the files from these repositories will be located within your working directory. When you synchronize your files, the files contained in the repositories that are listed in the manifest will be pulled into your working directory.</div>
</div>
</div>

View File

@@ -3,7 +3,7 @@ doc.type=source
@jd:body
<div>
<p>Thanks for your interest in Android! Here are some ways you can get involved
and help Google improve Android. For background on the Android project and our
and help us improve Android. For background on the Android project and our
goals, check out the <a href="{@docRoot}about/philosophy.html">Project
Philosophy page</a>.</p>
@@ -11,7 +11,7 @@ Philosophy page</a>.</p>
<p>One of the easiest and most effective ways you can help improve Android is
to file bugs. For more information, visit the <a
href="{@docRoot}source/report-bugs.html">Reporting Bugs</a> page.</p>
<p>Please note that we can't guarantee that any particular bug can be fixed in
<p>Please note that we can't guarantee that any particular bug will be fixed in
any particular release. To see what happens to your bug once you report it,
read <a href="{@docRoot}source/life-of-a-bug.html">Life of a Bug</a>.</p>
@@ -26,8 +26,10 @@ compatible Android devices, using the SDK.</p>
<h2>Contribute to the Code</h2>
<p>Code is King. We'd love to review any changes you submit, so please check
out the source, pick a bug or feature, and get coding.</p>
<p>You can get started with by learning about the <a
out the source, pick a bug or feature, and get coding. Note that the smaller
and more targetted your patch submissions, the easier it will be for us to
review them.</p>
<p>You can get started with Android by learning about the <a
href="{@docRoot}source/life-of-a-patch.html">Life of a Patch</a>, and by
learning about <code>git</code>, <code>repo</code>, and other tools using the
links to the left. If you need help along the way, you can join our <a

View File

@@ -4,18 +4,15 @@ doc.type=source
<div>
<p>The Android Open Source Project uses a few <a
href="http://www.opensource.org/">open source initiative</a> approved open
source licenses to enable availability of source code and to accept
contributions from individuals and corporations.</p>
source licenses for our software.</p>
<h2>Android Open Source Project license</h2>
<p>The preferred license for the Android Open Source Project is <a
href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>. Apache 2.0
is a commercial and open source friendly open source license. The majority of
the Android platform is licensed under the <a
href="http://www.apache.org/licenses/">Apache 2.0 license</a>. While the
project will strive to adhere to the preferred license, there may be
exceptions which will be handled on a case-by-case basis. For example, the
Linux kernel patches are under the GPLv2 license with system exceptions, which
can be found on <a
<p>The preferred license for the Android Open Source Project is the <a
href="http://www.apache.org/licenses/LICENSE-2.0">Apache Software License,
2.0</a> ("Apache 2.0"), and the majority of the Android software is licensed
with Apache 2.0. While the project will strive to adhere to the preferred
license, there may be exceptions which will be handled on a case-by-case
basis. For example, the Linux kernel patches are under the GPLv2 license with
system exceptions, which can be found on <a
href="http://www.kernel.org/pub/linux/kernel/COPYING">kernel.org</a>.
</p>
<h2>Contributor License Grants</h2>
@@ -25,15 +22,15 @@ Source Project will be required to complete, sign, and submit an <a
href="{@docRoot}source/cla-individual.html">Individual
Contributor License Grant</a>. The grant can be executed online through the <a
href="https://review.source.android.com/#settings,agreements">code review
tool</a>. The agreement clearly defines the terms under which intellectual
property has been contributed to the Android Open Source Project.This license
tool</a>. The grant clearly defines the terms under which intellectual
property has been contributed to the Android Open Source Project. This license
is for your protection as a contributor as well as the protection of the
project; it does not change your rights to use your own contributions for any
other purpose.</p>
<p>For a <b>corporation</b> (or other entity) that has assigned employees to
work on the Android Open Source Project, a <a
href="{@docRoot}source/cla-corporate.html">Corporate
Contributor License Grant</a> is available. This version of the Grant allows a
Contributor License Grant</a> is available. This version of the grant allows a
corporation to authorize contributions submitted by its designated employees
and to grant copyright and patent licenses. Note that a Corporate Contributor
License Grant does not remove the need for any developer to sign their own

View File

@@ -57,7 +57,7 @@ might have been reported via an internal bug-tracking system,
which is considered the "master" copy. (For instance, Google maintains one
such private issue tracker, intended primarily for bugs which contain
sensitive information which can't be revealed publicly.)</p></li>
<li><b>Assigned</b><li>Like <code>Unassigned</code>, but the bug has been
<li><b>Assigned</b><p>Like <code>Unassigned</code>, but the bug has been
actually assigned to a specific contributor to fix.</p></li>
</ul>
<p>Typically, a given bug will start in <code>Unassigned</code>, where it
@@ -77,8 +77,8 @@ determined to not require any action.</p>
<li><b>Spam</b><p>A kind soul sent us some delicious pork products, that we,
regrettably, do not want.</p></li>
<li><b>Question</b><p>Someone mistook the issue tracker for a help forum.
(This is not as uncommon as one might assume: many users whose native language
isn't English can make this mistake.)</p></li>
(This is not as uncommon as you might think: many users whose native language
isn't English misunderstand the site and make this mistake.)</p></li>
<li><b>Unreproducible</b><p>An AOSP contributor attempted to reproduce the
behavior described, and was unable to do so. This sometimes means that the bug
is legitimate but simply rare or difficult to reproduce, and sometimes means

View File

@@ -1,157 +0,0 @@
page.title=Android 1.0 Features
doc.type=source
@jd:body
<div><div><div><div>This page provides a high-level overview of Android 1.0
features. To see the code itself, you can either use the <a href="http://android.git.kernel.org/">GitWeb</a>
interface to view snapshots of the files, or you can <a
href="{@docRoot}source/download.html">download</a>
the source code onto your local machine.<br><br><b>Applications</b>
<br><br>The Android platform comes with a variety of applications written using the Java programming language:<br><ul><li><i>Home</i>
displays applications, widgets, and shortcuts. It also supports customizable wall paper.
</li>
<li><i>Phone</i>
supports regular telephony functions as well as call controls, conference calls, supplementary services, and easy integration with <i>Contacts</i>
.<br></li>
<li><i>Web Browser</i>
is a fully featured WebKit-based browser that supports HTML and XHTML.
</li>
<li><i>Email</i>
provides access to email servers commonly found on the Internet and supports POP3, IMAP4, and SMTP.
</li>
<li><i>Media Player</i>
enables managing, importing, and playing back content that has been encoded in various forms.<br></li>
<li><i>Alarm Clock, Calculator, Calendar, Camera, Contacts, IM, MMS, Settings,</i>
<i>Voice Dialer</i>
, and many other applications are also included in this release.<br></li>
</ul>
<b>Application framework</b>
<br><br></div>
<div>The Android Application Framework has been designed to provide a rich set of APIs for third-party application developers. For more information, visit the <a href="http://developer.android.com/guide/index.html">Android SDK developer guide</a>
.<b><br></b>
</div>
<div></div>
<div><b>Android runtime</b>
<b><br><br></b>
Android applications run on Dalvik, a custom virtual machine (VM) designed for embedded use. The Dalvik VM runs dex executable files, which are typically compiled from source code written in Java.<br><br></div>
<div>The dex executable format is designed to have these characteristics:<br><ul><li>Efficient on-device storage.
</li>
<li>Efficient runtime memory usage.
</li>
<li>Ease of interpretation.<br></li>
</ul>
Dalvik has the following runtime characteristics:
<ul><li>Efficient support for multiple concurrent VM processes, including amortized initialization and heavily shared memory.
</li>
<li>Optimized interpreter.
</li>
<li>Efficient linkage to low-level native code.
</li>
<li>A familiar and rich set of core library functionality. For a complete list of supported libraries, see <a href="http://developer.android.com/reference/packages.html">http://developer.android.com/reference/packages.html</a>
.
</li>
<li>Enhanced JDWP support, enabling easier debugging of multiple processes simultaneously.
</li>
<li>JNI support.
</li>
</ul>
<b>Native libraries <br></b>
<br>The Android platform makes use of many native libraries, including:<br><ul><li><i>Bionic</i>
, a custom libc implementation optimized for embedded systems.
</li>
<li>Graphics libraries for 2D and 3D (OpenGL ES 1.0) graphics support.<br></li>
<li>openCore to provide the bulk of Android's multimedia capability. It includes support for network streaming (HTTP and RTSP), as well as most of the codecs and media file parsers used by the system.<br></li>
<li>sqlite to support having a lightweight transactional data store.
</li>
<li>WebKit library to power Android's WebKit based full web browser.<br></li>
</ul>
<br><b>System software</b>
<b><br></b>
<br></div>
<div>About Android's operating system:
<ul><li>Based on Linux 2.6.25 for ARM.<br></li>
<li>Platform currently expects ARM V5T or better architecture. Support for earlier architectures could be added, but CPUs without an MMU would be difficult to support.
</li>
<li>A set of kernel enhancements are provided to support Android. The patches include alarm, ashmem, binder, power management, low memory killer, kernel degugger, and logger <b>.<br></b>
</li>
<li>While the platform is designed to be chipset agnostic, and will run on virtually any ARM-based Linux kernel environment, version 1.0 of the platform has been tested and verified on the MSM 7K chipsets <b>.</b>
Over time we expect to see support for other major chipsets.
Kernel patches for MSM based chipsets are also available.
</li>
<li>FAT32 file system is supported.
</li>
<li>Support for TCP/IP (TCP, UDP, etc).
</li>
</ul>
</div>
<div>A minimal reference bootloader for the supported chipset is provided. It is capable of booting Linux from RAM, debugger, and NAND Flash.<br></div>
<div><br>About Android's support for debugging:<br><ul><li>Debugging native code is supported via GDB (GNU Project Debugger) over USB.
</li>
<li>Debugging managed code is supported via any JDWP-compatible debugger over USB.
</li>
<li>Logging and crash logs supported for debugging.
</li>
</ul>
<b>Supported hardware <br></b>
<ul><li>The platform will run on almost on any ARM based Linux kernel environment.
</li>
<li>The platform requires a minimum of 128 MB of RAM and 256 MB ofFlash memory. AnOEM may want to support more Flash memory to make it possible to download more third-party applications to user devices.<br></li>
<li>The platform will interface with a baseband radio stack provided externally via a Radio Interface Layer (RIL).
</li>
<li>802.11 b/g Wi-Fi
</li>
<li>Standard USB interface, including USB 2.0
</li>
<li>Bluetooth 2.0 EDR (Enhanced Data Rate)
</li>
<li>Camera for still and video capture
</li>
<li>Removable storage
</li>
</ul>
<b>Supported display</b>
<br><ul><li>HVGA resolution <br></li>
<li>16 bit color depth <br></li>
<li>Landscape and portrait orientation, including dynamic runtime switching
</li>
<li>Finger-based touchscreen navigation
</li>
</ul>
<b>Supported keypads and buttons</b>
<br><ul><li>QWERTY
</li>
<li>5-way navigation
</li>
<li>Hardware buttons: Send, End, Home, Back, Menu</li>
<li>Power button
</li>
<li>Volume keys (up and down)
</li>
<li>Camera trigger button, including detection for both partial press (to focus) and full press (to actually take a picture)
</li>
</ul>
<b>Supported audio outputs</b>
<br><ul><li>Audio output via the headphone jack (mono and stereo)
</li>
<li>64 kbps Bluetooth audio supported</li>
</ul>
<b>Supported notifications</b>
<br><ul><li>LEDs
</li>
<li>Vibration
</li>
</ul>
<b>Supported radio and telephony features <br></b>
<ul><li>GPRS, EDGE, UMTS, HSDPA
</li>
<li>International roaming, SMS, MMS <br></li>
<li>Emergency call support <br></li>
<li>Supplementary Services for Telephony, for example call waiting and conference calling <br></li>
<li>Unstructured Supplementary Service Data (USSD)
</li>
<li>Reference Radio Interface Layer (RIL)
</li>
</ul>
</div>
</div>
</div>
</div>

View File

@@ -1,198 +0,0 @@
page.title=Android 1.5 Features
doc.type=source
@jd:body
<h3><b>Release features - Android 1.5</b>
</h3>
<div><div><div><div><b>Previous release highlights</b>
:<a href="{@docRoot}source/overview-1.0.html">Android 1.0</a>
<br><br>This page provides a high-level overview of the new features added to
Android 1.5. To see the code itself, you can either use the<a href="http://android.git.kernel.org/">GitWeb</a>
interface to view snapshots of the files, or you can<a
href="{@docRoot}source/download.html">download</a>
the source code onto your local machine. You can use<i>repo init -u</i>
git://android.git.kernel.org/platform/manifest.git<i>-b android-1.5</i>
to download the source code for Android 1.5.<br><br><b>User interface refinements:</b>
<br><ul><li>System-wide:
<ul><li>Refinement of all core UI elements
</li>
<li>Animated window transitions (off by default)
</li>
<li>Accelerometer-based application rotations
</li>
</ul>
</li>
<li>UI polish for:
<ul><li>In-call experience
</li>
<li>Contacts, Call log, and Favorites
</li>
<li>SMS MMS
</li>
<li>Browser
</li>
<li>Calendar
</li>
<li>Email
</li>
<li>Camera Gallery
</li>
<li>Application management
</li>
</ul>
</li>
</ul>
<div><b><br>Performance improvements:</b>
<br></div>
<ul><li>Faster Camera start-up and image capture
</li>
<li>Much faster acquisition of GPS location (powered by SUPL AGPS)
</li>
<li>Smoother page scrolling in Browser
</li>
</ul>
<br><b>Applications</b>
<br><ul><li>Camera Gallery
</li>
<ul><li>Video recording
</li>
<li>Video playback (MPEG-4 3GP formats)
</li>
</ul>
<li>Browser
</li>
<ul><li>Updated with latest Webkit browser Squirrelfish Javascript engines
</li>
<li>Copy 'n paste in browser
</li>
<li>Search within a page
</li>
<li>User-selectable text-encoding
</li>
<li>UI changes include:
</li>
<ul><li>Unified Go and Search box
</li>
<li>Tabbed bookmarks/history/most-visited screen
</li>
</ul>
</ul>
<li>Contacts
</li>
<ul><li>Shows user picture for Favorites
</li>
<li>Specific date/time stamp for events in call log
</li>
<li>One-touch access to a contact card from call log event
</li>
</ul>
</ul>
<b><br>Application framework</b>
<br><br></div>
<div><ul><li>On-screen soft keyboard
</li>
<ul><li>Works in both portrait and landscape orientation
</li>
<li>Support for user installation of 3rd party keyboards
</li>
<li>User dictionary for custom words
</li>
</ul>
<li>Home screen
</li>
<ul><li>Widgets
</li>
<ul><li>Bundled home screen widgets include: analog clock, calendar, music player, picture frame, and search
</li>
</ul>
<li>Live folders
</li>
</ul>
<li>UI framework
</li>
<ul><li>Framework for easier background/UI thread interaction
</li>
<li>New SlidingDrawer widget
</li>
<li>Horizontal ScrollView widget
</li>
</ul>
<li>Home Screen framework
</li>
<ul><li>APIs for creating secure home screen widgets
</li>
<li>APIs for populating live folders with custom content
</li>
</ul>
<li>Media framework
</li>
<ul><li>Raw audio recording and playback APIs
</li>
<li>Interactive MIDI playback engine
</li>
<li>Video recording APIs for developers (3GP format)
</li>
<li>Video and photo sharing Intents
</li>
<li>Media search Intent
</li>
</ul>
<li>Input Method framework
</li>
<ul><li>Text prediction engine
</li>
<li>Ability to provide downloadable IMEs to users
</li>
</ul>
<li>Speech recognition framework
</li>
<ul><li>Support for using speech recognition libraries via Intent
</li>
</ul>
<li>Misc API additions
</li>
<ul><li>LocationManager - Applications can get location change updates via Intent
</li>
<li>WebView - Touch start/end/move/cancel DOM event support
</li>
<li>SensorManager - redesigned sensor APIs
</li>
<li>GLSurfaceView - convenience framework for creating OpenGL applications
</li>
<li>Broadcast Intent for app update install succeeded - for smoother app upgrade experience
</li>
</ul>
</ul>
</div>
<div></div>
<div><br><b>System software</b>
<br><br></div>
<ul><li>New Linux kernel (version 2.6.27)
</li>
<li>SD card filesystem auto-checking and repair
</li>
<li>SIM Application Toolkit 1.0
</li>
</ul>
<div><b><br>Supported hardware<br></b>
<ul><li>Bluetooth</li>
<ul><li>Stereo Bluetooth support (A2DP and AVCRP profiles)
</li>
<li>Auto-pairing
</li>
<li>Improved handsfree experience
</li>
</ul>
</ul>
<br><b>Developer tools</b>
<br></div>
<div><ul><li>Support for multiple versions of Android in a single SDK installation
</li>
<li>Improved JUnit support in ADT
</li>
<li>Easier application performance profiling
</li>
</ul>
</div>
</div>
</div>
</div>

View File

@@ -1,93 +1,36 @@
page.title=Android 1.6 Platform Overview
page.title=Android 2.1 Platform
doc.type=source
@jd:body
<p>This page provides a high-level overview of the new features added to
Android 1.6. To see the code itself, you can either use the <a
href="http://android.git.kernel.org/">GitWeb</a>
interface to view snapshots of the files, or you can <a
href="{@docRoot}source/download.html">download</a>
the source code onto your local machine. You can use <code>repo init -u
git://android.git.kernel.org/platform/manifest.git -b android-1.6</code>
to download the source code for Android 1.6.</p>
<p><i>Note: platform overview information for Android 2.x has not yet been
published, since the <a
href="{@docRoot}compatibility/index.html">Compatibility Program</a> for
Android 2.x has not yet launched. When the Compatibilty Definition Document
for 2.x is released, this page will be updated to match.</i></p>
<p>Information about older Android releases is also available:<ul>
<li><a href="{@docRoot}source/overview-1.5.html">Android 1.5 Platform Overview</a></li>
<li><a href="{@docRoot}source/overview-1.0.html">Android 1.0 Platform Overview</a></li>
</ul></p>
<h2>User interface refinements</h2>
<h3>Quick Search Box for Android </h3>
<p>Android 1.6 includes a redesigned search framework that provides a quick, effective, and consistent way for users to search across multiple sources—such as browser bookmarks history, contacts, and the web—directly from the home screen.
</p>
<p><br></p>
<p>The system constantly learns which search results are more relevant based on what is clicked. So popular contacts or apps that have previously been picked will bubble up to the top when a user types the first few letters of a relevant query.
</p>
<p><br></p>
<p>The search framework also provides developers a way to easily expose relevant content from their applications in Quick Search Box.
</p>
<h3>Camera, Camcorder, and Gallery </h3>
<p>An updated user interface provides an integrated camera, camcorder, and gallery experience. Users can quickly toggle between still and video capture modes. Additionally, the gallery enables users to select multiple photos for deletion.<br></p>
<p><br></p>
<p>Android 1.6 also provides a much faster camera experience. Compared to the previous release, launching the camera is now 39% faster, and there is a 28% improvement in the time from completing one shot to the next.
</p>
<h3>VPN, 802.1x </h3>
<p>A new Virtual Private Network (VPN) control panel in Settings allows users to configure and connect to the following types of VPNs:
</p>
<ul><li>L2TP/IPSEC pre-shared key based VPN
</li>
<li>L2TP/IPsec certificate based VPN
</li>
<li>L2TP only VPN
</li>
<li>PPTP only VPN
</li>
</ul>
<h3>Battery usage indicator </h3>
<p>A new battery usage screen lets users see which apps and services are consuming battery power. If the user determines that a particular service or application is using too much power, they can take action to save the battery by adjusting settings, stopping the application, or uninstalling the application.
</p>
<h3>Accessibility </h3>
<p>Users will be able to download new accessibility services built on the new accessibility framework and enable them in Settings.
</p>
<h2>New Platform Technologies </h2>
<h3>Expanded Search Framework </h3>
<p>The Android search framework has been redesigned and expanded to provide third-party applications the opportunity to surface content from their applications in Quick Search Box, the global search tool. To do this, developers will need to make their app "searchable" and provide suggestions in response to user queries. To enable application search suggestions, users simply select each application from which they'd like to receive suggestions, under Searchable items in the Search settings.
</p>
<h3>Text-to-speech engine</h3>
<p>Android 1.6 features a multi-lingual speech synthesis engine called Pico. It allows any Android application to "speak" a string of text with an accent that matches the language. The engine supports the following languages: English (American and British accents), French, Italian, German and Spanish. If you're using a T-Mobile G1 or Dream device, you'll need to download the SpeechSynthesis Data Installer from Android Market, which includes the "voices" needed by the text-to-speech engine.
</p>
<h3>Gestures </h3>
<p>A new gestures framework provides application developers with a framework for creating, storing, loading, and recognizing gestures and associating them with specific actions.
</p>
<p>Developers can use the new GestureBuilder tool included in the Android 1.6 SDK to generate libraries of gestures to include with their application.
</p>
<h3>Accessibility </h3>
<p>Android 1.6 provides a new accessibility framework. With this framework, developers can create accessibility plugins that respond to user input, such as making a sound when a new window is shown, vibrating when navigating to the top of a list, and providing spoken feedback.
</p>
<h3>Expanded support for screen densities and resolutions </h3>
<p>Android 1.6 adds screen support that enables applications to be rendered properly on different display resolutions and densities. Developers can also specify the types of screens supported by their application.
</p>
<h3>Telephony support for CDMA </h3>
<p>Android 1.6 includes support for CDMA in the telephony stack.
</p>
<h3>New version of OpenCore </h3>
<p>Android 1.6 includes the updated OpenCore 2 media engine, which has:
</p>
<ul><li>Support for OpenMAX encoders
</li>
<li>Support for additional audio codecs in AuthorEngine
</li>
<li>Improved buffering model supports shared buffers allocated in the decoder
</li>
</ul>
<h3>2.6.29 Linux kernel </h3>
<p>Android 1.6 upgrades the Linux kernel from 2.6.27 to 2.6.29.
</p>
<h2>New Framework APIs</h2>
<p>For a detailed overview of new APIs, see the <a
href="http://developer.android.com/sdk/android-1.6.html#api-changes">Version
Notes</a>. For a complete report of all API changes, see the <a
href="http://developer.android.com/sdk/api_diff/4/changes.html">API
Differences Report</a>.</p>
<p>Our sister site, <a
href="http://developer.android.com/">http://developer.android.com/</a>,
includes feature overviews of the various Android platform versions.
The links below will take you to developer.android.com where you can view this
information.</p>
<p>The links below will navigate you away from this site.</p>
<h3><a href="http://developer.android.com/sdk/android-2.3-highlights.html">Android 2.3</a></h3>
<p>Android 2.3 corresponded to the "Gingerbread" milestone branch, and has an API level of 9.</p>
<h3><a href="http://developer.android.com/sdk/android-2.2-highlights.html">Android 2.2</a></h3>
<p>Android 2.2 corresponded to the "FroYo" milestone branch, and has an API level of 8.</p>
<h3><a href="http://developer.android.com/sdk/android-2.0-highlights.html">Android 2.1</a></h3>
<p>Android 2.1 corresponded to the "Eclair" milestone branch, and has an API level of
7.</p>
<p>The Eclair branch was also used for 2.0 and 2.0.1; however, both of those
releases were quickly obsoleted by the version 2.1 Eclair release. As Android
2.1 includes key bug fixes and improvements not present in 2.0/2.0.1, only
Android 2.1 should be used for new devices. As there is no compatibility
program for 2.0 or 2.0.1, the officially compatible Eclair-based release is Android
2.1. (The linked document refers to Android 2.0, because there were
no new platform features added in 2.1.)</p>
<h3><a href="http://developer.android.com/sdk/android-1.6-highlights.html">Android 1.6</a></h3>
<p>Android 1.6 corresponded to the "Donut" milestone branch, and has an API level of
4.</p>
<h3><a href="http://developer.android.com/sdk/android-1.5-highlights.html">Android 1.5</a></h3>
<p>Android 1.5 corresponded to the "Cupcake" milestone branch, and has an API
level of 3.</p>
<h3><a href="http://developer.android.com/sdk/android-1.1.html">Android 1.1</a></h3>
<p>Android 1.1 has an API level of 2. Android 1.1 was known as
"Petit Four" internally, though this name was not used officially.</p>
<h3>Android 1.0</h3>
<p>was the first release of Android, and has an API
level of 1. Since it was the first released version of Android, no platform
highlights were prepared for this release.</p>

View File

@@ -77,7 +77,7 @@ import android.util.Log;
public class TestObjectNull extends Activity {
/** Called when the activity is first created. */
@Override
&#64;Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);

View File

@@ -15,22 +15,22 @@ href="{@docRoot}source/index.html">Get Involved</a>.</p>
<h2>Contributor</h2>
<p>A "Contributor" is anyone making contributions to the AOSP source code,
including both employees of Google or other companies, as well as
external developers who are contributing to Android on their own behalf.
There is no distinction between Contributors who are employed by
Google, and those who are not: all engineers use the same git/gerrit tools,
follow the same code review process, and are subject to the same requirements
on code style and so on.</p>
including both employees of Google or other companies, as well as external
developers who are contributing to Android on their own behalf. There is no
distinction between Contributors who are employed by Google, and those who are
not: all engineers use the same tools (<code>git</code>, <code>repo</code>,
and <code>gerrit</code>), follow the same code review process, and are subject
to the same requirements on code style and so on.</p>
<p/>
<h2>Developer</h2>
<p>A "Developer" is an engineer writing applications that run on Android
devices. There is, of course, no difference in skillset between a "Developer"
and a "Contributor"; AOSP simply uses "Developer" to help identify our audience.
Since the key purpose of Android is to cultivate an open development platform,
"Developers" are one of the key customers of the Android platform. As such, we
talk about them a lot, though this isn't technically a separate role in the
AOSP <i>per se.</i></p>
and a "Contributor", but AOSP uses "Developer" to distinguish between
engineers using the platform and those contributing to it. Developers are
(along with end users) the "customers" of the platform that the Contributors
create. As such, we talk about Developers a lot, though this isn't technically
a separate role in the AOSP <i>per se.</i></p>
<p/>
<h2>Verifier</h2>
@@ -62,12 +62,12 @@ responsible for the following:</p>
releases.</li>
<li>Designate Verifiers and Approvers for submitted patches.</li>
<li>Be fair and unbiased while reviewing changes. Accept or reject patches
based on technical merit and alignment with the Android platform.</li>
based on technical merit and alignment with the Android strategy.</li>
<li>Review changes in a timely manner and make best efforts to communicate
when changes are not accepted.</li>
<li>Optionally maintain a web site for the project for information and
documents specific to the project.</li>
<li>Act as a facilitator in resolving technical conflicts.</li>
<li>Be the public face for the project and the go-to person for questions
<li>Be a public face for the project and the go-to person for questions
related to the project.</li>
</ul>

View File

@@ -1,6 +1,7 @@
page.title=Android Contributors' Workflow
doc.type=source
@jd:body
<div>
<br>This page describes how to record changes to the Android files on your local client, upload those changes to the code-review server, and use Gerrit to track changes.<br><h2>
Prerequisites</h2>
Before you follow the instructions on this page, you will need to set up your
@@ -14,6 +15,9 @@ href="{@docRoot}source/life-of-a-patch.html">Life of a Patch</a>.</li>
Open Source community, see <a href="{@docRoot}source/roles.html">Project roles</a>.</li>
<li>If you plan to contribute code to the Android platform, be sure to read
the <a href="{@docRoot}source/licenses.html">AOSP's licensing information</a>.</li>
<li>Note that changes to some of the upstream projects used by Android should be
made directly to that project, as described in
<a href="#upstream-projects">Upstream Projects</a>.
</ul>
<h2>
Working with the code</h2>
@@ -129,8 +133,8 @@ If you are assigned to be the Verifier for a change, you need to do the followin
</ul>
<h3>
Viewing diffs and comments</h3>
To open the details of the change within Gerrit, click on the "Id number" or "Subject" of a change. To compare the established code with the updated code, click the file name under "Side-by-side diffs."<br></div>
<div><h3>
To open the details of the change within Gerrit, click on the "Id number" or "Subject" of a change. To compare the established code with the updated code, click the file name under "Side-by-side diffs."<br>
<h3>
Adding comments</h3>
Anyone in the community can use Gerrit to add inline comments to code submissions. A good comment will be relevant to the line or section of code to which it is attached in Gerrit. It might be a short and constructive suggestion about how a line of code could be improved, or it might be an explanation from the author about why the code makes sense the way it is.<br><br>To add an inline comment, double-click the relevant line of the code and write your comment in the text box that opens. When you click Save, only you can see your comment.<br><br>To publish your comments so that others using Gerrit will be able to see them, click the Publish Comments button. Your comments will be emailed to all relevant parties for this change, including the change owner, the patch set uploader (if different from the owner), and all current reviewers.<br><br><h3>
After a submission is approved</h3>
@@ -142,6 +146,27 @@ who plays them, see <a href="{@docRoot}source/roles.html">Project roles</a>
.<br><br><h2>
Using GitWeb to track patch histories</h2>
To view snapshots of the files that are in the public Android repositories and view file histories, use the <a href="http://android.git.kernel.org/">Android instance of GitWeb</a>
.<br></div>
</div>
.<br>
<h2><a name="upstream-projects"></a>Upstream Projects</h2>
Android makes use of a number of other open-source projects, such as the Linux
kernel and WebKit, as described in
<a href="{@docRoot}source/code-lines.html">Branches &amp Releases</a>. For the
upstream projects detailed below, changes should be made directly upstream. Such
changes will be incorporated into the Android tree as part of the usual process
of pulling these projects.
<h3>WebKit</h3>
All changes to the WebKit project at <code>external/webkit</code> should be made
upstream at <a href="http://www.webkit.org">http://www.webkit.org</a>. The
process begins by filing a WebKit bug. This bug should use <code>Android</code>
for the <code>Platform</code> and <code>OS</code> fields only if the bug is
specific to Android. Bugs are far more likely to receive the reviewers'
attention once a proposed fix is added and tests are included. See
<a href="http://webkit.org/coding/contributing.html">Contributing Code to
WebKit</a> for details.
<h3>V8</h3>
All changes to the V8 project at <code>external/v8</code> should be submitted
upstream at
<a href="http://code.google.com/p/v8">http://code.google.com/p/v8</a>. See
<a href="http://code.google.com/p/v8/wiki/Contributing">Contributing to V8</a>
for details.
</div>

View File

@@ -95,58 +95,6 @@ Adding apps to the build path
<p>When you're done, the "source folder" path in the list should look like android/packages/apps/<i>YourAppName</i>
/src. Depending on which app(s) you include, you may also need to include othersrc/main/java directories under android/dalvik/libcore. Do this if you find you cannot build with the default set.
</p>
<h4>
Eclipse setup to work on developer tools
</h4>
<p>To work on Java developer tools, the principle is the same, except you specify /path/to/tool when using the option "Create project from existing source."
</p>
<p>Once the project is created, you need to set up the Java Build Path:
</p>
<ol><li>Select the project you just created.
</li>
<li>Project Properties
</li>
<li>Select "Java Build Path" from the left-hand menu.
</li>
<li>Choose the "Source" tab.
</li>
<li>Expand the single <i>toolname</i>
/src entry.
</li>
<li>Double click the "Excluded: (none)" item.
</li>
<li>Add to the excluded (bottom) list: "MakeFile" and "resources/".
</li>
<li>Close the dialog.
</li>
<li>Back in the "Source" tab, click "Add Folder...", and add <i>toolname</i>
/src/resources.
</li>
<li>Click OK.
</li>
</ol>
<h4>
Eclipse setup to work on DDMS <br></h4>
<p>For DDMS, you will need to make a project for
</p>
<ol><li>development/tools/ddms/libs/ddmlib
</li>
<li>development/tools/ddms/libs/ddmuilib
</li>
<li>development/tools/ddms/app
</li>
</ol>
<p>Each project will need to reference the ones before it ("ddmuilib" references "ddmlib", and "app" references both of those). To do this:
</p>
<ol><li>Make sure you have all 3 projects defined.
</li>
<li>Right click on a project, "Build Path" "Configure Build Path..."
</li>
<li>Choose the "Project" tab.
</li>
<li>Click "Add..." and check the required projects.
</li>
</ol>
<h2><a>Eclipse formatting</a>
</h2>
<p>You can import files in development/ide/eclipse to make Eclipse
@@ -189,15 +137,6 @@ and "Organize Imports &rsaquo; Import" to import android.importorder.
<pre>Ctrl-Shift-o = Organize imports <br>Ctrl-Shift-t = load class by name <br>Ctrl-Shift-r = load non-class resource by name <br>Ctrl-1 = quick fix <br>Ctrl-e = Recently viewed files <br>Ctrl-space = auto complete <br>Shift-Alt-r = refactor:rename <br>Shift-Alt-v = refactor:move <br></pre>
<h2><a>Useful Plugins</a>
</h2>
<p>Eclipse has a plugin architecture that enables third parties to extend the IDE. Here are some plugins that make Eclipse easier to use for writing Android software:
</p>
<ul><li><a href="http://andrei.gmxhome.de/anyedit/">AnyEdit</a>
- automatically fix whitespace issues when saving files. Can convert tabs to spaces, strip blanks at end-of-line, and ensure the last line of the file has an end-of-line character.
</li>
</ul>
<h2><a>"Eclipse is not working correctly, what should I do?"</a>
</h2>
<p>Make sure: