The Android Open Source Project | c2ad241 | 2009-03-19 23:08:54 -0700 | [diff] [blame] | 1 | page.title=Android 1.5 Version Notes |
| 2 | sdk.version=1.5_r1 |
| 3 | sys.date=April 2009 |
| 4 | @jd:body |
| 5 | |
| 6 | <p> |
| 7 | <em>Date:</em> April 2009<br /> |
| 8 | <em>API Level:</em> <strong>3</strong></p> |
| 9 | |
| 10 | |
| 11 | <p>This document provides version notes for the Android 1.5 system image included in the SDK. </p> |
| 12 | |
| 13 | <ul> |
| 14 | <li><a href="#overview">Overview</a> |
| 15 | <li><a href="#overview">External Libraries</a> |
| 16 | <li><a href="#comp">Device Compatibility</a> |
| 17 | <li><a href="#apps">Built-in Applications</a> |
| 18 | <li><a href="#locs">UI Localizations</a> |
| 19 | <li><a href="#resolved-issues">Resolved Issues</a> |
| 20 | <li><a href="#features">New Features</a> |
| 21 | <li><a href="#api-changes">API Changes</a> |
| 22 | </ul> |
| 23 | |
| 24 | <h2 id="overview">Overview</h2> |
| 25 | |
| 26 | <p>The Android 1.5 system image delivered in the SDK is the development |
| 27 | counterpart to the Android 1.5 production system image, deployable to |
| 28 | Android-powered handsets starting in February 2009. </p> |
| 29 | |
| 30 | <p>The Android 1.5 system image delivers an updated version of the framework |
| 31 | API. As with previous versions, the Android 1.5 API |
| 32 | is assigned an integer identifier — <strong>3</strong> — that is |
| 33 | stored in the system itself. This identifier, called the "API Level", allows the |
| 34 | system to correctly determine whether an application is compatible with |
| 35 | the system, prior to installing the application.</p> |
| 36 | |
| 37 | <p>Applications can reference a specific API Level value in their |
| 38 | manifest files, to indicate the minimum version of the Android system |
| 39 | required to run the application. To reference a minimum API Level, applications |
| 40 | can add a <code>minSdkVersion</code> attribute in their manifest files. |
| 41 | The value of the attribute is an integer corresponding to an API Level |
| 42 | identifier. Prior to installing an application, the system then checks the value of |
| 43 | <code>minSdkVersion</code> and allows the install only |
| 44 | if the referenced integer is less than or equal to the API Level integer stored |
| 45 | in the system itself. </p> |
| 46 | |
| 47 | <p>If you use the Android 1.5 system image to build an application |
| 48 | compatible with Android-powered devices running the Android 1.5 |
| 49 | platform, please note that you <strong><span |
| 50 | style="color:red;">must</span></strong> set the the |
| 51 | <code>android:minSdkVersion</code> attribute in the application's |
| 52 | manifest to "3", which is the API strictly associated with Android 1.5. |
| 53 | </p> |
| 54 | |
| 55 | <p>Specifically, you define the <code>android:minSdkVersion</code> |
| 56 | attribute in a <code><uses-sdk></code> element as a child of |
| 57 | <code><manifest></code> in the manifest file. When set, the |
| 58 | attribute looks like this: </p> |
| 59 | |
| 60 | <pre><manifest> |
| 61 | ... |
| 62 | <uses-sdk minSdkVersion="3" /> |
| 63 | ... |
| 64 | </manifest></pre> |
| 65 | |
| 66 | <p>By setting <code>android:minSdkVersion</code> in this way, you ensure |
| 67 | that users will only be able to install your application if their |
| 68 | devices are running the Android 1.5 platform. In turn, this ensures that |
| 69 | your application will function properly on their devices, especially if |
| 70 | it uses <a href="#apichange">APIs introduced in Android 1.5</a>. </p> |
| 71 | |
| 72 | <p>If your application uses APIs introduced in Android 1.5 but does not |
| 73 | declare <code><uses-sdk minSdkVersion="3" /></code>, then it will |
| 74 | run properly on Android 1.5 devices but <em>not</em> on Android 1.0 |
| 75 | devices. In the latter case, the application will crash at runtime when |
| 76 | it tries to use the Android 1.5 APIs.</p> |
| 77 | |
| 78 | <p>If your application does not use any new APIs introduced in Android |
| 79 | 1.5, you can indicate general Android 1.0 compatibility by removing |
| 80 | <code>minSdkVersion</code> or setting the attribute to "1". However, |
| 81 | before publishing your application, you must make sure to compile your |
| 82 | application against the Android 1.0 system image (available in the |
| 83 | Android SDK), to ensure that it builds and functions properly for |
| 84 | Android 1.0 devices. You should test the application against system |
| 85 | images corresponding to the API Levels that the application is designed |
| 86 | to be compatible with.</p> |
| 87 | |
| 88 | <p>If you are sure your application is not using Android 1.5 APIs and |
| 89 | has no need to use them, you might find it easier to keep working in the |
| 90 | Android 1.1 SDK, rather than migrating to the Android 1.5 SDK and having |
| 91 | to do additional testing. </p> |
| 92 | |
| 93 | |
| 94 | <h2 id="extlibs">External Libraries</h2> |
| 95 | |
| 96 | <p>The system image includes these external libraries, which you can |
| 97 | access from your application by adding a <a |
| 98 | href="{@docRoot}guide/topics/manifest/uses-library-element.html"> |
| 99 | <uses-library></a>.</p> |
| 100 | <ul> |
| 101 | <li>com.google.android.maps — gives your |
| 102 | application access to Google Maps data. Note that, to use Google Maps |
| 103 | data, a Maps API Key is required.</li> |
| 104 | </ul> |
| 105 | |
| 106 | <h2 id="comp">Device Compatibility</h2> |
| 107 | |
| 108 | <p>The Android 1.5 system image was tested for compatability with the |
| 109 | Android-powered devices listed below:</p> |
| 110 | <ul> |
| 111 | <li><a href="http://www.t-mobileg1.com">T-Mobile G1</a></li> |
| 112 | </ul> |
| 113 | |
| 114 | <h2 id="apps">Built-in Applications</h2> |
| 115 | |
| 116 | <p>The system image includes these built-in applications:</p> |
| 117 | <ul> |
| 118 | <li>Alarm Clock</li> |
| 119 | <li>API Demos</li> |
| 120 | <li>Browser</li> |
| 121 | <li>Calculator</li> |
| 122 | <li>Camera</li> |
| 123 | <li>Contacts</li> |
| 124 | <li>Dev Tools</li> |
| 125 | <li>Dialer</li> |
| 126 | <li>Email</li> |
| 127 | <li>Maps (and StreetView)</li> |
| 128 | <li>Messaging</li> |
| 129 | <li>Music</li> |
| 130 | <li>Pictures</li> |
| 131 | <li>Settings</li> |
| 132 | </ul> |
| 133 | |
| 134 | <h2 id="locs">UI Localizations</h2> |
| 135 | |
| 136 | <p>The system image provides localized UI strings for the languages |
| 137 | listed below.</p> |
| 138 | <ul> |
| 139 | <li>English, US (en_US)</li> |
| 140 | <li>German (de) </li> |
| 141 | </ul> |
| 142 | |
| 143 | <p>Localized UI strings match the locales that are displayable in |
| 144 | the emulator, accessible through the device Settings application.</p> |
| 145 | |
| 146 | <h2 id="resolved-issues">Resolved Issues</h2> |
| 147 | <ul> |
| 148 | <li>AlarmClock alert now plays audio/vibe directly, rather than through |
| 149 | AlarmManager. AlarmClock alert starts playing audio/vibe in its |
| 150 | IntentReceiver, rather than on activity start. These changes should |
| 151 | prevent alarms from being blocked by modal dialogs.</li> |
| 152 | <li>Fixes to device sleep. </li> |
| 153 | <li>Single tap no longer opens the in-call dialpad; users now need to |
| 154 | touch and drag it. </li> |
| 155 | <li>Fixes a bug causing approximately 1 in 25 outbound messages to |
| 156 | freeze up the IMAP connection (to a Gmail based server) when transferred |
| 157 | to the Sent folder.</li> |
| 158 | <li>Removes automatic account setup entries that were broken or not |
| 159 | testable. Adds minor fixes to a few of the remaining entries. Makes |
| 160 | improvements to warning dialogs used for a few special cases. </li> |
| 161 | <li>Changes default mail checking interval to every 15 minutes (instead |
| 162 | of defaulting to "never").</li> |
| 163 | <li>Fixes password-quoting bugs in IMAP, so that users can include |
| 164 | special characters in passwords (e.g. spaces).</li> |
| 165 | <li>Fixes various errors in auto and manual account setup </li> |
| 166 | <li>Improves reporting for various connection errors, making it easier |
| 167 | for the user to diagnose failed account setups.</li> |
| 168 | <li>Fixes new-mail notifications for POP3 accounts.</li> |
| 169 | <li>Ensures proper auto-checking of accounts marked as "never |
| 170 | check".</li> |
| 171 | <li>Now displays date and time using user preference (e.g. 24 hr vs. |
| 172 | AM/PM).</li> |
| 173 | <li>Now shows cc: in message view.</li> |
| 174 | <li>Improves recovery from POP3 connection failures.</li> |
| 175 | <li>POP3 parser rules loosened, so the application can work with |
| 176 | non-compliant email servers.</li> |
| 177 | </ul> |
| 178 | |
| 179 | <h2 id="features">New Features</h2> |
| 180 | |
| 181 | <ul> |
| 182 | <li>Maps: Adds details and reviews when a user does a search on Maps and |
| 183 | clicks on a business to view its details.</li> |
| 184 | <li>Dialer: In-call screen timeout default is now longer when using the |
| 185 | speakerphone.</li> |
| 186 | <li>Dialer: Adds a "Show dialpad" / "Hide dialpad" item to the in-call |
| 187 | menu, to make it easier to discover the DTMF dialpad. </li> |
| 188 | <li>Adds support for saving attachments from MMS</li> |
| 189 | <li>Adds support for marquee in layouts.</li> |
| 190 | </ul> |
| 191 | |
| 192 | <h2 id="api-changes">API Changes</h2> |
| 193 | |
| 194 | <h3>Overview</strong></h3> |
| 195 | |
| 196 | <ul> |
| 197 | <li>Adds annotations for test systems, no actual (non-test) API |
| 198 | changes.</li> |
| 199 | <li>Adds a method to allow a process to easily determine its UID. |
| 200 | <li>Adds support for marquee in layouts.</li> |
| 201 | <li>Adds new methods for determining padding in views. Useful if you are |
| 202 | writing your own |
| 203 | subclasses of {@link android.view.View View}.</li> |
| 204 | <li>Adds new permissions that allow an application to broadcast an SMS |
| 205 | or WAP Push message. </li> |
| 206 | <li>API cleanup: removes protected constructor from |
| 207 | SDK-bound system images. </li> |
| 208 | </ul> |
| 209 | |
| 210 | <h3>API Change Details</h3> |
| 211 | |
| 212 | <table> |
| 213 | <tr> |
| 214 | <th>Module or Feature</th><th>Change Description</th> |
| 215 | </tr> |
| 216 | <tr><td rowspan="4">Annotations for test systems</td></tr> |
| 217 | <tr><td>Added {@link android.test.suitebuilder.annotation.LargeTest LargeTest} annotation.</td></tr> |
| 218 | <tr><td>Added {@link android.test.suitebuilder.annotation.MediumTest MediumTest} annotation.</td></tr> |
| 219 | <tr><td>Added {@link android.test.suitebuilder.annotation.SmallTest SmallTest} annotation.</td></tr> |
| 220 | |
| 221 | <tr><td rowspan="2">Allow a process to easily know its UID.</td></tr> |
| 222 | <tr><td>Added public method {@link android.os.Process#myUid} to class {@link android.os.Process android.os.Process}</td></tr> |
| 223 | |
| 224 | <tr><td rowspan="6">Padding in views</td></tr> |
| 225 | <tr><td>Added public method {@link android.view.View#getBottomPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr> |
| 226 | <tr><td>Added public method {@link android.view.View#getLeftPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr> |
| 227 | <tr><td>Added public method {@link android.view.View#getRightPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr> |
| 228 | <tr><td>Added public method {@link android.view.View#getTopPaddingOffset} to class {@link android.view.View android.view.View}.</td></tr> |
| 229 | <tr><td>Added public method {@link android.view.View#isPaddingOffsetRequired} to class {@link android.view.View android.view.View}.</td></tr> |
| 230 | |
| 231 | <tr><td rowspan="3">Marquee support</td></tr> |
| 232 | <tr><td>Added public method {@link android.widget.TextView#setMarqueeRepeatLimit} to class {@link android.widget.TextView}</td></tr> |
| 233 | <tr><td>Added public field {@link android.R.attr#marqueeRepeatLimit android.R.attr.marqueeRepeatLimit}</td></tr> |
| 234 | |
| 235 | <tr><td rowspan="3">New permissions</td></tr> |
| 236 | <tr><td>Added public field {@link android.Manifest.permission#BROADCAST_SMS android.Manifest.permission.BROADCAST_SMS}</td></tr> |
| 237 | <tr><td>Added public field {@link android.Manifest.permission#BROADCAST_WAP_PUSH android.Manifest.permission.BROADCAST_WAP_PUSH}</td></tr> |
| 238 | |
| 239 | <tr><td rowspan="2">API cleanup</td></tr> |
| 240 | <tr><td>Removed protected constructor java.net.ServerSocket.ServerSocket(java.net.SocketImpl).</td></tr> |
| 241 | |
| 242 | </table> |
| 243 | |
| 244 | |
| 245 | |
| 246 | |
| 247 | |
| 248 | |