summaryrefslogtreecommitdiffstats
path: root/docs/html/sdk/RELEASENOTES.jd
blob: d69697ab46ac6ec8b5facd5c04c6aa6d4b61e7c3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
page.title=SDK Release Notes
excludeFromSuggestions=true
@jd:body

<p>This document provides version-specific information about Android SDK
releases. <!--For the latest known issues, please ensure that you're viewing this
page at <a
href="http://developer.android.com/sdk/RELEASENOTES.html">http://developer.
android.com/sdk/RELEASENOTES.html</a>.--></p>

<h2 id="multiversion_r1">Android SDK</h2>

<p>The Android SDK has changed! If you've worked with the Android SDK before,
you will notice several important differences:</p>

<ul>
<li style="margin-top:.5em">The SDK downloadable package includes <em>only</em>
the latest version of the Android SDK Tools.</li>
<li>Once you've installed the SDK, you now use the Android SDK and AVD Manager
to download all of the SDK components that you need, such as Android platforms,
SDK add-ons, tools, and documentation. </li>
<li>The new approach is modular &mdash; you can install only the components you
need and update any or all components without affecting your development
environment.</li>
<li>In short, once you've installed the new SDK, you will not need to download
an SDK package again. Instead, you will use the Android SDK and AVD Manager to
keep your development environment up-to-date. </li>
</ul>

<p>Note that if you are currently using the Android 1.6 SDK, you do not
necessarily need to install the new SDK, since your existing SDK already
includes the Android SDK and AVD Manager tool. To develop against Android 2.0.1,
for example, you could just download the Android 2.0.1 platform into your existing
SDK. </p>

<p>Release notes for Android platforms and other SDK components are
now available from the "SDK" tab, under "Downloadable SDK Components."</p>

<ul>
<li>Notes for the Android 2.0.1 platform are in the <a
href="{@docRoot}about/versions/android-2.0.1.html">Android 2.0.1, Release 1</a> document. </li>
<li>You can find information about tools changes in the <a
href="{@docRoot}tools/sdk/tools-notes.html#notes">SDK Tools</a> and <a
href="{@docRoot}tools/sdk/eclipse-adt.html#notes">ADT Plugin for Eclipse</a>.</li>
</ul>

<p>To get started with the SDK, review the Quick Start summary on the <a
href="{@docRoot}sdk/index.html">Android SDK download page</a> or read <a
href="{@docRoot}sdk/installing/index.html">Installing the SDK</a> for detailed
installation instructions. </p>


<h2 id="1.6_r1">Android 1.6 SDK, Release 1</h2>

<p>This SDK provides updates to the development tools and Android system that
you use to create applications for compliant Android-powered devices. </p>

<h3>Release Overview</h3>

<p>This SDK release includes several new features for developers. Highlights of the
changes include: </p>

  <ul>
    <li>Emulator support for multiple screen sizes/densities, including new
skins. </li>
    <li>Android SDK and AVD Manager, a graphical UI to let you manage your
SDK and AVD environments more easily. The tool lets you create and manage 
your <a href="{@docRoot}tools/devices/managing-avds.html">Android Virtual
Devices</a> and download new SDK packages (such as platform versions and 
add-ons) into your environment.</li>
    <li>Improved support for test packages in New Project Wizard</li>
    <li>The reference documentation now offers a "Filter by API Level" 
capability that lets you display only the parts of the API that are actually 
available to your application, based on the <code>android:minSdkVersion</code>
value the application declares in its manifest. For more information, see
<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">Android API Levels</a></li>
  </ul>

<p>For details about the Android platforms included in the SDK &mdash; including
bug fixes, features, and API changes &mdash; please read the <a
href="android-1.6.html">Android 1.6 version notes</a>.</p>

<h3>Installation and Upgrade Notes</h3>

<p>If you've been developing an application using an Android 1.1 SDK, you need
to make a few changes to your development environment to migrate to the new SDK.
Tools and documentation are provided to assist you. No changes to the source
code of an existing application should be needed, provided that your application
is not using Android internal structures or APIs.</p>

<p>To ensure that your existing application will work properly on a device
running the latest version of the Android platform, you are strongly encouraged
to migrate the application to the new SDK, compile it using the platform
matching the application's original API Level, and run it against the most
current platform. </p>

<h3>ADT Plugin for Eclipse</h3>

<p>An updated version of the ADT Plugin for Eclipse is available with the
Android 1.6 SDK. The new version, ADT 0.9.3, provides several new
features, including integrated support for the Android SDK and AVD Manager
and zipalign tool. In addition, the New Project Wizard now
lets you create a test package containing tests for your application. These
features are described in the sections below. </p>

<p>If you are developing in Eclipse with ADT and want to get started with the
Android 1.6 SDK, you should download and install a compatible version of the ADT
Plugin (0.9.3 or higher). </p>

<p>The new version of ADT is downloadable from the usual remote update site or
is separately downloadable as a .zip archive. For instructions on how to
download the plugin, please see <a
href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>. </p>

<h3>Android SDK and AVD Manager</h3>

<p>The SDK offers a new tool called Android SDK and AVD Manager that lets you 
manage your SDK and AVD environments more efficiently. </p>

<p>Using the tool, you can quickly check what Android platforms, add-ons,
extras, and documentation packages are available in your SDK environment, what
their versions are, and whether updated versions are available. You can then
download one or more items from remote repositories and install them directly in
your SDK environment. For example, the tool lets you obtain updates to SDK tools
incrementally, as they are made available, without having to wait for the next
SDK release. You can also download Android platform versions into your
environment that were not included in the SDK package.</p>

<p>The tool also lets you quickly create new AVDs, manage
their properties, and run a target AVD from a single window. </p>

<p>If you are developing in Eclipse with ADT, you can access the Android SDK 
and AVD Manager from the <strong>Window</strong> menu. </p>

<p>If you are developing in another IDE, you can access the Android SDK and 
AVD Manager through the <code>android</code> command-line tool, located in the
&lt;sdk&gt;/tools directory. You can launch the tool with a graphical UI by
using the <code>android</code> command without specifying any options. You can
also simply double-click the android.bat (Windows) or android (OS X/Linux) file.
You can still use <code>android</code> commands to create and manage AVDs, 
including AVDs with custom hardware configurations.</p>

<h3>Integration with zipalign</h3>

<p>The Android system offers a performance optimization for installed
application packages whose contained uncompressed files are all aligned on
4-byte boundaries. For these .apks, the system can read the files by mmap'ing
the zip file, rather than by copying all the data out of them. This reduces
the amount of memory used by the application at run time. The SDK includes
a tool called <code>zipalign</code> that you can run against your .apks, to
align them properly and enable them to benefit from this optimization.</p>

<p>The ADT Plugin and the Ant build tools both provide integrated support for
aligning your application packages. After you build an .apk, the SDK tools can
sign and then run <code>zipalign</code> against it. The SDK includes the
standalone version of the <code>zipalign</code> tool, so you can run also run it
manually from the command line if you choose. </p>

<ul>
  <li>If you are developing in Eclipse with ADT, support for
<code>zipalign</code> is integrated into the Export Wizard. When you use the
Wizard to export a signed application package, ADT signs and then automatically
runs <code>zipalign</code> against the exported package. If you use the Wizard 
to export an unsigned application package, then it will not zipalign the 
package because zipalign must be performed only after the APK has been signed. 
You must manually sign and zipalign the package after export. </li>
  <li>If you are developing using Ant and are compiling in release mode, the
build tools will automatically sign and then <code>zipalign</code> the
application package, provided that you have specified the location of a valid
keystore in the build properties file. If you are compiling in debug mode, the
build tools will sign the package with the debug key and then <code>zipalign</code>
it.</li>
  <li>To use <code>zipalign</code> manually, change to the SDK tools directory
and use the command syntax <code>$ zipalign 4 &lt;infile&gt;
&lt;outfile&gt;</code></li>
</ul>

<p>In general, note that you must <code>zipalign</code> an application only
<em>after</em> it has been signed, as signing will disrupt the package
alignment.</p>

<h3>Support for Test Packages in New Project Wizard</h3>

<p>The New Project Wizard available in the ADT 0.9.3 now lets you add a test
package containing Instrumentation or other classes of tests while you are 
creating or importing a new Android application project. </p>

<h3>New USB Driver for Windows</h3>

<p>If you are using Windows and want to develop or test your application on an
Android-powered device (such as the T-Mobile G1), you need an appropriate USB
driver. 

<p>The Windows version of the Android 1.6 SDK includes a new, WinUSB-based
driver that you can install. The driver is compatible with both 32- and 64-bit
versions of Windows XP and Vista. The driver represents an upgrade from the USB
driver included in previous Android SDKs, although installing the new driver is
not required. </p>

<p>If you installed the USB driver from a previous SDK release and it is working
properly, you do not need to upgrade to the new driver. However, we recommend
upgrading if you have had any problems with the older driver or simply want
to upgrade to the latest version.</p>

<p>For driver installation or
upgrade instructions, see  <a
href="{@docRoot}sdk/win-usb.html">USB Driver for Windows</a>.</p>
</p>

<h3>Emulator Skins, Android 1.6 Platform</h3>

<p>The Android 1.6 platform included in the SDK provides a new set of emulator
skins, including: </p>

<ul>
  <li>QVGA &mdash; 240 x 320, low density (120 dpi)</li>
  <li>HVGA &mdash; 320 x 480, medium density (160 dpi)</li>
  <li>WVGA800  &mdash; 480 x 800, high density (240 dpi)</li>
  <li>WVGA854  &mdash; 480 x 854, high density (240 dpi)</li>
</ul>

<p>Besides these defaults, You can also create an AVD that overrides the default
density for each skin, to create any combination of resolution/density (WVGA
with medium density, for instance).  To do so, use the <code>android</code> tool
command line to create a new AVD that uses a custom hardware configuration. See
<a href="{@docRoot}tools/devices/managing-avds.html#createavd">Creating an
AVD</a> for more information.</p>

<h3>Other Notes and Resolved Issues</h3>

<ul>
  <li>This SDK release adds support for Eclipse 3.5 (Galileo) and deprecates
support for Eclipse 3.3 (Europa). </li>
  <li>We regret to inform developers that Android 1.6 will not include support
for <a href="http://www.ietf.org/rfc/rfc2549">RFC 2549</a></li>
  <li>The issue preventing adb from recognizing Samsung Galaxy devices (linux SDK
only) has been fixed.</li>
</ul>


<h2 id="1.5_r3">Android 1.5 SDK, Release 3</h2>

<p>Provides an updated Android 1.5 system image that includes permissions
fixes, as described below, and a new application &mdash; an IME for Japanese 
text input. Also provides the same set of developer tools included in the 
previous SDK, but with bug fixes and several new features.</p>

<h3>Permissions Fixes</h3>

<p>The latest version of the Android platform, deployable to 
Android-powered devices, includes fixes to the permissions-checking
in certain areas of the framework. Specifically, the Android system
now properly checks and enforces several existing permissions where it
did not do so in the previous release. Because of these changes in 
enforcement, you are strongly encouraged to test your application 
against the new Android 1.5 system image included in this SDK, to ensure 
that it functions normally. </p>

<p>In particular, if your application uses any of the system areas listed below,
you should add the required permissions to the application's manifest and then
test the areas of your code that depend on the permission-protected services.
Even if you believe your application does not use the permissions-protected
services, you should compile and test your application under the latest platform
version to ensure that users will not encounter problems when using your
application. </p>

<p>The changes to permissions are as follows:</p>

<ul>
<li>When an application requests access to device camera (through
android.hardware.camera), the <code>CAMERA</code> permission check is now
properly enforced. </li>
<li>When an application requests access to device audio capture (through
android.media.MediaRecorder), the <code>RECORD_AUDIO</code> permission check is
now properly enforced.</li>
</ul>

<p>For more information, see the issue described in the oCert advisory
below:</p>

<p style="margin-left: 2em;"><a href="http://www.ocert.org/advisories/ocert-2009-011.html">http://www.ocert.org/advisories/ocert-2009-011.html</a> </p>

<h3>Resolved Issues, Changes</h3>

<ul>
<li>The SDK includes a new version of the Google APIs add-on. The add-on
provides an updated com.google.android.maps external library that fixes compile
errors related to certain classes such as GeoPoint. For information about the
Google APIs add-on and the library it provides, see:

<p style="margin-left:2em;"><a
href="http://code.google.com/android/add-ons/google-apis">http://code.google.com/android/add-ons/google-apis</a> </p></li>

<li>The SDK add-on architecture now lets device manufacturers specify a USB
Vendor ID in their add-ons. 
<li>The <code>android</code> tool provides a new command that scans SDK add-ons
for their USB Vendor IDs and makes them available to adb (OS X and Linux
versions of the SDK only). The command is  <code>android update adb</code>. On
Windows versions of the SDK, a custom USB driver is included that supports the
"Google" and "HTC" Vendor IDs, which allow adb to recognize G1 and HTC
Magic devices. For other devices, contact the device manufacturer 
to obtain a USB driver, especially if you have an SDK add-on that defines 
a new USB Vendor ID.</li>
<li>The telephony, sensor, and geo fix issues in the emulator are now
fixed.</li>
<li>When you use adb to uninstall an upgraded application, the Android system
now properly restores any permissions that had already been granted to the
previous (downgrade) version of the application</li>
</ul>

<h2 id="1.5_r2">Android 1.5 SDK, Release 2</h2>

<p>This SDK release provides the same developer tools as the Android 1.5 SDK,
Release 1, but provides an updated Android 1.5 system image that includes a
security patch for the issue described in the oCert advisory below:</p>

<p style="margin-left:2em;"><a href="http://www.ocert.org/advisories/ocert-2009-006.html">http://www.ocert.org/advisories/ocert-2009-006.html</a></p>

<h2 id="1.5_r1">Android 1.5 SDK, Release 1</h2>

<p>This SDK provides updates to the development tools and Android system that
you use to create applications for compliant Android-powered devices. </p>

<h3>Release Overview</h3>

<p>This SDK release includes many new features for developers. Highlights of the
changes include: </p>

  <ul>
    <li>Multiple versions of the Android platform are included (Android 1.1,
Android 1.5). The tools are updated to let you deploy your application
on any platform in the SDK, which helps you ensure forward-compatibility and, 
if applicable, backward-compatibility.</li>
    <li>Introduces <a href="{@docRoot}tools/devices/managing-avds.html">Android
Virtual Devices</a> &mdash; (AVD) configurations of options that you
run in the emulator to better model actual devices. Each AVD gets its
own dedicated storage area, making it much easier to work with multiple emulators 
that are running concurrently.</li>
    <li>Support for SDK add-ons, which extend the
Android SDK to give you access to one or more external Android libraries and/or
a customized (but compliant) system image that can run in the emulator. </li>
    <li>The new Eclipse ADT plugin (version 0.9.x) offers new Wizards to let you
create projects targeted for specific Android configurations, generate XML
resources (such as layouts, animations, and menus), generate alternate layouts,
and export and sign your application for publishing.</li>
    <li>Improved JUnit support in ADT</li>
    <li>Easier profiling of performance</li>
    <li>Easier management of localized applications. You can now include or
exclude locale resources when building your APK from a single
Android project.</li>
    <li>A new tool called "android" replaces the activitycreator script.</li>
  </ul>

<p>For details about the Android platforms included in the SDK &mdash; including
bug fixes, features, and API changes &mdash; please read the <a
href="{@docRoot}about/versions/android-1.5.html">Android 1.5 version notes</a>.</p>

<h3>Installation and Upgrade Notes</h3>

<p>If you've been developing an application using an Android 1.1 SDK, you need
to make a few changes to your development environment to migrate to the new SDK.
Tools and documentation are provided to assist you. No changes to the source
code of an existing application should be needed, provided that your application
is not using Android internal structures or APIs.</p>

<p>To ensure that your existing application will work properly on a device
running the latest version of the Android platform, you are strongly encouraged
to migrate the application to the new SDK, compile it using the platform
matching the application's original API Level, and run it against the most
current platform. </p>

<h3>SDK Add-Ons</h3>

<p>This version of the SDK introduces support for SDK add-ons, which extend the
Android SDK to give you access to one or more external Android libraries and/or
a customized (but compliant) system image that can run in the emulator. The
purpose of an SDK add-on is to give you a way to develop applications for a
specific actual device (or family of devices) that extends the APIs available to
Android applications through external libraries or system customizations. </p>

<p>From the perspective of your Android development environment, an SDK add-on
is similar to any of the Android platform targets included in the SDK &mdash; it
includes an external library, a system image, as well as custom emulator skins
and system properties. The add-on differs in that the Android platform it
provides may include customized UI, resources, or behaviors, a different set of
preinstalled applications, or other similar modifications. 

<p>The SDK includes a single SDK add-on &mdash; the Google APIs add-on. The
Google APIs add-on gives your application access to the com.google.android.maps
external library that is included on many (if not most) Android-powered devices. 
The Google APIs add-on also includes a {@link android.location.Geocoder Geocoder}
backend service implementation. For more information, see the "Maps External 
Library" section below. </p>

<h3>Android Virtual Devices (AVDs)</h3>

<p>The SDK now gives you the capability to compile an application against any
one of several system targets, then run it in the emulator on top of any
compatible system image. There are two types of targets:</p>
<ul>
<li>Targets that represent core Android platform versions. </li>
<li>Targets that are SDK add-ons, which typically provide application access to
one or more external libraries and/or a customized (but compliant) system image
that can run in the emulator. 
</ul>

<p>A new tool called "android" lets you discover what targets and AVDs are
available to use.</p>

<p>For more information about AVDs, see <a
href="{@docRoot}tools/devices/index.html">Creating and Managing Virtual Devices</a>

<h3>Other Notes</h3>

<p><strong>Maps External Library</strong></p>

<p>In previous versions of the SDK, the com.google.android.maps package was
included in the standard Android library and system image. In the Android 1.5
SDK, that is not the case. The Android 1.5 library and system image do not
include the Maps external library (com.google.android.maps). However, the Maps
external library is available as part of the Google APIs add-on for the Android
SDK, downloadable from this location: </p>

<p style="margin-left:2em;"><a
href="http://code.google.com/android/add-ons/google-apis">http://code.google.com
/android/add-ons/google-apis</a> </p>

<p>For your convenience, the Google APIs add-on is included in the SDK. </p>

<p>For information about how to register for a Maps API Key, see 
<a href="http://code.google.com/android/add-ons/google-apis/mapkey.html">
Obtaining a Maps API Key</a>.</p>

<p><strong>USB Drivers for Windows</strong></p>

<p>If you are using Windows and want to develop or test your application on an
Android-powered device (such as the T-Mobile G1), you need an appropriate USB
driver. For your convenience, the Windows version of the Android SDK includes
these USB drivers that you can install, to let you develop on the device:</p>

<ul>
<li>USB driver for 32-bit XP and Vista</li>
<li>USB driver for 64-bit Vista only</li>
</ul>

<p>For driver installation or
upgrade instructions, see  <a
href="{@docRoot}sdk/win-usb.html">USB Driver for Windows</a>.</p>
</p>

<h3>Resolved Issues, Changes</h3>

<p><strong>Media</strong></p>
<ul>
<li>Updated documentation for {@link android.media.SoundPool
android.media.SoundPool}</li>
<li>{@link android.webkit.WebView} objects no longer automatically save
thumbnails. The {@link android.webkit.WebView#capturePicture() capturePicture()}
method will need to be called manually.</li>
</ul>

<h3>Known Issues</h3>

<p><strong>Sensor problems in Emulator</strong></p>

<ul>
<li>If your application uses the Sensor API and you are running it in the
emulator on the Android 1.5 system image, you may experience problems. Your
application may generate ANR messages or crash when using the sensors. The
problem is being investigated.</li>
</ul>

<p><strong>Other</strong></p>

<ul>
<li>We regret to inform developers that Android 1.5 will not include support for
the Zilog Z80 processor architecture.</li>
</ul>


<h2 id="1.1_r1">Android 1.1 SDK, Release 1</h2>

<p>This SDK provides the development tools and Android system image you need to
create applications for Android-powered devices. Applications developed on this
SDK will be compatible with mobile devices running the Android 1.1 platform.
</p>

<p>This release provides an updated system image (Android 1.1), updated
documentation, and the same set of development tools provided in the Android 1.0
r2 SDK. The updated system image includes bug fixes and some smaller features,
as well as a few minor API changes from the 1.0 version. </p>

<p>For details about the Android 1.1 system image included in the SDK &mdash;
including bug fixes, features, and API changes &mdash; please read the <a
href="{@docRoot}about/versions/android-1.1.html">Android 1.1 version notes</a>.</p>

<h3>App Versioning for Android 1.1</h3>

<p>If you are using this SDK to build an application that is compatible
<em>only</em> with Android-powered devices running the Android 1.1 platform,
please note that you <strong>must</strong> set the the
<code>android:minSdkVersion</code> attribute in the application's manifest to
the API Level of Android 1.1 &mdash; "2".</p>

<p>Specifically, you specify the <code>android:minSdkVersion</code> attribute in
a <code>&lt;uses-sdk&gt;</code> element as a child of
<code>&lt;manifest&gt;</code> in the manifest file. When set, the attribute
looks like this: </p>

<pre><code>&lt;manifest&gt;
  ...
  &lt;uses-sdk android:minSdkVersion="2" /&gt;
  ...
&lt;/manifest&gt;</code>
</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.1 platform. In turn, this ensures that your application will
function properly on their devices, especially if it uses APIs introduced in
Android 1.1. </p>

<p>If your application uses APIs introduced in Android 1.1 but does not declare
<code>&lt;uses-sdk android:minSdkVersion="2" /&gt;</code>, then it will run properly on
Android 1.1 devices but <em>not</em> on Android 1.0 devices. </p>

<p>If your application does not use any new APIs introduced in Android 1.1, you
can indicate Android 1.0 compatibility by removing <code>android: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 1.0 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.1 APIs and has no
need to use them, you might find it easier to keep working in the Android 1.0
SDK, rather than migrating to the Android 1.1 SDK and having to do additional
testing.</p>


<h3>ADT Plugin Compatibility</h3>

<p>For this version of the SDK &mdash; Android 1.1 SDK, Release 1
&mdash; the compatible version of the Android Development Tools (ADT)
Plugin for Eclipse is <strong>0.8.0</strong>. If you are using a
previous version of ADT, you should update to the latest version for use
with this SDK. For information about how to update your ADT plugin, see
<a href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>.</p>

<h3>Installation and Upgrade Notes</h3>

<p>If you've been developing an application using an Android 1.0 SDK no
changes to your application are needed. You may want to wipe application
user data (emulator option <code>-wipe-data</code>) when running your
application on the Android 1.1 emulator for the first time.</p>

<h3>Other Notes</h3>

<p><strong>MapView API Key</strong></p>

<p>com.google.android.maps.MapView is a class that lets you
easily integrate Google Maps into your application. Before you can
access the maps data, you will need to register with the Google Maps
service and receive a Maps API Key, which you then add to your MapView
for authentication to the server.</p>

<p>Developers should note that the registration service for MapView is now
active and Google Maps is actively enforcing the Maps API Key requirement. 
For information about how to register for a Maps API Key, see 
<a href="http://code.google.com/android/add-ons/google-apis/mapkey.html">
Obtaining a Maps API Key</a>.</p>

<p><strong>USB Drivers for Windows</strong></p>

<p>If you using Windows and want to develop or test your application on an
Android-powered device (such as the T-Mobile G1), you need an appropriate USB
driver. For your convenience, the Windows version of the Android SDK includes
these USB drivers that you can install, to let you develop on the device:</p>

<ul>
<li>USB driver for 32-bit XP and Vista</li>
<li>USB driver for 64-bit Vista only</li>
</ul>

<p>The USB driver files are located in the
<code>&lt;SDK&gt;/usb_driver</code> directory. For details and
installation instructions, see <a
href="{@docRoot}tools/device.html#setting-up">Connecting Hardware Devices</a>.</p>
</p>

<h3>Resolved Issues, Changes</h3>

<p><strong>Emulator</strong></p>
<ul>
<li>Emulator now saves the user image in &lt;android&gt;/SDK1.1/</code></li>
</ul>

<h3>Known Issues</h3>

<p><strong>JUnit and Eclipse/ADT</strong></p>
<ul>
<li>If you are developing in Eclipse/ADT and want to add JUnit test
classes, you can do so. However, you need to set up a custom JUnit configuration
before your tests will run properly. For detailed information about how to set
up the JUnit configuration, see the troubleshooting topic <a
href="{@docRoot}resources/faq/troubleshooting.html#addjunit">Running a Junit test class
in Eclipse</a>.</li>
</ul>

<p><strong>Other</strong></p>

<ul>
<li>It is not possible to send MMS messages between emulator instances. </li>
<li>In some cases, you may encounter problems when using the browser on an
emulator started with the command-line option <code>-http-proxy</code>. </li>
<li>On the OSX platform, if you manually remove the ~/.android directory
using <code>rm -rf ~/.android</code>, then try to run 
the emulator, it crashes. This happens because the emulator fails to create 
a new .android directory before attempting to create the child SDK1.0 directory.
To work around this issue, manually create a new .android directory using
<code>mkdir ~/.android</code>, then run the emulator. The emulator 
creates the SDK1.0 directory and starts normally. </li>
<li>We regret to inform developers that Android 1.1 will not include support 
for ARCNet network interfaces.</li>
<li>The final set of Intent patterns honored by Android 1.0 has not yet been
fully documented. Documentation will be provided in future releases.</li>
<li>In ADT Editor, you can add at most ten new resource values at a time,
in a given res/values/*.xml, using the form in the Android Resources pane. 
If you add more than ten, the Android Resources pane will not display the
attributes fields for the additional resource entries. To work around this 
problem, you can close the file in the editor and open it again, or you 
can edit the resource entries in the XML text mode. </li>
<li>The emulator's battery-control commands (<code>power &lt;option&gt</code>)
are not working in this release.</li>
</ul>


<h2 id="1.0_r2">Android 1.0 SDK, Release 2</h2>

<p>This SDK release includes the Android 1.0 platform and application API.
Applications developed on this SDK will be compatible with mobile devices
running the Android 1.0 platform.</p>

<p>This release includes mainly bug fixes, although some smaller features were
added.</p>

<h3>ADT Plugin Compatibility</h3>

<p>For this release of the SDK, the compatible version of the Android
Development Tools (ADT) Plugin for Eclipse is <strong>0.8.0</strong>. If you are
using a previous version of ADT, you should update to the latest version for use
with this SDK. For information about how to update your ADT plugin, see <a
href="{@docRoot}tools/sdk/eclipse-adt.html">ADT Plugin for Eclipse</a>.</p>

<h3>Other Notes</h3>

<p><strong>T-Mobile G1 Compatibility</strong></p>

<p>This version of the SDK has been tested for compatibility with the first 
Android-powered mobile device, the T-Mobile
G1. </p>

<p><strong>MapView API Key</strong></p>

<p>MapView is a class that lets you easily integrate Google Maps into your
application. Before you can access the maps data, you will need to register with
the Google Maps service and receive a Maps API Key, which you then add to your
MapView for authentication to the server.</p>

<p>Developers should note that the registration service for MapView is now
active and Google Maps is actively enforcing the Maps API Key requirement. For
information about how to register for a Maps API Key, see <a
href="http://code.google.com/android/add-ons/google-apis/mapkey.html">http://code.google.com/android/add-ons/google-apis/mapkey.html</a>.
</p>

<p><strong>USB Driver for Windows</strong></p>
<p>If you using Windows and want to develop or test your application on an
Android-powered device (such as the T-Mobile G1), you need an appropriate USB
driver. For your convenience, the Windows version of the Android SDK includes a
USB driver that you can install, to let you develop on the device. The USB
driver files are located in the <code>&lt;SDK&gt;/usb_driver</code> directory. 

</p>

<h3>Resolved Issues, Changes</h3>
<ul>
<li>The android.jar in this SDK release now includes several classes that were
missing from the previous SDK. </li>
<li>The android.R.styleable class and its fields were removed from the public
API, to better ensure forward-compatibility for applications. The constants
declared in android.R.styleable were platform-specific and subject to arbitrary
change across versions, so were not suitable for use by applications. You can
still access the platform's styleable attributes from your resources or code. To
do so, declare a custom resource element using a
<code>&lt;declare-styleable&gt;</code> in your project's res/values/R.attrs
file, then declare the attribute inside. For examples, see 
&lt;sdk&gt;/samples/ApiDemos/res/values/attrs.xml. For more information about
custom resources, see <a
href="{@docRoot}guide/topics/resources/available-resources.html#customresources">Custom
Layout Resources</a>. Note that the android.R.styleable documentation is still
provided in the SDK, but only as a reference of the platform's styleable
attributes for the various elements.</li>
<li>The VM now properly ensures that private classes are not 
available to applications through reflection. If you were using reflection
to access private classes in a previous release, you will now get a run-time 
error. </li>

<li>The Settings and Email applications are now included in the SDK and
available in the emulator.</li>
<li>We regret to inform developers that SDK 1.0_r2 does not support MFM, RLL, 
or Winchester hard disk drives.</li>
<li>In the emulator, the control key for enabling/disabling trackball mode 
is changed from Control-T to F6. You can also enter trackball mode temporarily
using the Delete key. While the key is pressed, you can send trackball events.</li>
</ul>

<p>Unless otherwise noted, Known Issues from the previous SDK release also apply
to this release.</p>






<h2 id="1.0_r1">Android 1.0 SDK, Release 1</h2>

<p>This SDK release is the first to include the Android 1.0 platform and application API. Applications developed on this SDK will be compatible with mobile devices running the Android 1.0 platform, when such devices are available.</p>

<p>This release includes mainly bug fixes, although some smaller features were added. The Android 1.0 also includes several API changes from the 0.9 version. For those porting from the M5 release, the SDK also includes the legacy changes overview and API Differences Reports. See the current Overview of Changes for more information. </p>

<h3>ADT Plugin Compatibility</h3>

<p>For this version of the SDK &mdash; Android 1.0 SDK, Release 1 &mdash; the compatible version of the Android Development Tools (ADT) Plugin for Eclipse is <strong>0.8.0</strong>. If you are using a previous version of ADT, you should update to the latest version for use with this SDK.</p>

<h3>Installation and Upgrade Notes</h3>

<p>If you've been developing an application using a previous SDK version and you want the application to run on Android-powered mobile devices, you must port the application to the Android 1.0 SDK. Be sure to wipe application user data (emulator option <code>-wipe-data</code>) when running your application on the Android 1.0 SDK emulator.</p>

<h3>Other Notes</h3>

<p><strong>MapView API Key</strong></p>

<p>MapView is a class that lets you easily integrate Google Maps into your application. Before you can access the maps data, you will need to register with the Google Maps service and receive a Maps API Key, which you then add to your MapView for authentication to the server.</p>

<p>Currently, the registration service for MapView is not yet active and Google Maps is not yet enforcing the Maps API Key requirement. However, note that the registration service will be activated soon, so that MapViews in any application deployed to a mobile device will require registration and a valid Maps API Key. </p>

<p>As soon as the registration service becomes available, we will update the page at <a href="http://code.google.com/android/add-ons/google-apis/mapkey.html">http://code.google.com/android/add-ons/google-apis/mapkey.html</a> with details about how and where to register. Please check that page periodically for registration information, if you are using a MapView.</p>


<h3>Resolved Issues, Changes</h3>

<p><strong>Emulator</strong></p>
<ul>
<li>Emulator now saves the user image in &lt;android&gt;/SDK1.0/</code></li>
<li>Fixed EsounD-related freezes on Linux.</li>
<li>Fixed the documentation in -help-audio. '-audio list' doesn't work, one
 needs to call -help-audio-out and -help-audio-in to get the list of valid
 audio backends.</li>
<li>Fixed scrollwheel Dpad emulation in rotated mode. before that, using the
 scroll-wheel would always generated Dpad Up/Down events, even when in
 landscape mode.</li>

<li>Several Obsolete command options were removed.</li>
<li>Setting the network speed through the console or the -netspeed option will
 properly modify the connectivity icon on the device.</li>
<li>Setting the GSM voice registration state to 'roaming' in the console will
 properly modify the voice icon on the device</li>
</ul>

<p><strong>SQLite</strong></p>
<ul>
<li>SQLite is now included in the SDK package on all platforms. </li>
</ul>

<p><strong>Other</strong></p>

<ul>
<li>It is not possible to send MMS messages between emulator instances. </li>
<li>In some cases, you may encounter problems when using the browser on an
emulator started with the command-line option <code>-http-proxy</code>. </li>

<li>We regret to inform developers that Android 1.0 will not include support for
dot-matrix printers.</li>
<li>On the OSX platform, if you manually remove the ~/.android directory
using <code>rm -rf ~/.android</code>, then try to run 
the emulator, it crashes. This happens because the emulator fails to create 
a new .android directory before attempting to create the child SDK1.0 directory.
To work around this issue, manually create a new .android directory using
<code>mkdir ~/.android</code>, then run the emulator. The emulator 
creates the SDK1.0 directory and starts normally. </li>
<li>The final set of Intent patterns honored by Android 1.0 has not yet been
fully documented. Documentation will be provided in future releases.</li>
<li>In ADT Editor, you can add at most ten new resource values at a time,
in a given res/values/*.xml, using the form in the Android Resources pane. 
If you add more than ten, the Android Resources pane will not display the
attributes fields for the additional resource entries. To work around this 
problem, you can close the file in the editor and open it again, or you 
can edit the resource entries in the XML text mode. </li>
<li>The emulator's battery-control commands (<code>power &lt;option&gt</code>)
are not working in this release.</li>

</ul>