| page.title=Android 1.5 Version Notes |
| sdk.version=1.5_r1 |
| sys.date=April 2009 |
| @jd:body |
| |
| <p> |
| <em>Date:</em> April 2009<br /> |
| <em>API Level:</em> <strong>3</strong></p> |
| |
| |
| <p>This document provides version notes for the Android 1.5 system image included in the SDK. </p> |
| |
| <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> |
| |
| <h2 id="overview">Overview</h2> |
| |
| <p>The Android 1.5 system image delivered in the SDK is the development |
| counterpart to the Android 1.5 production system image, deployable to |
| Android-powered handsets starting in February 2009. </p> |
| |
| <p>The Android 1.5 system image delivers an updated version of the framework |
| API. As with previous versions, the Android 1.5 API |
| is assigned an integer identifier — <strong>3</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 can reference a specific API Level value in their |
| manifest files, to indicate the minimum version of the Android system |
| required to run the application. To reference a minimum API Level, applications |
| can add a <code>minSdkVersion</code> attribute in their manifest files. |
| The value of the attribute is an integer corresponding to an API Level |
| identifier. Prior to installing an application, the system then checks the value of |
| <code>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.5 system image to build an application |
| compatible with Android-powered devices running the Android 1.5 |
| platform, please note that you <strong><span |
| style="color:red;">must</span></strong> set the the |
| <code>android:minSdkVersion</code> attribute in the application's |
| manifest to "3", which is the API strictly associated with Android 1.5. |
| </p> |
| |
| <p>Specifically, you define 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><manifest> |
| ... |
| <uses-sdk minSdkVersion="3" /> |
| ... |
| </manifest></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.5 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.5</a>. </p> |
| |
| <p>If your application uses APIs introduced in Android 1.5 but does not |
| declare <code><uses-sdk minSdkVersion="3" /></code>, then it will |
| run properly on Android 1.5 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.5 APIs.</p> |
| |
| <p>If your application does not use any new APIs introduced in Android |
| 1.5, you can indicate general Android 1.0 compatibility by removing |
| <code>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 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.5 APIs and |
| has no need to use them, you might find it easier to keep working in the |
| Android 1.1 SDK, rather than migrating to the Android 1.5 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.5 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> |
| |
| |
| |
| |
| |
| |