Merge "docs: fix broken links in .jd docs" into ics-mr1

This commit is contained in:
Scott Main
2012-01-10 12:53:42 -08:00
committed by Android (Google) Code Review
27 changed files with 98 additions and 114 deletions

View File

@@ -154,7 +154,7 @@ Highlights</a></td></tr>
<td>2</td> <td>2</td>
<td>{@link android.os.Build.VERSION_CODES#BASE_1_1}</td><td></td></tr> <td>{@link android.os.Build.VERSION_CODES#BASE_1_1}</td><td></td></tr>
<tr><td><a href="{@docRoot}sdk/android-1.0.html">Android 1.0</td> <tr><td>Android 1.0</td>
<td>1</td> <td>1</td>
<td>{@link android.os.Build.VERSION_CODES#BASE}</td> <td>{@link android.os.Build.VERSION_CODES#BASE}</td>
<td></td></tr> <td></td></tr>

View File

@@ -79,10 +79,8 @@ located in <strong>Settings > Developer options</strong>).</p>
<a href="{@docRoot}sdk/oem-usb.html">OEM USB Drivers</a> document.</li> <a href="{@docRoot}sdk/oem-usb.html">OEM USB Drivers</a> document.</li>
<li>If you're developing on Mac OS X, it just works. Skip this step.</li> <li>If you're developing on Mac OS X, it just works. Skip this step.</li>
<li>If you're developing on Ubuntu Linux, you need to add a <a <li>If you're developing on Ubuntu Linux, you need to add a
href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html"> <code>udev</code> rules file that contains a USB configuration for each type of device
<code>udev</code></a>
rules file that contains a USB configuration for each type of device
you want to use for development. In the rules file, each device manufacturer you want to use for development. In the rules file, each device manufacturer
is identified by a unique vendor ID, as specified by the is identified by a unique vendor ID, as specified by the
<code>ATTR{idVendor}</code> property. For a list of vendor IDs, see <a <code>ATTR{idVendor}</code> property. For a list of vendor IDs, see <a

View File

@@ -480,7 +480,7 @@ on disk images, use <code>-help-disk-images</code>.</p>
<td>Enable the root shell (as in <code>-shell</code> and specify the QEMU character <td>Enable the root shell (as in <code>-shell</code> and specify the QEMU character
device to use for communication with the shell.</td> device to use for communication with the shell.</td>
<td>&lt;device&gt; must be a QEMU device type. See the documentation for '-serial <em>dev</em>' at <td>&lt;device&gt; must be a QEMU device type. See the documentation for '-serial <em>dev</em>' at
<a href="http://www.nongnu.org/qemu/qemu-doc.html#SEC10">http://www.bellard.org/qemu/qemu-doc.html#SEC10</a> <a href="http://wiki.qemu.org/download/qemu-doc.html">http://wiki.qemu.org/download/qemu-doc.html</a>
for a list of device types. for a list of device types.
<p>Here are some examples: </p> <p>Here are some examples: </p>
@@ -619,7 +619,7 @@ scale in direct relationship with &lt;delay&gt; values.</p>
<td>Use this command to emulate an NMEA-compatible GPS unit connected to <td>Use this command to emulate an NMEA-compatible GPS unit connected to
an external character device or socket. The format of <code>&lt;device&gt;</code> must be QEMU-specific an external character device or socket. The format of <code>&lt;device&gt;</code> must be QEMU-specific
serial device specification. See the documentation for 'serial -dev' at serial device specification. See the documentation for 'serial -dev' at
<a href="http://www.bellard.org/qemu/qemu-doc.html#SEC10">http://www.bellard.org/qemu/qemu-doc.html#SEC10</a>. <a href="http://wiki.qemu.org/download/qemu-doc.html">http://wiki.qemu.org/download/qemu-doc.html</a>.
</td> </td>
</tr> </tr>
<tr> <tr>
@@ -638,7 +638,7 @@ scale in direct relationship with &lt;delay&gt; values.</p>
<td>Redirect radio mode to the specified character device.</td> <td>Redirect radio mode to the specified character device.</td>
<td>The format of <code>&lt;device&gt;</code> must be QEMU-specific <td>The format of <code>&lt;device&gt;</code> must be QEMU-specific
serial device specification. See the documentation for 'serial -dev' at serial device specification. See the documentation for 'serial -dev' at
<a href="http://www.bellard.org/qemu/qemu-doc.html#SEC10">http://www.bellard.org/qemu/qemu-doc.html#SEC10</a>. <a href="http://wiki.qemu.org/download/qemu-doc.html">http://wiki.qemu.org/download/qemu-doc.html</a>.
</td> </td>
</tr> </tr>
<tr> <tr>

View File

@@ -46,7 +46,7 @@ android:targetSdkVersion}</a> set to {@code "4"} or higher, then this document i
default, an application written for Android 1.5 or below that does not set the <a default, an application written for Android 1.5 or below that does not set the <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code
android:targetSdkVersion}</a> set to {@code "4"} or higher runs in <a android:targetSdkVersion}</a> set to {@code "4"} or higher runs in <a
href="screen-compat-mode">screen compatibility mode</a> when on a device with a screen larger than href="screen-compat-mode.html">screen compatibility mode</a> when on a device with a screen larger than
the the
<em>normal</em> screen size (basically, the system displays the application in a small window <em>normal</em> screen size (basically, the system displays the application in a small window
that is roughly the size of the normal screen size).</p> that is roughly the size of the normal screen size).</p>

View File

@@ -126,8 +126,8 @@ applications.</p>
<p>Use of <a <p>Use of <a
href="{@docRoot}reference/android/content/Context.html#MODE_WORLD_WRITEABLE"> href="{@docRoot}reference/android/content/Context.html#MODE_WORLD_WRITEABLE">
world writable</a> or <a world writable</a> or <a
href="{@docRoot}reference/android/content/Context.html#MODE_WORLD_READABLE href="{@docRoot}reference/android/content/Context.html#MODE_WORLD_READABLE">world
">world readable</a> files for IPC is discouraged because it does not provide readable</a> files for IPC is discouraged because it does not provide
the ability to limit data access to particular applications, nor does it the ability to limit data access to particular applications, nor does it
provide any control on data format. As an alternative, you might consider using provide any control on data format. As an alternative, you might consider using
a ContentProvider which provides read and write permissions, and can make a ContentProvider which provides read and write permissions, and can make
@@ -199,10 +199,10 @@ ContentProvider</a></code>.</p>
<p>ContentProviders can also provide more granular access by declaring the <a <p>ContentProviders can also provide more granular access by declaring the <a
href="{@docRoot}guide/topics/manifest/provider-element.html#gprmsn"> href="{@docRoot}guide/topics/manifest/provider-element.html#gprmsn">
grantUriPermissions</a> element and using the <code><a grantUriPermissions</a> element and using the <code><a
href="{@docRoot}reference/android/content/Intent.html#FLAG_GRANT_READ_URI_PERMIS href="{@docRoot}reference/android/content/Intent.html#FLAG_GRANT_READ_URI_PERMISSION">FLAG_GRANT_READ_URI_PERMISSION</a></code>
SION">FLAG_GRANT_READ_URI_PERMISSION</a></code> and <code><a and <code><a
href="{@docRoot}reference/android/content/Intent.html#FLAG_GRANT_WRITE_URI_PERMI href="{@docRoot}reference/android/content/Intent.html#FLAG_GRANT_WRITE_URI_PERMISSION">FLAG_GRANT_WRITE_URI_PERMISSION</a></code>
SSION">FLAG_GRANT_WRITE_URI_PERMISSION</a></code> flags in the Intent object flags in the Intent object
that activates the component. The scope of these permissions can be further that activates the component. The scope of these permissions can be further
limited by the <code><a limited by the <code><a
href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html"> href="{@docRoot}guide/topics/manifest/grant-uri-permission-element.html">
@@ -211,14 +211,9 @@ grant-uri-permission element</a></code>.</p>
<p>When accessing a <code> <p>When accessing a <code>
<a href="{@docRoot}reference/android/content/ContentProvider.html"> <a href="{@docRoot}reference/android/content/ContentProvider.html">
ContentProvider</a></code>, use parameterized query methods such as <code> ContentProvider</a></code>, use parameterized query methods such as <code>
<a href="{@docRoot}reference/android/content/ContentProvider.html#query(android.net <a href="{@docRoot}reference/android/content/ContentProvider.html#query(android.net.Uri,%20java.lang.String[],%20java.lang.String,%20java.lang.String[],%20java.lang.String)">query()</a></code>, <code><a
.Uri,%20java.lang.String[],%20java.lang.String,%20java.lang.String[],%20java.lan href="{@docRoot}reference/android/content/ContentProvider.html#update(android.net.Uri,%20android.content.ContentValues,%20java.lang.String,%20java.lang.String[])">update()</a></code>, and <code><a
g.String)">query()</a></code>, <code><a href="{@docRoot}reference/android/content/ContentProvider.html#delete(android.net.Uri,%20java.lang.String,%20java.lang.String[])">delete()</a></code> to avoid
href="{@docRoot}reference/android/content/ContentProvider.html#update(android.ne
t.Uri,%20android.content.ContentValues,%20java.lang.String,%20java.lang.String[]
)">update()</a></code>, and <code><a
href="{@docRoot}reference/android/content/ContentProvider.html#delete(android.ne
t.Uri,%20java.lang.String,%20java.lang.String[])">delete()</a></code> to avoid
potential <a href="http://en.wikipedia.org/wiki/SQL_injection">SQL potential <a href="http://en.wikipedia.org/wiki/SQL_injection">SQL
Injection</a> from untrusted data. Note that using parameterized methods is not Injection</a> from untrusted data. Note that using parameterized methods is not
sufficient if the <code>selection</code> is built by concatenating user data sufficient if the <code>selection</code> is built by concatenating user data
@@ -249,8 +244,9 @@ href="{@docRoot}reference/android/R.styleable.html#AndroidManifestActivity">
Activities</a>, and <a Activities</a>, and <a
href="{@docRoot}reference/android/R.styleable.html#AndroidManifestService"> href="{@docRoot}reference/android/R.styleable.html#AndroidManifestService">
Services</a> are all declared in the application manifest. If your IPC mechanism is Services</a> are all declared in the application manifest. If your IPC mechanism is
not intended for use by other applications, set the android:exported property not intended for use by other applications, set the <a
to false. This is useful for applications that consist of multiple processes href="{@docRoot}guide/topics/manifest/service-element.html#exported">{@code android:exported}</a>
property to false. This is useful for applications that consist of multiple processes
within the same UID, or if you decide late in development that you do not within the same UID, or if you decide late in development that you do not
actually want to expose functionality as IPC but you dont want to rewrite actually want to expose functionality as IPC but you dont want to rewrite
the code.</p> the code.</p>
@@ -276,11 +272,10 @@ activity.</p>
<p>Intents are the preferred mechanism for asynchronous IPC in Android. <p>Intents are the preferred mechanism for asynchronous IPC in Android.
Depending on your application requirements, you might use <code><a Depending on your application requirements, you might use <code><a
href="{@docRoot}reference/android/content/Context.html#sendBroadcast(android.con href="{@docRoot}reference/android/content/Context.html#sendBroadcast(android.content.Intent)">sendBroadcast()</a></code>,
tent.Intent)">sendBroadcast()</a></code>, <code><a <code><a
href="{@docRoot}reference/android/content/Context.html#sendOrderedBroadcast(andr href="{@docRoot}reference/android/content/Context.html#sendOrderedBroadcast(android.content.Intent,%20java.lang.String)">sendOrderedBroadcast()</a></code>,
oid.content.Intent,%20java.lang.String)">sendOrderedBroadcast()</a></code>, or or direct an intent to a specific application component.</p>
direct an intent to a specific application component.</p>
<p>Note that ordered broadcasts can be “consumed” by a recipient, so they <p>Note that ordered broadcasts can be “consumed” by a recipient, so they
may not be delivered to all applications. If you are sending an Intent where may not be delivered to all applications. If you are sending an Intent where
@@ -311,14 +306,13 @@ and/or access controls on a specific binder interface, those controls must be
explicitly added as code in the interface.</p> explicitly added as code in the interface.</p>
<p>If providing an interface that does require access controls, use <code><a <p>If providing an interface that does require access controls, use <code><a
href="{@docRoot}reference/android/content/Context.html#checkCallingPermission(ja href="{@docRoot}reference/android/content/Context.html#checkCallingPermission(java.lang.String)">checkCallingPermission()</a></code>
va.lang.String)">checkCallingPermission()</a></code> to verify whether the to verify whether the
caller of the Binder has a required permission. This is especially important caller of the Binder has a required permission. This is especially important
before accessing a Service on behalf of the caller, as the identify of your before accessing a Service on behalf of the caller, as the identify of your
application is passed to other interfaces. If invoking an interface provided application is passed to other interfaces. If invoking an interface provided
by a Service, the <code><a by a Service, the <code><a
href="{@docRoot}reference/android/content/Context.html#bindService(android.conte href="{@docRoot}reference/android/content/Context.html#bindService(android.content.Intent,%20android.content.ServiceConnection,%20int)">bindService()</a></code>
nt.Intent,%20android.content.ServiceConnection,%20int)">bindService()</a></code>
invocation may fail if you do not have permission to access the given Service. invocation may fail if you do not have permission to access the given Service.
If calling an interface provided locally by your own application, it may be If calling an interface provided locally by your own application, it may be
useful to use the <code><a useful to use the <code><a
@@ -332,14 +326,14 @@ an intent.</p>
<p>By default, receivers are exported and can be invoked by any other <p>By default, receivers are exported and can be invoked by any other
application. If your <code><a application. If your <code><a
href={@docRoot}reference/android/content/BroadcastReceiver.html"> href="{@docRoot}reference/android/content/BroadcastReceiver.html">
BroadcastReceivers</a></code> is intended for use by other applications, you BroadcastReceivers</a></code> is intended for use by other applications, you
may want to apply security permissions to receivers using the <code><a may want to apply security permissions to receivers using the <code><a
href="{@docRoot}reference/android/R.styleable.html#AndroidManifestReceiver"> href="{@docRoot}guide/topics/manifest/receiver-element.html">
&lt;receiver&gt;</a></code> element within the application manifest. This will &lt;receiver&gt;</a></code> element within the application manifest. This will
prevent applications without appropriate permissions from sending an intent to prevent applications without appropriate permissions from sending an intent to
the <code><a the <code><a
href={@docRoot}reference/android/content/BroadcastReceiver.html"> href="{@docRoot}reference/android/content/BroadcastReceiver.html">
BroadcastReceivers</a></code>.</p> BroadcastReceivers</a></code>.</p>
<h3>Using Services</h3> <h3>Using Services</h3>
@@ -349,19 +343,21 @@ use. Each service class must have a corresponding <service> declaration in its
package's AndroidManifest.xml.</p> package's AndroidManifest.xml.</p>
<p>By default, Services are exported and can be invoked by any other <p>By default, Services are exported and can be invoked by any other
application. Services can be protected using the android:permission attribute application. Services can be protected using the <a
href="{@docRoot}guide/topics/manifest/service-element.html#prmsn">{@code android:permission}</a>
attribute
within the manifests <code><a within the manifests <code><a
href="{@docRoot}reference/android/R.styleable.html#AndroidManifestService"> href="{@docRoot}guide/topics/manifest/service-element.html">
&lt;service&gt;</a></code> tag. By doing so, other applications will need to declare &lt;service&gt;</a></code> tag. By doing so, other applications will need to declare
a corresponding <code><a a corresponding <code><a
href="{@docRoot}reference/android/R.styleable.html#AndroidManifestService_permis href="{@docRoot}guide/topics/manifest/uses-permission-element.html">&lt;uses-permission&gt;</a>
sion">&lt;uses-permission&gt;</a></code> element in their own manifest to be </code> element in their own manifest to be
able to start, stop, or bind to the service.</p> able to start, stop, or bind to the service.</p>
<p>A Service can protect individual IPC calls into it with permissions, by <p>A Service can protect individual IPC calls into it with permissions, by
calling <code><a calling <code><a
href="{@docRoot}reference/android/content/Context.html#checkCallingPermission(ja href="{@docRoot}reference/android/content/Context.html#checkCallingPermission(java.lang.String)">checkCallingPermission()</a></code>
va.lang.String)">checkCallingPermission()</a></code>before executing before executing
the implementation of that call. We generally recommend using the the implementation of that call. We generally recommend using the
declarative permissions in the manifest, since those are less prone to declarative permissions in the manifest, since those are less prone to
oversight.</p> oversight.</p>
@@ -376,9 +372,9 @@ Service to handle IPC, since this modular approach reduces the risk of exposing
functionality that is not intended for use by other applications.</p> functionality that is not intended for use by other applications.</p>
<p>If you do expose an Activity for purposes of IPC, the <code><a <p>If you do expose an Activity for purposes of IPC, the <code><a
href="{@docRoot}reference/android/R.styleable.html#AndroidManifestActivity_permi href="{@docRoot}guide/topics/manifest/activity-element.html#prmsn">android:permission</a></code>
ssion">android:permission</a></code> attribute in the <code><a attribute in the <code><a
href="{@docRoot}reference/android/R.styleable.html#AndroidManifestActivity"> href="{@docRoot}guide/topics/manifest/activity-element.html">
&lt;activity&gt;</a></code> declaration in the application manifest can be used to &lt;activity&gt;</a></code> declaration in the application manifest can be used to
restrict access to only those applications which have the stated restrict access to only those applications which have the stated
permissions.</p> permissions.</p>
@@ -432,8 +428,8 @@ rkeley.edu/~afelt/felt_usenixsec2011.pdf</a></p>
<p>Generally, you should strive to create as few permissions as possible while <p>Generally, you should strive to create as few permissions as possible while
satisfying your security requirements. Creating a new permission is relatively satisfying your security requirements. Creating a new permission is relatively
uncommon for most applications, since <a uncommon for most applications, since <a
href="{@docRoot}reference/android/Manifest.permission.html"> href="{@docRoot}reference/android/Manifest.permission.html">system-defined
system-defined permissions</a> cover many situations. Where appropriate, permissions</a> cover many situations. Where appropriate,
perform access checks using existing permissions.</p> perform access checks using existing permissions.</p>
<p>If you must create a new permission, consider whether you can accomplish <p>If you must create a new permission, consider whether you can accomplish
@@ -560,17 +556,14 @@ href="{@docRoot}reference/android/webkit/WebView.html">WebView</a></code> does
not execute JavaScript so cross-site-scripting is not possible.</p> not execute JavaScript so cross-site-scripting is not possible.</p>
<p>Use <code><a <p>Use <code><a
href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(jav href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code> with
a.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code> with
particular care because it allows JavaScript to invoke operations that are particular care because it allows JavaScript to invoke operations that are
normally reserved for Android applications. Only expose <code><a normally reserved for Android applications. Only expose <code><a
href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(jav href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code> to
a.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code> to
sources from which all input is trustworthy. If untrusted input is allowed, sources from which all input is trustworthy. If untrusted input is allowed,
untrusted JavaScript may be able to invoke Android methods. In general, we untrusted JavaScript may be able to invoke Android methods. In general, we
recommend only exposing <code><a recommend only exposing <code><a
href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(jav href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code> to
a.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code> to
JavaScript that is contained within your application APK.</p> JavaScript that is contained within your application APK.</p>
<p>Do not trust information downloaded over HTTP, use HTTPS instead. Even if <p>Do not trust information downloaded over HTTP, use HTTPS instead. Even if
@@ -578,13 +571,11 @@ you are connecting only to a single website that you trust or control, HTTP is
subject to <a subject to <a
href="http://en.wikipedia.org/wiki/Man-in-the-middle_attack">MiTM</a> attacks href="http://en.wikipedia.org/wiki/Man-in-the-middle_attack">MiTM</a> attacks
and interception of data. Sensitive capabilities using <code><a and interception of data. Sensitive capabilities using <code><a
href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(jav href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code> should
a.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code> should
not ever be exposed to unverified script downloaded over HTTP. Note that even not ever be exposed to unverified script downloaded over HTTP. Note that even
with the use of HTTPS, with the use of HTTPS,
<code><a <code><a
href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(jav href="{@docRoot}reference/android/webkit/WebView.html#addJavascriptInterface(java.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code>
a.lang.Object,%20java.lang.String)">addJavaScriptInterface()</a></code>
increases the attack surface of your application to include the server increases the attack surface of your application to include the server
infrastructure and all CAs trusted by the Android-powered device.</p> infrastructure and all CAs trusted by the Android-powered device.</p>
@@ -683,8 +674,7 @@ discussed in the Requesting Permissions section.</p>
<p>If a GUID is required, create a large, unique number and store it. Do not <p>If a GUID is required, create a large, unique number and store it. Do not
use phone identifiers such as the phone number or IMEI which may be associated use phone identifiers such as the phone number or IMEI which may be associated
with personal information. This topic is discussed in more detail in the <a with personal information. This topic is discussed in more detail in the <a
href="http://android-developers.blogspot.com/2011/03/identifying-app-installatio href="http://android-developers.blogspot.com/2011/03/identifying-app-installations.html">Android Developer Blog</a>.</p>
ns.html">Android Developer Blog</a>.</p>
<p>Application developers should be careful writing to on-device logs. <p>Application developers should be careful writing to on-device logs.
In Android, logs are a shared resource, and are available In Android, logs are a shared resource, and are available
@@ -724,9 +714,8 @@ credentials to the wrong application.</p>
<p>If credentials are to be used only by applications that you create, then you <p>If credentials are to be used only by applications that you create, then you
can verify the application which accesses the <code><a can verify the application which accesses the <code><a
href="{@docRoot}reference/android/accounts/AccountManager.html"> href="{@docRoot}reference/android/accounts/AccountManager.html">
AccountManager</a></code> using <code><a href="<code><a AccountManager</a></code> using <code><a
href="{@docRoot}h/reference/android/content/pm/PackageManager.html#checkSignatur href="{@docRoot}reference/android/content/pm/PackageManager.html#checkSignatures(java.lang.String,%20java.lang.String)">checkSignature()</a></code>.
es(java.lang.String,%20java.lang.String)">checkSignature()</a></code>.
Alternatively, if only one application will use the credential, you might use a Alternatively, if only one application will use the credential, you might use a
<code><a <code><a
href={@docRoot}reference/java/security/KeyStore.html">KeyStore</a></code> for href={@docRoot}reference/java/security/KeyStore.html">KeyStore</a></code> for
@@ -756,15 +745,15 @@ RSA provided in the <code><a
href="{@docRoot}reference/javax/crypto/Cipher.html">Cipher</a></code> class.</p> href="{@docRoot}reference/javax/crypto/Cipher.html">Cipher</a></code> class.</p>
<p>Use a secure random number generator ( <p>Use a secure random number generator (
<a href="http://developer.android.com/reference/java/security/SecureRandom.html"> <a href="{@docRoot}reference/java/security/SecureRandom.html">
<code>SecureRandom</code></a>) to initialize any cryptographic keys (<a <code>SecureRandom</code></a>) to initialize any cryptographic keys (<a
href="http://developer.android.com/reference/javax/crypto/KeyGenerator.html"> href="{@docRoot}reference/javax/crypto/KeyGenerator.html">
<code>KeyGenerator</code></a>). Use of a key that is not generated with a secure random <code>KeyGenerator</code></a>). Use of a key that is not generated with a secure random
number generator significantly weakens the strength of the algorithm, and may number generator significantly weakens the strength of the algorithm, and may
allow offline attacks.</p> allow offline attacks.</p>
<p>If you need to store a key for repeated use, use a mechanism like <code><a <p>If you need to store a key for repeated use, use a mechanism like <code><a
href={@docRoot}reference/java/security/KeyStore.html">KeyStore</a></code> that href="{@docRoot}reference/java/security/KeyStore.html">KeyStore</a></code> that
provides a mechanism for long term storage and retrieval of cryptographic provides a mechanism for long term storage and retrieval of cryptographic
keys.</p> keys.</p>

View File

@@ -481,7 +481,7 @@ href="{@docRoot}guide/topics/ui/actionbar.html#Home">Action Bar</a> developer gu
information in each list item based on the available space. That is, you can create alternative information in each list item based on the available space. That is, you can create alternative
layouts to be used by the items in your list adapter such that a large screen might display more layouts to be used by the items in your list adapter such that a large screen might display more
detail for each item.</li> detail for each item.</li>
<li>Create <a href="{@docRoot}guide/topics/resources/more-resources.html ">alternative resource <li>Create <a href="{@docRoot}guide/topics/resources/more-resources.html">alternative resource
files</a> for values such as integers, dimensions, and even booleans. Using size qualifiers for files</a> for values such as integers, dimensions, and even booleans. Using size qualifiers for
these resources, you can easily apply different layout sizes, font sizes, or enable/disable features these resources, you can easily apply different layout sizes, font sizes, or enable/disable features
based on the current screen size.</li> based on the current screen size.</li>

View File

@@ -120,8 +120,8 @@ suitable private key</a>.</p>
<p>You may also have to obtain other release keys if your application accesses a service or uses a <p>You may also have to obtain other release keys if your application accesses a service or uses a
third-party library that requires you to use a key that is based on your private key. For example, third-party library that requires you to use a key that is based on your private key. For example,
if your application uses the <a if your application uses the <a
href="http://code.google.com/android/add-ons/google-apis/reference/com/google/android/maps/ MapView. href="http://code.google.com/android/add-ons/google-apis/reference/com/google/android/maps/MapView.html">MapView</a>
html">MapView</a> class, which is part of the <a class, which is part of the <a
href="http://code.google.com/android/add-ons/google-apis/maps-overview.html">Google Maps external href="http://code.google.com/android/add-ons/google-apis/maps-overview.html">Google Maps external
library</a>, you will need to register your application with the Google Maps service and obtain library</a>, you will need to register your application with the Google Maps service and obtain
a Maps API key. For information about getting a Maps API key, see <a a Maps API key. For information about getting a Maps API key, see <a

View File

@@ -21,7 +21,7 @@ page.title=Publishing Overview
</ol> </ol>
<h2>See also</h2> <h2>See also</h2>
<ol> <ol>
<li><a href="{@docRoot}guide/publishing/publishing_preparing.html">Preparing for <li><a href="{@docRoot}guide/publishing/preparing.html">Preparing for
Release</a></li> Release</a></li>
<li><a href="{@docRoot}guide/publishing/publishing.html">Publishing on Android Market</a></li> <li><a href="{@docRoot}guide/publishing/publishing.html">Publishing on Android Market</a></li>
</ol> </ol>

View File

@@ -518,15 +518,12 @@ method. From within the Service, you can perform your own updates
to the App Widget without worrying about the AppWidgetProvider closing down due to the App Widget without worrying about the AppWidgetProvider closing down due
to an <a href="{@docRoot}guide/practices/design/responsiveness.html">Application to an <a href="{@docRoot}guide/practices/design/responsiveness.html">Application
Not Responding</a> (ANR) error. See the <a Not Responding</a> (ANR) error. See the <a
href="http://code.google.com/p/wiktionary-android/source/browse/trunk/Wiktionary href="http://code.google.com/p/wiktionary-android/source/browse/trunk/Wiktionary/src/com/example/android/wiktionary/WordWidget.java">Wiktionary sample's AppWidgetProvider</a> for an example of an App Widget running a {@link
/src/com/example/android/wiktionary/WordWidget.java">Wiktionary sample's
AppWidgetProvider</a> for an example of an App Widget running a {@link
android.app.Service}.</p> android.app.Service}.</p>
<p>Also see the <a <p>Also see the <a
href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/ href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/appwidget/ExampleAppWidgetProvider.html">ExampleAppWidgetProvider.java</a>
appwidget/ExampleAppWidgetProvider.html"> sample class.</p>
ExampleAppWidgetProvider.java</a> sample class.</p>
<h3 id="ProviderBroadcasts">Receiving App Widget broadcast Intents</h3> <h3 id="ProviderBroadcasts">Receiving App Widget broadcast Intents</h3>
@@ -683,9 +680,8 @@ cancelled and the
App Widget will not be added.</p> App Widget will not be added.</p>
<p>See the <a <p>See the <a
href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/ href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/appwidget/ExampleAppWidgetConfigure.html">ExampleAppWidgetConfigure.java</a>
appwidget/ExampleAppWidgetConfigure.html"> sample class in ApiDemos for an example.</p>
ExampleAppWidgetConfigure.java</a> sample class in ApiDemos for an example.</p>
<h2 id="preview">Setting a Preview Image</h2> <h2 id="preview">Setting a Preview Image</h2>

View File

@@ -59,7 +59,7 @@ by the system and will never be run.
<dt>attributes:</dt> <dt>attributes:</dt>
<dd><dl class="attr"> <dd><dl class="attr">
<dt><a href name="reparent"></a>{@code android:allowTaskReparenting}</dt> <dt><a name="reparent"></a>{@code android:allowTaskReparenting}</dt>
<dd>Whether or not the activity can move from the task that started it to <dd>Whether or not the activity can move from the task that started it to
the task it has an affinity for when that task is next brought to the the task it has an affinity for when that task is next brought to the
front &mdash; "{@code true}" if it can move, and "{@code false}" if it front &mdash; "{@code true}" if it can move, and "{@code false}" if it

View File

@@ -249,7 +249,7 @@ of that name is created. A global process can be shared with other
applications, reducing resource usage. applications, reducing resource usage.
</p></dd> </p></dd>
<dt><a href name="restoreany"></a>{@code android:restoreAnyVersion}</dt> <dt><a name="restoreany"></a>{@code android:restoreAnyVersion}</dt>
<dd>Indicate that the application is prepared to attempt a restore of any <dd>Indicate that the application is prepared to attempt a restore of any
backed-up data set, even if the backup was stored by a newer version backed-up data set, even if the backup was stored by a newer version
of the application than is currently installed on the device. Setting of the application than is currently installed on the device. Setting
@@ -260,7 +260,7 @@ incompatible. <em>Use with caution!</em>
<p>The default value of this attribute is {@code false}. <p>The default value of this attribute is {@code false}.
</p></dd> </p></dd>
<dt><a href name="aff"></a>{@code android:taskAffinity}</dt> <dt><a name="aff"></a>{@code android:taskAffinity}</dt>
<dd>An affinity name that applies to all activities within the application, <dd>An affinity name that applies to all activities within the application,
except for those that set a different affinity with their own except for those that set a different affinity with their own
<code><a href="{@docRoot}guide/topics/manifest/activity-element.html#aff">taskAffinity</a></code> <code><a href="{@docRoot}guide/topics/manifest/activity-element.html#aff">taskAffinity</a></code>

View File

@@ -251,7 +251,7 @@ href="{@docRoot}guide/topics/resources/runtime-changes.html">Handling Runtime Ch
"background media" even when the user leaves your activity, much in the same "background media" even when the user leaves your activity, much in the same
way that the built-in Music application behaves. In this case, what you need is way that the built-in Music application behaves. In this case, what you need is
a {@link android.media.MediaPlayer MediaPlayer} controlled by a {@link android.app.Service}, as a {@link android.media.MediaPlayer MediaPlayer} controlled by a {@link android.app.Service}, as
discussed in <a href="mpandservices">Using a Service with MediaPlayer</a>.</p> discussed in <a href="#mpandservices">Using a Service with MediaPlayer</a>.</p>
<h2 id="mpandservices">Using a Service with MediaPlayer</h2> <h2 id="mpandservices">Using a Service with MediaPlayer</h2>

View File

@@ -666,7 +666,7 @@ Android Market is launched to download the application.</p>
potentially handling specific tags that you have deployed. AARs are only supported at the potentially handling specific tags that you have deployed. AARs are only supported at the
application level, because of the package name constraint, and not at the Activity level as with application level, because of the package name constraint, and not at the Activity level as with
intent filtering. If you want to handle an intent at the Activity level, <a intent filtering. If you want to handle an intent at the Activity level, <a
href="filtering-intents">use intent filters</a>. href="#filtering-intents">use intent filters</a>.
</p> </p>
@@ -795,8 +795,8 @@ depending on what the user is doing in your application.</p>
<p>The following sample shows how a simple activity calls {@link <p>The following sample shows how a simple activity calls {@link
android.nfc.NfcAdapter.CreateNdefMessageCallback} in the <code>onCreate()</code> method of an android.nfc.NfcAdapter.CreateNdefMessageCallback} in the <code>onCreate()</code> method of an
activity (see <a href="{@docRoot}resources/samples/AndroidBeam/index.html"></a> for the activity (see <a href="{@docRoot}resources/samples/AndroidBeamDemo/index.html">AndroidBeamDemo</a>
complete sample). This example also has methods to help you create a MIME record:</p> for the complete sample). This example also has methods to help you create a MIME record:</p>
<pre id="code-example"> <pre id="code-example">
package com.example.android.beam; package com.example.android.beam;

View File

@@ -376,7 +376,7 @@ describes how these classes are generated through reflection.</p>
you call the constructor for the {@link android.renderscript.Script.FieldBase} class and specify you call the constructor for the {@link android.renderscript.Script.FieldBase} class and specify
the amount of structures that you want to allocate memory for. To allocate memory for a primitive the amount of structures that you want to allocate memory for. To allocate memory for a primitive
type pointer, you must build an allocation manually, using the memory management classes type pointer, you must build an allocation manually, using the memory management classes
described in <a href="mem-mgmt-table">Table 1</a>. The example below allocates memory for both described in <a href="#mem-mgmt-table">Table 1</a>. The example below allocates memory for both
the <code>intPointer</code> and <code>touchPoints</code> pointer and binds it to the the <code>intPointer</code> and <code>touchPoints</code> pointer and binds it to the
RenderScript:</p> RenderScript:</p>
<pre> <pre>

View File

@@ -335,7 +335,7 @@ set.start();
<dd> <dd>
<ul> <ul>
<li><a href="{@docRoot}guide/topics/graphics/animation.html">Property Animation</a></li> <li><a href="{@docRoot}guide/topics/graphics/animation.html">Property Animation</a></li>
<li><a href="http://zoso:8080/resources/samples/ApiDemos/src/com/example/android/apis/animation/index.html">API Demos</a> for examples <li><a href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/animation/index.html">API Demos</a> for examples
on how to use the property animation system.</li> on how to use the property animation system.</li>
</ul> </ul>
</dd> </dd>

View File

@@ -28,7 +28,7 @@ parent.link=index.html
href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/os/RotationVectorDemo.html"> href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/os/RotationVectorDemo.html">
API Demos (OS - RotationVectorDemo)</a></li> API Demos (OS - RotationVectorDemo)</a></li>
<li><a <li><a
href="{@docRoot}/resources/samples/ApiDemos/src/com/example/android/apis/os/RotationVectorDemo.html" href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/os/RotationVectorDemo.html"
>API Demos (OS - Sensors)</a></li> >API Demos (OS - Sensors)</a></li>
</ol> </ol>
<h2>See also</h2> <h2>See also</h2>

View File

@@ -642,7 +642,7 @@ work as designed otherwise.</p>
<p>Adding this value requires that you set your build target to Android 4.0 or higher in order to <p>Adding this value requires that you set your build target to Android 4.0 or higher in order to
compile. Older versions of Android ignore the {@code "collapseActionView"} value because they don't compile. Older versions of Android ignore the {@code "collapseActionView"} value because they don't
understand it. Just be sure not to use other APIs in your source code that are not supported in the understand it. Just be sure not to use other APIs in your source code that are not supported in the
version declared by your <a href="{@docRoot}guide/topics/manifest/uses-sdk-elementl.html#min">{@code version declared by your <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code
minSdkVersion}</a>, unless you add the appropriate version check at runtime.</p> minSdkVersion}</a>, unless you add the appropriate version check at runtime.</p>
</div> </div>
</div> </div>
@@ -843,8 +843,8 @@ you <em>do not</em> need to handle click events from the {@link
android.app.Activity#onOptionsItemSelected onOptionsItemSelected()} callback method.</p> android.app.Activity#onOptionsItemSelected onOptionsItemSelected()} callback method.</p>
<p>For a sample using the share action provider, see <p>For a sample using the share action provider, see
<a href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/ActionBarActionProviderActivity.html" <a href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/ActionBarShareActionProviderActivity.html"
>ActionBarActionProviderActivity</a>. >ActionBarShareActionProviderActivity</a>.

View File

@@ -169,8 +169,9 @@ UsbAccessory accessory = (UsbAccessory) intent.getParcelableExtra(UsbManager.EXT
include a <code>&lt;uses-feature&gt;</code> element that declares that your application uses include a <code>&lt;uses-feature&gt;</code> element that declares that your application uses
the <code>android.hardware.usb.accessory</code> feature.</li> the <code>android.hardware.usb.accessory</code> feature.</li>
<li>If you are using the <a href="addon">add-on library</a>, add the <li>If you are using the
<code>&lt;uses-library&gt;</code> element specifying <a href="http://code.google.com/android/add-ons/google-apis/index.html">add-on library</a>,
add the <code>&lt;uses-library&gt;</code> element specifying
<code>com.android.future.usb.accessory</code> for the library.</li> <code>com.android.future.usb.accessory</code> for the library.</li>
<li>Set the minimum SDK of the application to API Level 10 if you are using the add-on library <li>Set the minimum SDK of the application to API Level 10 if you are using the add-on library

View File

@@ -699,7 +699,7 @@ bool AndroidAccessory::switchDevice(byte addr)
</pre>If this method returns false, the board waits until a new device is connected. If it is </pre>If this method returns false, the board waits until a new device is connected. If it is
successful, the device displays itself on the USB bus as being in accessory mode when the ADK board successful, the device displays itself on the USB bus as being in accessory mode when the ADK board
re-enumerates the bus. When the device is in accessory mode, the accessory then <a href= re-enumerates the bus. When the device is in accessory mode, the accessory then <a href=
"establish-adk">establishes communication with the device</a>. "#establish-adk">establishes communication with the device</a>.
<h3 id="establish-adk">Establish communication with the device</h3> <h3 id="establish-adk">Establish communication with the device</h3>

View File

@@ -902,8 +902,9 @@ the Bluetooth A2DP Service via IPC.</li>
<p>Here are the basic steps for working with a profile:</p> <p>Here are the basic steps for working with a profile:</p>
<ol> <ol>
<li>Get the default adapter, as described in <a href="{@docRoot}guide/topics/wireless/bluetooth. <li>Get the default adapter, as described in
html#SettingUp">Setting Up Bluetooth</a>.</li> <a href="{@docRoot}guide/topics/wireless/bluetooth.html#SettingUp">Setting Up
Bluetooth</a>.</li>
<li>Use {@link <li>Use {@link
android.bluetooth.BluetoothAdapter#getProfileProxy(android.content.Context, android.bluetooth.BluetoothAdapter#getProfileProxy(android.content.Context,

View File

@@ -657,8 +657,8 @@ href="{@docRoot}sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>.</p>
<p><strong>T-Mobile G1 Compatibility</strong></p> <p><strong>T-Mobile G1 Compatibility</strong></p>
<p>This version of the SDK has been tested for compatibility with the first <p>This version of the SDK has been tested for compatibility with the first
Android-powered mobile device, the <a href="http://www.t-mobileg1.com">T-Mobile Android-powered mobile device, the T-Mobile
G1</a>. </p> G1. </p>
<p><strong>MapView API Key</strong></p> <p><strong>MapView API Key</strong></p>

View File

@@ -106,7 +106,7 @@ data, a Maps API Key is required.</li>
<p>The Android 1.1 system image was tested for compatability with the <p>The Android 1.1 system image was tested for compatability with the
Android-powered devices listed below:</p> Android-powered devices listed below:</p>
<ul> <ul>
<li><a href="http://www.t-mobileg1.com">T-Mobile G1</a></li> <li>T-Mobile G1</li>
</ul> </ul>
<h2 id="apps">Built-in Applications</h2> <h2 id="apps">Built-in Applications</h2>

View File

@@ -262,8 +262,8 @@ android.content.ClipData.Item}s.</p>
<p>For more information, read the <a href="{@docRoot}guide/topics/clipboard/copy-paste.html">Copy <p>For more information, read the <a href="{@docRoot}guide/topics/clipboard/copy-paste.html">Copy
and Paste</a> documentation. You can also see a simple implementation of copy and paste in the <a and Paste</a> documentation. You can also see a simple implementation of copy and paste in the <a
href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/content/ClipboardSample. href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/content/ClipboardSample.html">API Demos</a>
html">API Demos</a> and a more complete implementation in the <a and a more complete implementation in the <a
href="{@docRoot}resources/samples/NotePad/index.html">Note Pad</a> application.</p> href="{@docRoot}resources/samples/NotePad/index.html">Note Pad</a> application.</p>
@@ -386,7 +386,7 @@ loader for your activity or fragment.</p>
<p>For more information, read the <a <p>For more information, read the <a
href="{@docRoot}guide/topics/fundamentals/loaders.html">Loaders</a> documentation. You can also see href="{@docRoot}guide/topics/fundamentals/loaders.html">Loaders</a> documentation. You can also see
example code using loaders in the <a example code using loaders in the <a
href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/FragmentListCursorLoader.html">FragmentListCursorLoader</a> href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/LoaderCursor.html">LoaderCursor</a>
and <a and <a
href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/LoaderThrottle.html"> href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/LoaderThrottle.html">
LoaderThrottle</a> samples.</p> LoaderThrottle</a> samples.</p>

View File

@@ -422,10 +422,9 @@ onGenericMotionEvent()} there instead.</p>
<p class="note">To look at a sample application that uses joystick motion <p class="note">To look at a sample application that uses joystick motion
events, see <a events, see <a
href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/view/ href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/view/GameControllerInput.html">GameControllerInput</a>
GameControllerInput.html">GameControllerInput</a> and <a and <a
href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/view/ href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/view/GameView.html">GameView</a>.</p>
GameView.html">GameView</a>.</p>
<h3>RTP API</h3> <h3>RTP API</h3>
@@ -931,7 +930,7 @@ devices.</li>
href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code
&lt;uses-feature&gt;}</a> manifest elements. For more information about &lt;uses-feature&gt;}</a> manifest elements. For more information about
declaring features in an application manifest, read <a declaring features in an application manifest, read <a
href="{docRoot}guide/appendix/market-filters.html">Android Market href="{@docRoot}guide/appendix/market-filters.html">Android Market
Filters</a>.</p> Filters</a>.</p>

View File

@@ -1292,9 +1292,9 @@ public boolean onCreateOptionsMenu(Menu menu) {
} }
</pre> </pre>
<p>For an example using the {@link android.widget.ShareActionProvider}, see the <a <p>For an example using the {@link android.widget.ShareActionProvider}, see <a
href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/ActionBarActionProviderActivity.html" href="{@docRoot}resources/samples/ApiDemos/src/com/example/android/apis/app/ActionBarShareActionProviderActivity.html"
>ActionBarActionProviderActivity</a> class in ApiDemos.</p> >ActionBarShareActionProviderActivity</a> in ApiDemos.</p>
<h4>Collapsible action views</h4> <h4>Collapsible action views</h4>

View File

@@ -63,8 +63,8 @@ Tasks</code>.</li>
strings that identify your app to the service. You need to obtain these strings strings that identify your app to the service. You need to obtain these strings
directly from the service owner. Google has a self-service system for obtaining directly from the service owner. Google has a self-service system for obtaining
client ids and secrets. The article <a client ids and secrets. The article <a
href="http://code.google.com/apis/tasks/articles/oauth-and-tasks-on-android. href="http://code.google.com/apis/tasks/articles/oauth-and-tasks-on-android.html">Getting
html">Getting Started with the Tasks API and OAuth 2.0 on Android</a> explains Started with the Tasks API and OAuth 2.0 on Android</a> explains
how to use this system to obtain these values for use with the Google Tasks how to use this system to obtain these values for use with the Google Tasks
API.</li> API.</li>
</ul> </ul>

View File

@@ -14,7 +14,7 @@ previous.link=connectivity-monitoring.html
<h2>This lesson teaches you to</h2> <h2>This lesson teaches you to</h2>
<ol> <ol>
<li><a href="ToggleReceivers">Toggle and Cascade State Change Receivers to Improve <li><a href="#ToggleReceivers">Toggle and Cascade State Change Receivers to Improve
Efficiency</a></li> Efficiency</a></li>
</ol> </ol>