blob: c9ab42e01e9eccfc7281f9d2a681e29ca4872f99 [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>
19<!-- <li><a href="#resolved-issues">Resolved Issues</a> -->
20<li><a href="#features">Android 1.5 Platform Highlights</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 delivered in the SDK (as library and system image) is
27the development counterpart to the Android 1.5 production system image,
28deployable to Android-powered handsets starting in May 2009. The system is fully
29compliant and includes no external libraries. This is the first version of the
30Android SDK that does not include the Maps external library.</p>
31
32<p>The Android 1.5 system delivers an updated version of the framework
33API. As with previous versions, the Android 1.5 API
34is assigned an integer identifier &mdash; <strong>3</strong> &mdash; that is
35stored in the system itself. This identifier, called the "API Level", allows the
36system to correctly determine whether an application is compatible with
37the system, prior to installing the application.</p>
38
39<p>Applications can reference a specific API Level value in their
40manifest files, to indicate the minimum version of the Android system
41required to run the application. To reference a minimum API Level, applications
42can add a <code>minSdkVersion</code> attribute in their manifest files.
43The value of the attribute is an integer corresponding to an API Level
44identifier. Prior to installing an application, the system then checks the value of
45<code>minSdkVersion</code> and allows the install only
46if the referenced integer is less than or equal to the API Level integer stored
47in the system itself. </p>
48
49<p>When you migrate your application to the new SDK, you will need to choose
50the platform version against which you will compile your application. In
51general, you should compile your application against the lowest possible
52version of the platform that your application can support. After you determine
53the lowest version, you should ensure that your application's manifest file
54defines the API Level of the lowest compatible platform version in the
55<code>minSdkVersion</code> attribute.
56
57<p>After compiling your application, you should make sure to test it on the
58platform specified in the application's <code>minSdkVersion</code> attribute. To
59ensure forward-compatibility, you should also run the application on platforms
60using a higher API Level than that used by your application. To run your
61application against different platform versions in the emulator, you create an
62AVD for each platform version that you want to test. For more information about
63AVDs, see <a href="{@docRoot}guide/developing/tools/avd.html">Android Virtual
64Devices</a>. If you are using a physical device for testing, ensure that you
65know the API Level of the Android platform it runs.</p>
66
67<p>If you build an application using the Android 1.5 library and your
68application makes use of any APIs introduced in API Level 3, you <strong><span
69style="color:red;">must</span></strong> set the
70<code>android:minSdkVersion</code> attribute in the application's manifest to
71"3". </p>
72
73<p>Specifically, you define the <code>android:minSdkVersion</code>
74attribute in a <code>&lt;uses-sdk&gt;</code> element as a child of
75<code>&lt;manifest&gt;</code> in the manifest file. When set, the
76attribute looks like this: </p>
77
78<pre>&lt;manifest&gt;
79 ...
80 &lt;uses-sdk minSdkVersion="3" /&gt;
81 ...
82&lt;/manifest&gt;</pre>
83
84<p>By setting <code>android:minSdkVersion</code> in this way, you ensure that
85users will only be able to install your application if their devices are running
86a compatible version of the Android platform. In turn, this ensures that your
87application will function properly on their devices. This is especially
88important if your application uses <a href="#apichange">APIs or system features
89introduced in Android 1.5</a>. </p>
90
91<p>If your application uses APIs introduced in Android 1.5 but does not
92declare <code>&lt;uses-sdk minSdkVersion="3" /&gt;</code>, then it will
93run properly on Android 1.5 devices but <em>not</em> on Android 1.0
94devices. In the latter case, the application will crash at runtime when
95it tries to use the Android 1.5 APIs.</p>
96
97<p>Conversely, if your application does not use any new APIs introduced in
98Android 1.5, the application will in most cases function normally on devices
99running a later version of the platform. However, if you have published
100the application, you are strongly encouraged to install and test your
101application on the Android 1.5 system image included in the SDK. This will
102ensure a smooth transition for users, as they upgrade their devices to
103the new version of the Android platform. </p>
104
105<p>Finally, if your application does not use any new APIs introduced since
106Android 1.1, you can indicate general Android 1.1 compatibility by
107setting the attribute to "2". If your application does not use any
108new APIs introduced since Android 1.0, you can remove the attribute or
109set it to "1". However,
110before publishing your application, you must make sure to compile your
111application against the Android library that corresponds to the application's
112<code>minSdkVeresion</code> value.</p>
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>Browser</li>
120 <li>Calculator</li>
121 <li>Camcorder</li>
122 <li>Camera</li>
123 <li>Contacts</li>
124 <li>Custom Locale (developer app)</li>
125 <li>Dev Tools (developer app)</li>
126 <li>Dialer</li>
127 <li>Email</li>
128 <li>Gallery</li>
129 <li>Messaging</li>
130 <li>Music</li>
131 <li>Settings</li>
132 <li>Spare Parts (developer app)</li>
133 </ul>
134
135<h2 id="locs">Locales</h2>
136
137<p>The system image provides a variety of built-in locales. In some cases,
138region-specific strings are available for the locales. In other cases,
139a default version of the language is used. The languages that will be
140available in the Android 1.5 system image are listed below (with
141<em>language</em>_<em>country/region</em> locale descriptor).</p>
142
143<div class="g-unit g-first" style="whitespace:nowrap;width:35%;">
144<ul>
145<li>Chinese, PRC (zh_CN)</li>
146<li>Chinese, Taiwan (zh_TW)</li>
147<li>Czech (cs_CZ)</li>
148<li>Dutch, Netherlands (nl_NL)</li>
149<li>Dutch, Belgium (nl_BE)</li>
150<li>English, US (en_US)</li>
151<li>English, Britain (en_GB)</li>
152<li>English, Canada(en_CA)</li>
153<li>English, Australia (en_AU)</li>
154<li>English, New Zealand (en_NZ)</li>
155<li>English, Singapore(en_SG)</li>
156<li>French, France (fr_FR)</li>
157</div>
158<div class="g-unit" style="whitespace:nowrap;">
159<li>French, Belgium (fr_BE)</li>
160<li>French, Canada (fr_CA)</li>
161<li>French, Switzerland (fr_CH)</li>
162<li>German, Germany (de_DE)</li>
163<li>German, Austria(de_AT)</li>
164<li>German, Switzerland (de_CH)</li>
165<li>German, Liechtenstein (de_LI)</li>
166<li>Italian, Italy (it_IT)</li>
167<li>Italian, Switzerland (it_CH)</li>
168<li>Japanese (ja_JP)</li>
169<li>Korean (ko_KR)</li>
170<li>Polish (pl_PL)</li>
171<li>Russian (ru_RU)</li>
172<li>Spanish (es_ES)</li>
173</ul>
174</div>
175
176<p>Localized UI strings match the locales that are displayable in
177the emulator, accessible through the device Settings application.</p>
178
179<!--
180<h2 id="resolved-issues">Resolved Issues</h2>
181<ul>
182<li><font color="red"><strong></strong></font></li>
183</ul>
184-->
185
186<h2 id="features">New Features</h2>
187
188<p>For a list of new system features, see the <a
189href="{@docRoot}sdk/android-1.5-highlights.html">Android 1.5 Platform
190Highlights</a> document.</p>
191
192<h2 id="api-changes">API Changes</h2>
193
194<h3>Overview</strong></h3>
195
196<ul>
197 <li>UI framework</li>
198 <ul>
199 <li>Framework for easier background/UI thread interaction</li>
200 <li>New SlidingDrawer widget</li>
201 <li>Horizontal ScrollView widget</li>
202 </ul>
203
204 <li>Home Screen framework</li>
205 <ul>
206 <li>APIs for creating secure home screen widgets</li>
207 <li>APIs for populating live folders with custom content</li>
208 </ul>
209
210 <li>Media framework</li>
211 <ul>
212 <li>Raw audio recording and playback APIs</li>
213 <li>Interactive MIDI playback engine</li>
214 <li>Video recording APIs for developers (3GP format)</li>
215 <li>Video and photo sharing Intents</li>
216 <li>Media search Intent</li>
217 </ul>
218 <li>Input Method framework </li>
219 <ul>
220 <li>Text prediction engine</li>
221 <li>Ability to provide downloadable IMEs to users</li>
222 </ul>
223<li>Application-defined hardware requirements
224<p>Applications can now use a new element in their manifest files, <a
225href="{@docRoot}guide/topics/manifest/uses-configuration-element.html">
226&lt;uses-configuration&gt;</a> to indicate to the Android system what hardware
227features they require in order to function properly. For example, an application
228might use the element to specify that it requires a physical keyboard or a
229particular navigation device, such as a trackball. Prior to installing the
230application, the Android system checks the attributes defined for the
231<code>&lt;uses-configuration&gt;</code> element and allows the installation to
232continue only if the required hardware is present.</p></li>
233 <li>Speech recognition framework</li>
234 <ul>
235 <li>Support for using speech recognition libraries via Intent</li>
236 </ul>
237 <li>Misc API additions</li>
238 <ul>
239 <li> LocationManager - Applications can get location change updates via
240Intent</li>
241 <li>WebView - Touch start/end/move/cancel DOM event support</li>
242 <li>SensorManager - redesigned sensor APIs</li>
243 <li>GLSurfaceView - convenience framework for creating OpenGL
244applications</li>
245 <li>Broadcast Intent for app update install succeeded - for smoother app
246upgrade experience</li>
247 </ul>
248
249</ul>
250
251<h3>API Change Details</h3>
252
253<p>For a detailed view of API changes in this platform (API Level 3), see the <a
254href="{@docRoot}sdk/api_diff/3/changes.html">API Differences Report</a>.</p>
The Android Open Source Projectc2ad2412009-03-19 23:08:54 -0700255
256
257
258
259
260