1page.title=Android 1.5 Platform
2excludeFromSuggestions=true
3sdk.platform.version=1.5
4sdk.platform.apiLevel=3
5sdk.platform.majorMinor=major
6
7@jd:body
8
9<div id="qv-wrapper">
10<div id="qv">
11
12<h2>In this document</h2>
13<ol>
14  <li><a href="#features">Platform Highlights</a></li>
15  <li><a href="#relnotes">Revisions</a></li>
16  <li><a href="#api-level">API Level</a></li>
17  <li><a href="#api">Framework API Changes</a>
18  <li><a href="#apps">Built-in Applications</a></li>
19  <li><a href="#locs">Locales</a></li>
20  <li><a href="#skins">Emulator Skins</a></li>
21
22    </ol>
23  </li>
24</ol>
25
26<h2>Reference</h2>
27<ol>
28<li><a
29href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
30Differences Report &raquo;</a> </li>
31</ol>
32
33<h2>See Also</h2>
34<ol>
35  <li><a href="{@docRoot}sdk/exploring.html">Exploring the SDK</a></li>
36</ol>
37
38</div>
39</div>
40
41<p>
42<em>API Level:</em>&nbsp;<strong>{@sdkPlatformApiLevel}</strong></p>
43
44<p>Android {@sdkPlatformVersion} is a {@sdkPlatformMajorMinor} platform release
45deployable to Android-powered handsets starting in May 2009.
46The release includes new features for users and developers, as well as changes
47in the Android framework API. </p>
48
49<p>For developers, the Android {@sdkPlatformVersion} platform is available as a
50downloadable component for the Android SDK. The downloadable platform includes a
51fully compliant Android library and system image, as well as a set of emulator
52skins, sample applications, and more. The downloadable platform is fully
53compliant and includes no external libraries. </p>
54
55<p>To get started developing or testing against the Android
56{@sdkPlatformVersion} platform, use the Android SDK and AVD Manager tool to
57download the platform into your Android 1.6 or later SDK. For more information,
58see <a href="{@docRoot}sdk/exploring.html">Exploring the
59SDK</a>.</p>
60
61
62<h2 id="features">Platform Highlights</h2>
63
64<p>For a list of new user features and platform highlights, see the <a
65href="http://developer.android.com/about/versions/android-{@sdkPlatformVersion}-highlights.html">Android
66{@sdkPlatformVersion} Platform Highlights</a> document.</p>
67
68<h2 id="relnotes">Revisions</h2>
69
70<p>The sections below provide notes about successive releases of
71the Android {@sdkPlatformVersion} platform component for the Android SDK, as denoted by
72revision number. To determine what revision(s) of the Android
73{@sdkPlatformVersion} platforms are installed in your SDK environment, refer to
74the "Installed Packages" listing in the Android SDK and AVD Manager.</p>
75
76<script type="text/javascript">
77function toggleDiv(link) {
78  var toggleable = $(link).parent();
79  if (toggleable.hasClass("closed")) {
80    //$(".toggleme", toggleable).slideDown("fast");
81    toggleable.removeClass("closed");
82    toggleable.addClass("open");
83    $(".toggle-img", toggleable).attr("title", "hide").attr("src", (toRoot + "assets/images/triangle-opened.png"));
84  } else {
85    //$(".toggleme", toggleable).slideUp("fast");
86    toggleable.removeClass("open");
87    toggleable.addClass("closed");
88    $(".toggle-img", toggleable).attr("title", "show").attr("src", (toRoot + "assets/images/triangle-closed.png"));
89  }
90  return false;
91}
92</script>
93<style>
94.toggleable {
95  padding: .25em 1em 0em 1em;
96  margin-bottom: 0;
97}
98.toggleme {
99  padding: 1em 1em 0 2em;
100  line-height:1em;
101}
102.toggleable a {
103  text-decoration:none;
104}
105.toggleme a {
106  text-decoration:underline;
107}
108.toggleable.closed .toggleme {
109  display:none;
110}
111#jd-content .toggle-img {
112  margin:0;
113}
114</style>
115
116<div class="toggleable opened">
117  <a href="#" onclick="return toggleDiv(this)">
118        <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-img" height="9px" width="9px" />
119        Android 1.5, Revision 4</a> <em>(May 2010)</em></a>
120  <div class="toggleme">
121<dl>
122<dt>Dependencies:</dt>
123<dd>
124<p>Requires SDK Tools r6 or higher.</p>
125</dd>
126
127<dt>Tools:</dt>
128<dd>
129<ul>
130<li>Adds support for library projects in the Ant build system.</li>
131<li>Fixes test project build in the Ant build system.</li>
132</ul>
133</dd>
134
135</dl>
136 </div>
137</div>
138
139<div class="toggleable closed">
140  <a href="#" onclick="return toggleDiv(this)">
141        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
142        Android 1.5, Revision 3</a> <em>(July 2009)</em></a>
143  <div class="toggleme">
144<dl>
145<dt>Dependencies:</dt>
146<dd>
147<p>Requires SDK Tools r3 or higher.</p>
148</dd>
149</dl>
150 </div>
151</div>
152
153<div class="toggleable closed">
154  <a href="#" onclick="return toggleDiv(this)">
155        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
156        Android 1.5, Revision 2</a> <em>(May 2009)</em></a>
157  <div class="toggleme">
158<p>Not available as an SDK component &mdash; please use Android 1.5, r3 instead. </p>
159 </div>
160</div>
161
162<div class="toggleable closed">
163  <a href="#" onclick="return toggleDiv(this)">
164        <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-img" height="9px" width="9px" />
165        Android 1.5, Revision 1</a> <em>(April 2009)</em></a>
166  <div class="toggleme">
167<p>Not available as an SDK component &mdash; please use Android 1.5, r3 instead. </p>
168 </div>
169</div>
170
171
172<h2 id="api-level">API Level</h2>
173
174<p>The Android {@sdkPlatformVersion} platform delivers an updated version of
175the framework API. The Android {@sdkPlatformVersion} API
176is assigned an integer identifier &mdash;
177<strong>{@sdkPlatformApiLevel}</strong> &mdash; that is
178stored in the system itself. This identifier, called the "API Level", allows the
179system to correctly determine whether an application is compatible with
180the system, prior to installing the application. </p>
181
182<p>To use APIs introduced in Android {@sdkPlatformVersion} in your
183application, you need to set the proper value, "{@sdkPlatformApiLevel}", in the
184<code>android:minSdkVersion</code> attributes of the <code>&lt;uses-sdk&gt;</code>
185element in your application's manifest. </p>
186
187<p>For more information about how to use API Level, see the <a
188href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">API Levels</a> document. </p>
189
190
191<h2 id="api">Framework API Changes</h2>
192
193<p>The sections below provide information about the application framework API provided by the Android {@sdkPlatformVersion} platform. </p>
194
195<h3>UI framework</h3>
196  <ul>
197    <li>Framework for easier background/UI thread interaction</li>
198    <li>New {@link android.widget.SlidingDrawer SlidingDrawer} widget</li>
199    <li>New {@link android.widget.HorizontalScrollView HorizontalScrollview} widget</li>
200  </ul>
201
202<h3>AppWidget framework</h3>
203  <ul>
204    <li>APIs for creating secure home screen {@link android.appwidget
205AppWidgets}. For information about how to use AppWidgets, see the Developer's
206Guide <a href="{@docRoot}guide/topics/appwidgets/index.html">AppWidgets</a>
207documentation. Also see <a
208href="http://android-developers.blogspot.com/2009/04/introducing-home-screen-widgets-and.html">
209Introducing home screen widgets and the AppWidget
210framework</a> on the Android Developer's Blog.</li>
211    <li>APIs for populating {@link android.provider.LiveFolders Live Folders}
212        with custom content.</li>
213  </ul>
214
215<h3>Media framework</h3>
216  <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>
223
224<h3>Input Method framework </h3>
225   <ul>
226    <li>{@link android.inputmethodservice.InputMethodService Input Method
227        Service} framework</li>
228    <li>Text-prediction engine</li>
229    <li>Ability to provide downloadable IMEs to users</li>
230  </ul>
231
232<h3>Application-defined hardware requirements</h3>
233
234<p>Applications can now use a new element in their manifest files, <a
235href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><code>&lt;uses-configuration&gt;</code></a>
236 to indicate to the Android system what hardware features
237they require in order to function properly. For example, an application might
238use the element to specify that it requires a physical keyboard or a particular
239navigation device, such as a trackball. Prior to installing the application, the
240Android system checks the attributes defined for the
241<code>&lt;uses-configuration&gt;</code> element and allows the installation to
242continue only if the required hardware is present.</p>
243
244<h3>Speech recognition framework</h3>
245    <ul>
246    <li>Support for using speech recognition libraries via Intent. See {@link
247android.speech.RecognizerIntent RecognizerIntent}.</li>
248  </ul>
249
250<h3>Miscellaneous API additions</h3>
251  <ul>
252    <li>LocationManager - Applications can get location change updates via
253        Intent</li>
254    <li>WebView - Touch start/end/move/cancel DOM event support</li>
255    <li>Redesigned {@link android.hardware.SensorManager Sensor Manager
256        APIs}</li>
257    <li>GLSurfaceView - convenience framework for creating OpenGL
258        applications</li>
259    <li>Broadcast Intent for app update install succeeded - for smoother app
260        upgrade experience</li>
261  </ul>
262
263
264<h3 id="api-diff">API differences report</h3>
265
266<p>For a detailed view of API changes in Android {@sdkPlatformVersion} (API Level {@sdkPlatformApiLevel}), as compared to
267the previous version, see the <a href="{@docRoot}sdk/api_diff/{@sdkPlatformApiLevel}/changes.html">API
268Differences Report</a>.</p>
269
270
271<h2 id="apps">Built-in Applications</h2>
272
273<p>The system image included in the downloadable platform provides these
274built-in applications:</p>
275
276<table style="border:0;padding-bottom:0;margin-bottom:0;">
277<tr>
278<td style="border:0;padding-bottom:0;margin-bottom:0;">
279	<ul>
280	<li>Alarm Clock</li>
281	<li>Browser</li>
282	<li>Calculator</li>
283	<li>Camcorder</li>
284	<li>Camera</li>
285	<li>Contacts</li>
286	<li>Custom Locale (developer app)</li>
287	<li>Dev Tools (developer app)</li>
288	</ul>
289</td>
290<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
291	<ul>
292	<li>Dialer</li>
293	<li>Email</li>
294	<li>Gallery</li>
295	<li>IME for Japanese text input</li>
296	<li>Messaging</li>
297	<li>Music</li>
298	<li>Settings</li>
299	<li>Spare Parts (developer app)</li>
300	</ul>
301</td>
302</tr>
303</table>
304
305<h2 id="locs" style="margin-top:.75em;">Locales</h2>
306
307<p>The system image included in the downloadable platform provides a variety of
308built-in locales. In some cases, region-specific strings are available for the
309locales. In other cases, a default version of the language is used. The
310languages that are available in the Android {@sdkPlatformVersion} system
311image are listed below (with <em>language</em>_<em>country/region</em>
312locale descriptor).</p>
313
314<table style="border:0;padding-bottom:0;margin-bottom:0;">
315<tr>
316<td style="border:0;padding-bottom:0;margin-bottom:0;">
317<ul>
318<li>Chinese, PRC (zh_CN)</li>
319<li>Chinese, Taiwan (zh_TW)</li>
320<li>Czech (cs_CZ)</li>
321<li>Dutch, Netherlands (nl_NL)</li>
322<li>Dutch, Belgium (nl_BE)</li>
323<li>English, US (en_US)</li>
324<li>English, Britain (en_GB)</li>
325<li>English, Canada (en_CA)</li>
326<li>English, Australia (en_AU)</li>
327<li>English, New Zealand (en_NZ)</li>
328<li>English, Singapore(en_SG)</li>
329<li>French, France (fr_FR)</li>
330<li>French, Belgium (fr_BE)</li>
331</ul>
332</td>
333<td style="border:0;padding-bottom:0;margin-bottom:0;padding-left:5em;">
334<li>French, Canada (fr_CA)</li>
335<li>French, Switzerland (fr_CH)</li>
336<li>German, Germany (de_DE)</li>
337<li>German, Austria (de_AT)</li>
338<li>German, Switzerland (de_CH)</li>
339<li>German, Liechtenstein (de_LI)</li>
340<li>Italian, Italy (it_IT)</li>
341<li>Italian, Switzerland (it_CH)</li>
342<li>Japanese (ja_JP)</li>
343<li>Korean (ko_KR)</li>
344<li>Polish (pl_PL)</li>
345<li>Russian (ru_RU)</li>
346<li>Spanish (es_ES)</li>
347</td>
348</tr>
349</table>
350
351<p>Localized UI strings match the locales that are accessible
352through Settings.</p>
353
354<h2 id="skins">Emulator Skins</h2>
355
356<p>The downloadable platform includes a set of emulator skins that you can use for modeling your application in different screen sizes and resolutions. The emulator skins are: </p>
357
358<ul>
359  <li>
360    QVGA-P (240x320, low density, small screen)
361  </li>
362  <li>
363    QVGA-L (320x480, low density, small screen)
364  </li>
365  <li>
366    HVGA (320x480, medium density, normal screen)
367  </li>
368  <li>
369    HVGA-P (320x480, medium density, normal screen)
370  </li>
371  <li>
372    HVGA-L (320x480, medium density, normal screen)
373  </li>
374</ul>
375
376<p>For more information about how to develop an application that displays and functions properly on all Android-powered devices, see <a href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>.</p>
377