247 lines
10 KiB
Plaintext
247 lines
10 KiB
Plaintext
page.title=Android 1.1 Version Notes
|
|
sdk.version=1.1_r1
|
|
sys.date=February 2009
|
|
@jd:body
|
|
|
|
<p>
|
|
<em>Date:</em> February 2009<br />
|
|
<em>API Level:</em> <strong>2</strong></p>
|
|
|
|
|
|
<p>This document provides version notes for the Android 1.1 system image included in the SDK.
|
|
|
|
<ul>
|
|
<li><a href="#overview">Overview</a>
|
|
<li><a href="#overview">External Libraries</a>
|
|
<li><a href="#comp">Device Compatibility</a>
|
|
<li><a href="#apps">Built-in Applications</a>
|
|
<li><a href="#locs">UI Localizations</a>
|
|
<li><a href="#resolved-issues">Resolved Issues</a>
|
|
<li><a href="#features">New Features</a>
|
|
<li><a href="#api-changes">API Changes</a>
|
|
</ul></p>
|
|
|
|
<h2 id="overview">Overview</h2>
|
|
|
|
<p>The Android 1.1 system image delivered in the SDK is the development
|
|
counterpart to the Android 1.1 production system image, deployable to
|
|
Android-powered handsets starting in February 2009. </p>
|
|
|
|
<p>The Android 1.1 system image delivers an updated version of the framework
|
|
API. As with the Android 1.0 API, the Android 1.1 API
|
|
is assigned an integer identifier — <strong>2</strong> — that is
|
|
stored in the system itself. This identifier, called the "API Level", allows the
|
|
system to correctly determine whether an application is compatible with
|
|
the system, prior to installing the application. </p>
|
|
|
|
<p>Applications indicate the lowest system API Level that they are compatible with by adding
|
|
a value to the <code>android:minSdkVersion</code> attribute.
|
|
The value of the attribute is an integer corresponding to an API Level
|
|
identifier. Prior to installing an application, the system checks the value of
|
|
<code>android:minSdkVersion</code> and allows the install only
|
|
if the referenced integer is less than or equal to the API Level integer stored
|
|
in the system itself. </p>
|
|
|
|
<p>If you use the Android 1.1 system image to build an application
|
|
compatible with Android-powered devices running the Android 1.1
|
|
platform, you <strong style="color:red">must</strong> set the
|
|
<code>android:minSdkVersion</code> attribute to "2" in order to specify that your application
|
|
is compatible only with devices using the Android 1.1 (or greater) system image.
|
|
</p>
|
|
|
|
<p>Specifically, you specify the <code>android:minSdkVersion</code>
|
|
attribute in a <code><uses-sdk></code> element as a child of
|
|
<code><manifest></code> in the manifest file. When set, the
|
|
attribute looks like this: </p>
|
|
|
|
<pre><code><manifest>
|
|
...
|
|
<uses-sdk android:minSdkVersion="2" />
|
|
...
|
|
</manifest></code>
|
|
</pre>
|
|
|
|
<p>By setting <code>android:minSdkVersion</code> in this way, you ensure
|
|
that users will only be able to install your application if their
|
|
devices are running the Android 1.1 platform. In turn, this ensures that
|
|
your application will function properly on their devices, especially if
|
|
it uses <a href="#apichange">APIs introduced in Android 1.1</a>. </p>
|
|
|
|
<p>If your application uses APIs introduced in Android 1.1 but does not
|
|
declare <code><uses-sdk android:minSdkVersion="2" /></code>, then it will
|
|
run properly on Android 1.1 devices but <em>not</em> on Android 1.0
|
|
devices. In the latter case, the application will crash at runtime when
|
|
it tries to use the Android 1.1 APIs.</p>
|
|
|
|
<p>If your application does not use any new APIs introduced in Android
|
|
1.1, you can indicate Android 1.0 compatibility by removing
|
|
<code>android:minSdkVersion</code> or setting the attribute to "1". However,
|
|
before publishing your application, you must make sure to compile your
|
|
application against the Android 1.0 system image (available in the
|
|
Android 1.0 SDK), to ensure that it builds and functions properly for
|
|
Android 1.0 devices. You should test the application against system
|
|
images corresponding to the API Levels that the application is designed
|
|
to be compatible with.</p>
|
|
|
|
<p>If you are sure your application is not using Android 1.1 APIs and
|
|
has no need to use them, you might find it easier to keep working in the
|
|
Android 1.0 SDK, rather than migrating to the Android 1.1 SDK and having
|
|
to do additional testing.</p>
|
|
|
|
|
|
<h2 id="extlibs">External Libraries</h2>
|
|
|
|
<p>The system image includes these external libraries, which you can
|
|
access from your application by adding a <a
|
|
href="{@docRoot}guide/topics/manifest/uses-library-element.html">
|
|
<uses-library></a>.</p>
|
|
<ul>
|
|
<li>com.google.android.maps — gives your
|
|
application access to Google Maps data. Note that, to use Google Maps
|
|
data, a Maps API Key is required.</li>
|
|
</ul>
|
|
|
|
<h2 id="comp">Device Compatibility</h2>
|
|
|
|
<p>The Android 1.1 system image was tested for compatability with the
|
|
Android-powered devices listed below:</p>
|
|
<ul>
|
|
<li><a href="http://www.t-mobileg1.com">T-Mobile G1</a></li>
|
|
</ul>
|
|
|
|
<h2 id="apps">Built-in Applications</h2>
|
|
|
|
<p>The system image includes these built-in applications:</p>
|
|
<ul>
|
|
<li>Alarm Clock</li>
|
|
<li>API Demos</li>
|
|
<li>Browser</li>
|
|
<li>Calculator</li>
|
|
<li>Camera</li>
|
|
<li>Contacts</li>
|
|
<li>Dev Tools</li>
|
|
<li>Dialer</li>
|
|
<li>Email</li>
|
|
<li>Maps (and StreetView)</li>
|
|
<li>Messaging</li>
|
|
<li>Music</li>
|
|
<li>Pictures</li>
|
|
<li>Settings</li>
|
|
</ul>
|
|
|
|
<h2 id="locs">UI Localizations</h2>
|
|
|
|
<p>The system image provides localized UI strings for the languages
|
|
listed below.</p>
|
|
<ul>
|
|
<li>English, US (en_US)</li>
|
|
<li>German (de) </li>
|
|
</ul>
|
|
|
|
<p>Localized UI strings match the locales that are displayable in
|
|
the emulator, accessible through the device Settings application.</p>
|
|
|
|
<h2 id="resolved-issues">Resolved Issues</h2>
|
|
<ul>
|
|
<li>AlarmClock alert now plays audio/vibe directly, rather than through
|
|
AlarmManager. AlarmClock alert starts playing audio/vibe in its
|
|
IntentReceiver, rather than on activity start. These changes should
|
|
prevent alarms from being blocked by modal dialogs.</li>
|
|
<li>Fixes to device sleep. </li>
|
|
<li>Single tap no longer opens the in-call dialpad; users now need to
|
|
touch and drag it. </li>
|
|
<li>Fixes a bug causing approximately 1 in 25 outbound messages to
|
|
freeze up the IMAP connection (to a Gmail based server) when transferred
|
|
to the Sent folder.</li>
|
|
<li>Removes automatic account setup entries that were broken or not
|
|
testable. Adds minor fixes to a few of the remaining entries. Makes
|
|
improvements to warning dialogs used for a few special cases. </li>
|
|
<li>Changes default mail checking interval to every 15 minutes (instead
|
|
of defaulting to "never").</li>
|
|
<li>Fixes password-quoting bugs in IMAP, so that users can include
|
|
special characters in passwords (e.g. spaces).</li>
|
|
<li>Fixes various errors in auto and manual account setup </li>
|
|
<li>Improves reporting for various connection errors, making it easier
|
|
for the user to diagnose failed account setups.</li>
|
|
<li>Fixes new-mail notifications for POP3 accounts.</li>
|
|
<li>Ensures proper auto-checking of accounts marked as "never
|
|
check".</li>
|
|
<li>Now displays date and time using user preference (e.g. 24 hr vs.
|
|
AM/PM).</li>
|
|
<li>Now shows cc: in message view.</li>
|
|
<li>Improves recovery from POP3 connection failures.</li>
|
|
<li>POP3 parser rules loosened, so the application can work with
|
|
non-compliant email servers.</li>
|
|
</ul>
|
|
|
|
<h2 id="features">New Features</h2>
|
|
|
|
<ul>
|
|
<li>Maps: Adds details and reviews when a user does a search on Maps and
|
|
clicks on a business to view its details.</li>
|
|
<li>Dialer: In-call screen timeout default is now longer when using the
|
|
speakerphone.</li>
|
|
<li>Dialer: Adds a "Show dialpad" / "Hide dialpad" item to the in-call
|
|
menu, to make it easier to discover the DTMF dialpad. </li>
|
|
<li>Adds support for saving attachments from MMS</li>
|
|
<li>Adds support for marquee in layouts.</li>
|
|
</ul>
|
|
|
|
<h2 id="api-changes">API Changes</h2>
|
|
|
|
<h3>Overview</strong></h3>
|
|
|
|
<ul>
|
|
<li>Adds annotations for test systems, no actual (non-test) API
|
|
changes.</li>
|
|
<li>Adds a method to allow a process to easily determine its UID.
|
|
<li>Adds support for marquee in layouts.</li>
|
|
<li>Adds new methods for determining padding in views. Useful if you are
|
|
writing your own
|
|
subclasses of {@link android.view.View View}.</li>
|
|
<li>Adds new permissions that allow an application to broadcast an SMS
|
|
or WAP Push message. </li>
|
|
<li>API cleanup: removes protected constructor from
|
|
SDK-bound system images. </li>
|
|
</ul>
|
|
|
|
<h3>API Change Details</h3>
|
|
|
|
<table>
|
|
<tr>
|
|
<th>Module or Feature</th><th>Change Description</th>
|
|
</tr>
|
|
<tr><td rowspan="4">Annotations for test systems</td></tr>
|
|
<tr><td>Added {@link android.test.suitebuilder.annotation.LargeTest LargeTest} annotation.</td></tr>
|
|
<tr><td>Added {@link android.test.suitebuilder.annotation.MediumTest MediumTest} annotation.</td></tr>
|
|
<tr><td>Added {@link android.test.suitebuilder.annotation.SmallTest SmallTest} annotation.</td></tr>
|
|
|
|
<tr><td rowspan="2">Allow a process to easily know its UID.</td></tr>
|
|
<tr><td>Added public method {@link android.os.Process#myUid} to class {@link android.os.Process android.os.Process}</td></tr>
|
|
|
|
<tr><td rowspan="6">Padding in views</td></tr>
|
|
<tr><td>Added public method {@link android.view.View#getBottomPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr>
|
|
<tr><td>Added public method {@link android.view.View#getLeftPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr>
|
|
<tr><td>Added public method {@link android.view.View#getRightPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr>
|
|
<tr><td>Added public method {@link android.view.View#getTopPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr>
|
|
<tr><td>Added public method {@link android.view.View#isPaddingOffsetRequired} to class {@link android.view.View android.view.View}.</td></tr>
|
|
|
|
<tr><td rowspan="3">Marquee support</td></tr>
|
|
<tr><td>Added public method {@link android.widget.TextView#setMarqueeRepeatLimit} to class {@link android.widget.TextView}</td></tr>
|
|
<tr><td>Added public field {@link android.R.attr#marqueeRepeatLimit android.R.attr.marqueeRepeatLimit}</td></tr>
|
|
|
|
<tr><td rowspan="3">New permissions</td></tr>
|
|
<tr><td>Added public field {@link android.Manifest.permission#BROADCAST_SMS android.Manifest.permission.BROADCAST_SMS}</td></tr>
|
|
<tr><td>Added public field {@link android.Manifest.permission#BROADCAST_WAP_PUSH android.Manifest.permission.BROADCAST_WAP_PUSH}</td></tr>
|
|
|
|
<tr><td rowspan="2">API cleanup</td></tr>
|
|
<tr><td>Removed protected constructor java.net.ServerSocket.ServerSocket(java.net.SocketImpl).</td></tr>
|
|
|
|
</table>
|
|
|
|
|
|
|
|
|
|
|
|
|