blob: df52b6268b26717fb5fe1bcd73218ef5f975b1eb [file] [log] [blame]
The Android Open Source Projectc2ad2412009-03-19 23:08:54 -07001page.title=Android 1.5 Version Notes
2sdk.version=1.5_r1
3sys.date=April 2009
4@jd:body
5
6<p>
7<em>Date:</em> April 2009<br />
8<em>API Level:</em>&nbsp;<strong>3</strong></p>
9
10
Dirk Doughertyfe1f7892009-04-21 18:52:41 -070011<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>
Dirk Dougherty6edea742009-04-24 11:32:25 -070019<li><a href="#features">New Features</a>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -070020<li><a href="#api-changes">API Changes</a>
21</ul>
22
23<h2 id="overview">Overview</h2>
24
25<p>The Android 1.5 system delivered in the SDK (as library and system image) is
26the development counterpart to the Android 1.5 production system image,
27deployable to Android-powered handsets starting in May 2009. The system is fully
28compliant and includes no external libraries. This is the first version of the
29Android SDK that does not include the Maps external library.</p>
30
31<p>The Android 1.5 system delivers an updated version of the framework
32API. As with previous versions, the Android 1.5 API
33is assigned an integer identifier &mdash; <strong>3</strong> &mdash; that is
34stored in the system itself. This identifier, called the "API Level", allows the
35system to correctly determine whether an application is compatible with
36the system, prior to installing the application.</p>
37
38<p>Applications can reference a specific API Level value in their
39manifest files, to indicate the minimum version of the Android system
40required to run the application. To reference a minimum API Level, applications
41can add a <code>minSdkVersion</code> attribute in their manifest files.
42The value of the attribute is an integer corresponding to an API Level
43identifier. Prior to installing an application, the system then checks the value of
44<code>minSdkVersion</code> and allows the install only
45if the referenced integer is less than or equal to the API Level integer stored
46in the system itself. </p>
47
48<p>When you migrate your application to the new SDK, you will need to choose
49the platform version against which you will compile your application. In
50general, you should compile your application against the lowest possible
51version of the platform that your application can support. After you determine
52the lowest version, you should ensure that your application's manifest file
53defines the API Level of the lowest compatible platform version in the
54<code>minSdkVersion</code> attribute.
55
56<p>After compiling your application, you should make sure to test it on the
57platform specified in the application's <code>minSdkVersion</code> attribute. To
58ensure forward-compatibility, you should also run the application on platforms
59using a higher API Level than that used by your application. To run your
60application against different platform versions in the emulator, you create an
61AVD for each platform version that you want to test. For more information about
62AVDs, see <a href="{@docRoot}guide/developing/tools/avd.html">Android Virtual
63Devices</a>. If you are using a physical device for testing, ensure that you
64know the API Level of the Android platform it runs.</p>
65
66<p>If you build an application using the Android 1.5 library and your
67application makes use of any APIs introduced in API Level 3, you <strong><span
68style="color:red;">must</span></strong> set the
69<code>android:minSdkVersion</code> attribute in the application's manifest to
70"3". </p>
71
72<p>Specifically, you define the <code>android:minSdkVersion</code>
73attribute in a <code>&lt;uses-sdk&gt;</code> element as a child of
74<code>&lt;manifest&gt;</code> in the manifest file. When set, the
75attribute looks like this: </p>
76
77<pre>&lt;manifest&gt;
78 ...
79 &lt;uses-sdk minSdkVersion="3" /&gt;
80 ...
81&lt;/manifest&gt;</pre>
82
83<p>By setting <code>android:minSdkVersion</code> in this way, you ensure that
84users will only be able to install your application if their devices are running
85a compatible version of the Android platform. In turn, this ensures that your
86application will function properly on their devices. This is especially
87important if your application uses <a href="#apichange">APIs or system features
88introduced in Android 1.5</a>. </p>
89
90<p>If your application uses APIs introduced in Android 1.5 but does not
91declare <code>&lt;uses-sdk minSdkVersion="3" /&gt;</code>, then it will
92run properly on Android 1.5 devices but <em>not</em> on Android 1.0
93devices. In the latter case, the application will crash at runtime when
94it tries to use the Android 1.5 APIs.</p>
95
96<p>Conversely, if your application does not use any new APIs introduced in
97Android 1.5, the application will in most cases function normally on devices
98running a later version of the platform. However, if you have published
99the application, you are strongly encouraged to install and test your
100application on the Android 1.5 system image included in the SDK. This will
101ensure a smooth transition for users, as they upgrade their devices to
102the new version of the Android platform. </p>
103
104<p>Finally, if your application does not use any new APIs introduced since
105Android 1.1, you can indicate general Android 1.1 compatibility by
106setting the attribute to "2". If your application does not use any
107new APIs introduced since Android 1.0, you can remove the attribute or
108set it to "1". However,
109before publishing your application, you must make sure to compile your
110application against the Android library that corresponds to the application's
111<code>minSdkVeresion</code> value.</p>
112
113<h2 id="apps">Built-in Applications</h2>
114
115<p>The system image includes these built-in applications:</p>
116 <ul>
117 <li>Alarm Clock</li>
118 <li>Browser</li>
119 <li>Calculator</li>
120 <li>Camcorder</li>
121 <li>Camera</li>
122 <li>Contacts</li>
123 <li>Custom Locale (developer app)</li>
124 <li>Dev Tools (developer app)</li>
125 <li>Dialer</li>
126 <li>Email</li>
127 <li>Gallery</li>
128 <li>Messaging</li>
129 <li>Music</li>
130 <li>Settings</li>
131 <li>Spare Parts (developer app)</li>
132 </ul>
133
134<h2 id="locs">Locales</h2>
135
136<p>The system image provides a variety of built-in locales. In some cases,
137region-specific strings are available for the locales. In other cases,
138a default version of the language is used. The languages that will be
139available in the Android 1.5 system image are listed below (with
140<em>language</em>_<em>country/region</em> locale descriptor).</p>
141
Dirk Dougherty6edea742009-04-24 11:32:25 -0700142<table style="border:0;">
143<tr>
144<td style="border:0">
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700145<ul>
146<li>Chinese, PRC (zh_CN)</li>
147<li>Chinese, Taiwan (zh_TW)</li>
148<li>Czech (cs_CZ)</li>
149<li>Dutch, Netherlands (nl_NL)</li>
150<li>Dutch, Belgium (nl_BE)</li>
151<li>English, US (en_US)</li>
152<li>English, Britain (en_GB)</li>
153<li>English, Canada(en_CA)</li>
154<li>English, Australia (en_AU)</li>
155<li>English, New Zealand (en_NZ)</li>
156<li>English, Singapore(en_SG)</li>
157<li>French, France (fr_FR)</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700158<li>French, Belgium (fr_BE)</li>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700159</ul>
160</td>
161<td style="border:0;padding-left:5em;">
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700162<li>French, Canada (fr_CA)</li>
163<li>French, Switzerland (fr_CH)</li>
164<li>German, Germany (de_DE)</li>
165<li>German, Austria(de_AT)</li>
166<li>German, Switzerland (de_CH)</li>
167<li>German, Liechtenstein (de_LI)</li>
168<li>Italian, Italy (it_IT)</li>
169<li>Italian, Switzerland (it_CH)</li>
170<li>Japanese (ja_JP)</li>
171<li>Korean (ko_KR)</li>
172<li>Polish (pl_PL)</li>
173<li>Russian (ru_RU)</li>
174<li>Spanish (es_ES)</li>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700175</td>
176</tr>
177</table>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700178
179<p>Localized UI strings match the locales that are displayable in
180the emulator, accessible through the device Settings application.</p>
181
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700182<h2 id="features">New Features</h2>
183
184<p>For a list of new system features, see the <a
185href="{@docRoot}sdk/android-1.5-highlights.html">Android 1.5 Platform
186Highlights</a> document.</p>
187
188<h2 id="api-changes">API Changes</h2>
189
190<h3>Overview</strong></h3>
191
192<ul>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700193<li>UI framework</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700194 <ul>
195 <li>Framework for easier background/UI thread interaction</li>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700196 <li>New {@link android.widget.SlidingDrawer SlidingDrawer} widget</li>
197 <li>New {@link android.widget.HorizontalScrollView HorizontalScrollview} widget</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700198 </ul>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700199</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700200
Dirk Dougherty6edea742009-04-24 11:32:25 -0700201<li>AppWidget framework
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700202 <ul>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700203 <li>APIs for creating secure home screen {@link android.appwidget
204AppWidgets}. For information about how to use AppWidgets, see the Developer's
205Guide <a href="{@docRoot}guide/topics/appwidgets/index.html">AppWidgets</a>
206documentation. Also see <a
207href="http://android-developers.blogspot.com/2009/04/introducing-home-screen-widgets-and.html">
208Introducing home screen widgets and the AppWidget
209framework</a> on the Android Developer's Blog.</li>
210 <li>APIs for populating {@link android.provider.LiveFolders Live Folders}
211 with custom content.</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700212 </ul>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700213</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700214
Dirk Dougherty6edea742009-04-24 11:32:25 -0700215<li>Media framework</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700216 <ul>
217 <li>Raw audio recording and playback APIs</li>
218 <li>Interactive MIDI playback engine</li>
219 <li>Video recording APIs for developers (3GP format)</li>
220 <li>Video and photo sharing Intents</li>
221 <li>Media search Intent</li>
222 </ul>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700223</li>
224
225<li>Input Method framework
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700226 <ul>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700227 <li>{@link android.inputmethodservice.InputMethodService Input Method
228 Service} framework</li>
229 <li>Text-prediction engine</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700230 <li>Ability to provide downloadable IMEs to users</li>
231 </ul>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700232</li>
233
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700234<li>Application-defined hardware requirements
Dirk Dougherty6edea742009-04-24 11:32:25 -0700235 <p>Applications can now use a new element in their manifest files, <a
236href="{@docRoot}guide/topics/manifest/uses-configuration-element.html">&lt;uses-
237configuration&gt;</a> to indicate to the Android system what hardware features
238they require in order to function properly. For example, an application might
239use the element to specify that it requires a physical keyboard or a particular
240navigation device, such as a trackball. Prior to installing the application, the
241Android system checks the attributes defined for the
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700242<code>&lt;uses-configuration&gt;</code> element and allows the installation to
Dirk Dougherty6edea742009-04-24 11:32:25 -0700243continue only if the required hardware is present.</p>
244</li>
245
246<li>Speech recognition framework
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700247 <ul>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700248 <li>Support for using speech recognition libraries via Intent. See {@link
249android.speech.RecognizerIntent RecognizerIntent}.</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700250 </ul>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700251</li>
252
253<li>Miscellaneous API additions
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700254 <ul>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700255 <li>LocationManager - Applications can get location change updates via
256 Intent</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700257 <li>WebView - Touch start/end/move/cancel DOM event support</li>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700258 <li>Redesigned {@link android.hardware.SensorManager Sensor Manager
259 APIs}</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700260 <li>GLSurfaceView - convenience framework for creating OpenGL
Dirk Dougherty6edea742009-04-24 11:32:25 -0700261 applications</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700262 <li>Broadcast Intent for app update install succeeded - for smoother app
Dirk Dougherty6edea742009-04-24 11:32:25 -0700263 upgrade experience</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700264 </ul>
Dirk Dougherty6edea742009-04-24 11:32:25 -0700265</li>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700266
267</ul>
268
Dirk Dougherty6edea742009-04-24 11:32:25 -0700269<h3 id="api-diff">API Change Details</h3>
Dirk Doughertyfe1f7892009-04-21 18:52:41 -0700270
271<p>For a detailed view of API changes in this platform (API Level 3), see the <a
272href="{@docRoot}sdk/api_diff/3/changes.html">API Differences Report</a>.</p>
The Android Open Source Projectc2ad2412009-03-19 23:08:54 -0700273
274
275
276
277
278